Compare commits

..

23 commits

Author SHA1 Message Date
Fedora Release Engineering
d4216095c1 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:38:27 +00:00
e07a89657f Patched for Boost 1.90.0 asio deprecation (#2429732)
Also suppress a GCC 16 -Warray-bounds false positive.
2026-01-22 15:08:15 +00:00
Fedora Release Engineering
10658ba736 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 20:04:21 +00:00
Stephen Smoogen
15a3c69c19 Add in fixes to allow for selinux to work with automotive selinux policy
- The various selinux command macros were not working when dealing
  with the automotive policy. I needed to look at bluechi and some
  others to write a better working one.

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-12-08 15:16:47 +00:00
Stephen Smoogen
cb8ec81b87 Get vsomeip-3.5.x working again on CS10
Rewrote selinux policy from scratch with sepolgen
Removed routingmanagerd.socket from being used as it breaks routingmanagerd
TODO: Test that containers still work

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-12-03 11:50:54 +00:00
Stephen Smoogen
249f76ac12 Try to fix issues in https://bugzilla.redhat.com/show_bug.cgi?id=2417995
* Update selinux policy for EL10
* Remove the socket file
* Add the requirement for dlt-daemon for routingmanager

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-12-01 17:15:56 -05:00
Stephen Smoogen
0884c356b2 Update to latest version of vsomeip3 2025-12-01 12:54:15 -05:00
Stephen Smoogen
d05dc76810 Remove i686 as it no longer builds and is not needed. 2025-08-27 07:03:03 -04:00
Stephen Smoogen
b2f36ad4a1 Add in 02 patch.
I changed the numbering of patches so I can track which order they are
in the future. names I chose are probably unfortunate

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-08-26 13:54:13 -04:00
Stephen Smoogen
792fa0d35c fix one item I forgot in cmake.
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-08-26 13:53:42 -04:00
Stephen Smoogen
9ba22facb7 Update to vsomeip 3.5.7
- Collapse various patches into 2 sets
1. Build extra items like hello-world and such
2. Change /usr/lib to /usr/lib64 in various places

The patches needed to be cleaned up because the upstream changed the
build system and various variables which used to work no longer did.

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-08-26 13:49:36 -04:00
Stephen Smoogen
15ca530abf Update to vsomeip 3.5.6
* Use google-benchmark for tests
* Update hello_world patch to work with changes in code.

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-07-30 13:48:43 -04:00
Fedora Release Engineering
6f9620dc83 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 20:14:29 +00:00
Stephen Smoogen
cfe584b10b Update from 3.5.4 to 3.5.5 and fix commit 2025-03-31 19:22:05 +00:00
Stephen Smoogen
539106dc22 Upgrade to 3.5.5
Vsomeip has released its 3.5.5 version and this updates to that.
2025-03-25 13:59:29 +00:00
Stephen Smoogen
012112fe35 Merge branch 'f42' into rawhide
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-03-17 17:57:53 +00:00
Stephen Smoogen
584b7c2315 Fix patch for lib64 usage
I hamhanded my first patch and of course it didn't work with i686. The
fix was to make the changes using the CMAKE defined lib directory.

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-03-17 17:31:33 +00:00
Stephen Smoogen
febd10705a Update vsomeip to 3.5.4
* Remove the s390x patch
* Add changes to allow for building extra tools
* Change the flags so fPic is used
* Make sure cmake builds in the right libdir
* Remove -Werror since we have -Werror=fmt-security

Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
2025-03-17 15:47:53 +00:00
656dda9098 Add sysusers.d config file to allow rpm to create users/groups automatically
See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers.
2025-02-11 17:03:12 +01:00
Fedora Release Engineering
e661b98fa7 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 14:38:58 +00:00
Fedora Release Engineering
6ca27a5607 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 09:02:12 +00:00
Fedora Release Engineering
598935f795 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 08:14:21 +00:00
Jonathan Wakely
2ef5269686 Rebuilt for Boost 1.83 2024-01-18 00:05:04 +00:00
16 changed files with 531 additions and 178 deletions

5
.gitignore vendored
View file

@ -1,3 +1,8 @@
/vsomeip-3.1.20.3.tar.gz
/vsomeip-3.3.0.tar.gz
/vsomeip-3.3.8.tar.gz
/vsomeip-3.5.4.tar.gz
/vsomeip-3.5.5.tar.gz
/vsomeip-3.5.6.tar.gz
/vsomeip-3.5.7.tar.gz
/vsomeip-3.5.11.tar.gz

View file

@ -0,0 +1,14 @@
diff -up ./examples/hello_world/CMakeLists.txt.build_extras ./examples/hello_world/CMakeLists.txt
--- ./examples/hello_world/CMakeLists.txt.build_extras 2025-07-30 13:32:58.472405883 -0400
+++ ./examples/hello_world/CMakeLists.txt 2025-07-30 13:33:37.697454069 -0400
@@ -28,6 +28,10 @@ function(link_target executable)
add_executable(hello_world_${executable})
target_sources(hello_world_${executable} PRIVATE hello_world_${executable}_main.cpp)
target_link_libraries(hello_world_${executable} PRIVATE vsomeip_hello_world_${executable} vsomeip3 Threads::Threads)
+ install (
+ TARGETS hello_world_${executable}
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin
+ )
endfunction()
include_directories(${VSOMEIP_INCLUDE_DIRS})

View file

@ -1,58 +1,47 @@
diff -up vsomeip-3.3.0/CMakeLists.txt.installdirs vsomeip-3.3.0/CMakeLists.txt
--- vsomeip-3.3.0/CMakeLists.txt.installdirs 2023-03-13 10:09:12.000000000 -0400
+++ vsomeip-3.3.0/CMakeLists.txt 2023-03-29 15:23:59.448286123 -0400
@@ -6,6 +6,8 @@
cmake_minimum_required (VERSION 3.10)
project (vsomeip)
+include(GNUInstallDirs)
+
set (VSOMEIP_NAME vsomeip3)
set (VSOMEIP_COMPAT_NAME vsomeip)
@@ -31,14 +33,14 @@ endif()
diff -up ./CMakeLists.txt.fix_libdir ./CMakeLists.txt
--- ./CMakeLists.txt.fix_libdir 2025-08-18 09:38:17.000000000 -0400
+++ ./CMakeLists.txt 2025-08-26 13:32:23.642057100 -0400
@@ -31,14 +31,14 @@ endif()
###################################################################################################
# Offer the user the choice of overriding the installation directories
-set (INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
-set (INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
-set (INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
+set (INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
+set (INSTALL_BIN_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Installation directory for executables")
+set (INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Installation directory for header files")
+set (INSTALL_LIB_DIR lib64 CACHE PATH "Installation directory for libraries")
set (INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
set (INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
if (WIN32 AND NOT CYGWIN)
set (DEF_INSTALL_CMAKE_DIR CMake)
else ()
- set (DEF_INSTALL_CMAKE_DIR lib/cmake/${VSOMEIP_NAME})
+ set (DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${VSOMEIP_NAME})
+ set (DEF_INSTALL_CMAKE_DIR lib64/cmake/${VSOMEIP_NAME})
endif ()
set (INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
@@ -466,7 +468,7 @@ export (PACKAGE ${VSOMEIP_COMPAT_NAME})
@@ -543,7 +543,7 @@ export (PACKAGE ${VSOMEIP_COMPAT_NAME})
configure_file (vsomeipConfig.cmake.in "${PROJECT_BINARY_DIR}/vsomeipConfig.cmake" @ONLY)
configure_file (vsomeipConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/vsomeipConfigVersion.cmake" @ONLY)
-set (COMPAT_INSTALL_CMAKE_DIR "lib/cmake/${VSOMEIP_COMPAT_NAME}")
+set (COMPAT_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${VSOMEIP_COMPAT_NAME}")
+set (COMPAT_INSTALL_CMAKE_DIR "lib64/cmake/${VSOMEIP_COMPAT_NAME}")
install (
EXPORT vsomeipTargets
@@ -483,7 +485,7 @@ install (
@@ -560,7 +560,7 @@ install (
)
configure_file(vsomeip.pc.in ${PROJECT_BINARY_DIR}/vsomeip.pc @ONLY)
-install(FILES ${PROJECT_BINARY_DIR}/vsomeip.pc DESTINATION lib/pkgconfig)
+install(FILES ${PROJECT_BINARY_DIR}/vsomeip.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+install(FILES ${PROJECT_BINARY_DIR}/vsomeip.pc DESTINATION lib64/pkgconfig)
endif ()
@@ -589,7 +591,7 @@ endif()
@@ -648,7 +648,7 @@ endif()
# create pkg-config file
if(NOT WIN32)
configure_file(${VSOMEIP_NAME}.pc.in ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc @ONLY)
- install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION lib/pkgconfig)
+ install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION lib64/pkgconfig)
endif()
##############################################################################

View file

@ -0,0 +1,63 @@
--- vsomeip-3.5.11/implementation/endpoints/src/local_tcp_client_endpoint_impl.cpp~ 2025-11-14 14:12:07.000000000 +0000
+++ vsomeip-3.5.11/implementation/endpoints/src/local_tcp_client_endpoint_impl.cpp 2026-01-22 14:24:46.309463004 +0000
@@ -25,6 +25,10 @@
#include "../../protocol/include/protocol.hpp"
#include "../../routing/include/routing_host.hpp"
+// boost::asio::io_context::strand::wrap is deprecated
+// and should be replaced with boost::asio::bind_executor
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
+
namespace vsomeip_v3 {
local_tcp_client_endpoint_impl::local_tcp_client_endpoint_impl(const std::shared_ptr<endpoint_host>& _endpoint_host,
--- vsomeip-3.5.11/implementation/endpoints/src/tcp_client_endpoint_impl.cpp~ 2025-11-14 14:12:07.000000000 +0000
+++ vsomeip-3.5.11/implementation/endpoints/src/tcp_client_endpoint_impl.cpp 2026-01-22 14:33:44.323383593 +0000
@@ -20,6 +20,10 @@
#include "../../utility/include/utility.hpp"
#include "../../utility/include/bithelper.hpp"
+// boost::asio::io_context::strand::wrap is deprecated
+// and should be replaced with boost::asio::bind_executor
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
+
namespace vsomeip_v3 {
tcp_client_endpoint_impl::tcp_client_endpoint_impl(const std::shared_ptr<endpoint_host>& _endpoint_host,
--- vsomeip-3.5.11/implementation/endpoints/src/local_uds_client_endpoint_impl.cpp~ 2025-11-14 14:12:07.000000000 +0000
+++ vsomeip-3.5.11/implementation/endpoints/src/local_uds_client_endpoint_impl.cpp 2026-01-22 14:36:48.259884673 +0000
@@ -21,6 +21,10 @@
#include "../../protocol/include/protocol.hpp"
#include "../../routing/include/routing_host.hpp"
+// boost::asio::io_context::strand::wrap is deprecated
+// and should be replaced with boost::asio::bind_executor
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
+
namespace vsomeip_v3 {
local_uds_client_endpoint_impl::local_uds_client_endpoint_impl(const std::shared_ptr<endpoint_host>& _endpoint_host,
--- vsomeip-3.5.11/implementation/endpoints/src/udp_client_endpoint_impl.cpp~ 2025-11-14 14:12:07.000000000 +0000
+++ vsomeip-3.5.11/implementation/endpoints/src/udp_client_endpoint_impl.cpp 2026-01-22 14:39:16.849000928 +0000
@@ -19,6 +19,10 @@
#include "../../utility/include/utility.hpp"
#include "../../utility/include/bithelper.hpp"
+// boost::asio::io_context::strand::wrap is deprecated
+// and should be replaced with boost::asio::bind_executor
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
+
namespace vsomeip_v3 {
udp_client_endpoint_impl::udp_client_endpoint_impl(const std::shared_ptr<endpoint_host>& _endpoint_host,
--- vsomeip-3.5.11/implementation/routing/src/routing_manager_impl.cpp~ 2025-11-14 14:12:07.000000000 +0000
+++ vsomeip-3.5.11/implementation/routing/src/routing_manager_impl.cpp 2026-01-22 14:42:04.516589196 +0000
@@ -1421,7 +1421,7 @@
if (is_forwarded) {
trace::header its_header;
const boost::asio::ip::address_v4 its_remote_address =
- _remote_address.is_v4() ? _remote_address.to_v4() : boost::asio::ip::address_v4::from_string("6.6.6.6");
+ _remote_address.is_v4() ? _remote_address.to_v4() : boost::asio::ip::make_address_v4("6.6.6.6");
trace::protocol_e its_protocol = _receiver->is_local() ? trace::protocol_e::local
: _receiver->is_reliable() ? trace::protocol_e::tcp
: trace::protocol_e::udp;

View file

@ -0,0 +1,12 @@
--- vsomeip-3.5.11/implementation/compat/runtime/src/application_impl.cpp~ 2025-11-14 14:12:07.000000000 +0000
+++ vsomeip-3.5.11/implementation/compat/runtime/src/application_impl.cpp 2026-01-22 15:00:33.768980411 +0000
@@ -18,6 +18,9 @@
#include "../../message/include/message_impl.hpp"
#include "../../message/include/payload_impl.hpp"
+// GCC 16 false positive in shared_ptr
+#pragma GCC diagnostic warning "-Warray-bounds"
+
namespace vsomeip {
application_impl::application_impl(const std::string& _name) {

View file

@ -1,7 +1,7 @@
[Unit]
Description=vsomeip routing manager
After=systemd-tmpfiles-setup.service
Requires=routingmanagerd.socket
Requires=dlt.service
[Service]
Type=simple

View file

@ -6,6 +6,7 @@ After=systemd-tmpfiles-setup.service
ListenStream=/run/vsomeip/vsomeip-0
SocketUser=routingmanagerd
SocketGroup=routingmanagerd
SELinuxContext=system_u:object_r:vsomeip_var_run_t:s0
[Install]
WantedBy=sockets.target

View file

@ -1 +1 @@
SHA512 (vsomeip-3.3.8.tar.gz) = e4dc76c62f897195a151d5f3b5de3c8a8716eb604dd15d432dbcff6c7ad3cd5a1abeec9b6ebd8f0fcdb386dda9a2c8703d08af7af3383b3edd2623177c97dacf
SHA512 (vsomeip-3.5.11.tar.gz) = 76539b9609ddfb6882947e7f9382f64342f595214077abd28fc691f0fce02d2f53da1a23b4c25b321460f80693c969abd0cdc8806172e8cc6f29935b45aeebd4

View file

@ -1,24 +0,0 @@
diff --git a/implementation/utility/include/byteorder.hpp b/implementation/utility/include/byteorder.hpp
index ea2dc38..ad7f752 100644
--- a/implementation/utility/include/byteorder.hpp
+++ b/implementation/utility/include/byteorder.hpp
@@ -38,6 +38,8 @@
#define VSOMEIP_BYTES_TO_WORD(x0, x1) (uint16_t((x1) << 8 | (x0)))
#define VSOMEIP_BYTES_TO_LONG(x0, x1, x2, x3) (uint32_t((x3) << 24 | (x2) << 16 | (x1) << 8 | (x0)))
+#define VSOMEIP_WORDS_TO_LONG(x0, x1) (uint32_t((x1) << 16 | (x0)))
+
#define VSOMEIP_WORD_BYTE0(x) (uint8_t((x) >> 8))
#define VSOMEIP_WORD_BYTE1(x) (uint8_t((x) & 0xFF))
@@ -46,8 +48,8 @@
#define VSOMEIP_LONG_BYTE2(x) (uint8_t(((x) >> 8) & 0xFF))
#define VSOMEIP_LONG_BYTE3(x) (uint8_t((x) & 0xFF))
-#define VSOMEIP_LONG_WORD0(x) (uint16_t((((x) >> 16) & 0xFFFF))
-#define VSOMEIP_LONG_WORD1(x) (uint16_t(((x) & 0xFFFF))
+#define VSOMEIP_LONG_WORD0(x) (uint16_t(((x) >> 16) & 0xFFFF))
+#define VSOMEIP_LONG_WORD1(x) (uint16_t((x) & 0xFFFF))
#else

View file

@ -1,48 +0,0 @@
diff -up vsomeip-3.3.0/CMakeLists.txt.build-extras vsomeip-3.3.0/CMakeLists.txt
--- vsomeip-3.3.0/CMakeLists.txt.build-extras 2023-03-30 14:20:37.804965734 -0400
+++ vsomeip-3.3.0/CMakeLists.txt 2023-03-30 14:20:58.864025268 -0400
@@ -607,6 +607,8 @@ add_subdirectory( tools )
# build examples
add_custom_target( examples )
add_subdirectory( examples EXCLUDE_FROM_ALL )
+add_custom_target( hello_world )
+add_subdirectory( examples/hello_world EXCLUDE_FROM_ALL )
##############################################################################
# Test section
diff -up vsomeip-3.3.0/examples/hello_world/CMakeLists.txt.build-extras vsomeip-3.3.0/examples/hello_world/CMakeLists.txt
--- vsomeip-3.3.0/examples/hello_world/CMakeLists.txt.build-extras 2023-03-13 10:09:12.000000000 -0400
+++ vsomeip-3.3.0/examples/hello_world/CMakeLists.txt 2023-03-30 14:20:58.865025271 -0400
@@ -45,4 +45,9 @@ if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "An
add_executable (hello_world_client hello_world_client_main.cpp)
target_link_libraries(hello_world_client vsomeip_hello_world_client ${VSOMEIP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+
+ install (
+ TARGETS hello_world_service hello_world_client
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin
+ )
endif()
diff -up vsomeip-3.3.0/tools/CMakeLists.txt.build-extras vsomeip-3.3.0/tools/CMakeLists.txt
--- vsomeip-3.3.0/tools/CMakeLists.txt.build-extras 2023-03-13 10:09:12.000000000 -0400
+++ vsomeip-3.3.0/tools/CMakeLists.txt 2023-03-30 14:22:29.670281935 -0400
@@ -4,7 +4,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# vsomeip_ctrl
-add_executable(vsomeip_ctrl EXCLUDE_FROM_ALL vsomeip_ctrl.cpp)
+add_executable(vsomeip_ctrl vsomeip_ctrl.cpp)
target_link_libraries(vsomeip_ctrl
vsomeip3
${Boost_LIBRARIES}
@@ -12,5 +12,10 @@ target_link_libraries(vsomeip_ctrl
${CMAKE_THREAD_LIBS_INIT}
)
+install (
+ TARGETS vsomeip_ctrl
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin
+)
+
###################################################################################################

View file

@ -1,12 +0,0 @@
diff -up vsomeip-3.3.0/CMakeLists.txt.compiler-flags vsomeip-3.3.0/CMakeLists.txt
--- vsomeip-3.3.0/CMakeLists.txt.compiler-flags 2023-03-30 10:26:38.393716608 -0400
+++ vsomeip-3.3.0/CMakeLists.txt 2023-03-30 10:52:22.686359169 -0400
@@ -75,7 +75,7 @@ endif()
set(NO_DEPRECATED "")
set(OPTIMIZE "")
- set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wpedantic -Werror -fPIE")
+ set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -Wpedantic -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -fPIC -pie -Wl,-z,relro,-z,now")
# force all use of std::mutex and std::recursive_mutex to use runtime init
# instead of static initialization so mutexes can be hooked to enable PI as needed

View file

@ -1,3 +1,5 @@
/usr/bin/routingmanagerd -- gen_context(system_u:object_r:vsomeip_exec_t,s0)
/var/run/vsomeip/vsomeip-0 gen_context(system_u:object_r:router_vsomeip_var_run_t,s0)
/var/run/vsomeip(/.*)? gen_context(system_u:object_r:vsomeip_var_run_t,s0)
/usr/bin/routingmanagerd -- gen_context(system_u:object_r:vsomeip_exec_t,s0)
/usr/lib/systemd/system/routingmanagerd.service -- gen_context(system_u:object_r:vsomeip_unit_file_t,s0)
/var/lib/routingmanagerd(/.*)? gen_context(system_u:object_r:vsomeip_var_lib_t,s0)
/var/run/vsomeip(/.*)? gen_context(system_u:object_r:vsomeip_var_run_t,s0)
/var/run/vsomeip/vsomeip-0 -s gen_context(system_u:object_r:vsomeip_var_run_t,s0)

View file

@ -1,10 +1,233 @@
## <summary>policy for vsomeip</summary>
########################################
## <summary>
## Execute vsomeip_exec_t in the vsomeip domain.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`vsomeip_domtrans',`
gen_require(`
type vsomeip_t, vsomeip_exec_t;
')
corecmd_search_bin($1)
domtrans_pattern($1, vsomeip_exec_t, vsomeip_t)
')
######################################
## <summary>
## Execute vsomeip in the caller domain.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`vsomeip_exec',`
gen_require(`
type vsomeip_exec_t;
')
corecmd_search_bin($1)
can_exec($1, vsomeip_exec_t)
')
########################################
## <summary>
## Search vsomeip lib directories.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`vsomeip_search_lib',`
gen_require(`
type vsomeip_var_lib_t;
')
allow $1 vsomeip_var_lib_t:dir search_dir_perms;
files_search_var_lib($1)
')
########################################
## <summary>
## Read vsomeip lib files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`vsomeip_read_lib_files',`
gen_require(`
type vsomeip_var_lib_t;
')
files_search_var_lib($1)
read_files_pattern($1, vsomeip_var_lib_t, vsomeip_var_lib_t)
')
########################################
## <summary>
## Manage vsomeip lib files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`vsomeip_manage_lib_files',`
gen_require(`
type vsomeip_var_lib_t;
')
files_search_var_lib($1)
manage_files_pattern($1, vsomeip_var_lib_t, vsomeip_var_lib_t)
')
########################################
## <summary>
## Manage vsomeip lib directories.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`vsomeip_manage_lib_dirs',`
gen_require(`
type vsomeip_var_lib_t;
')
files_search_var_lib($1)
manage_dirs_pattern($1, vsomeip_var_lib_t, vsomeip_var_lib_t)
')
########################################
## <summary>
## Read vsomeip PID files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`vsomeip_read_pid_files',`
gen_require(`
type vsomeip_var_run_t;
')
files_search_pids($1)
read_files_pattern($1, vsomeip_var_run_t, vsomeip_var_run_t)
')
########################################
## <summary>
## Connect to vsomeip over a unix stream socket.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`vsomeip_stream_connect',`
gen_require(`
type vsomeip_t, vsomeip_var_run_t;
')
files_search_pids($1)
stream_connect_pattern($1, vsomeip_var_run_t, vsomeip_var_run_t, vsomeip_t)
')
########################################
## <summary>
## Execute vsomeip server in the vsomeip domain.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`vsomeip_systemctl',`
gen_require(`
type vsomeip_t;
type vsomeip_unit_file_t;
')
systemd_exec_systemctl($1)
systemd_read_fifo_file_passwd_run($1)
allow $1 vsomeip_unit_file_t:file read_file_perms;
allow $1 vsomeip_unit_file_t:service manage_service_perms;
ps_process_pattern($1, vsomeip_t)
')
########################################
## <summary>
## All of the rules required to administrate
## an vsomeip environment
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
## <param name="role">
## <summary>
## Role allowed access.
## </summary>
## </param>
## <rolecap/>
#
interface(`vsomeip_admin',`
gen_require(`
type vsomeip_t;
type vsomeip_var_lib_t;
type vsomeip_var_run_t;
type vsomeip_unit_file_t;
')
allow $1 vsomeip_t:process { signal_perms };
ps_process_pattern($1, vsomeip_t)
tunable_policy(`deny_ptrace',`',`
allow $1 vsomeip_t:process ptrace;
')
files_search_var_lib($1)
admin_pattern($1, vsomeip_var_lib_t)
files_search_pids($1)
admin_pattern($1, vsomeip_var_run_t)
vsomeip_systemctl($1)
admin_pattern($1, vsomeip_unit_file_t)
allow $1 vsomeip_unit_file_t:service all_service_perms;
optional_policy(`
systemd_passwd_agent_exec($1)
systemd_read_fifo_file_passwd_run($1)
')
')
interface(`vsomeip_use',`
gen_require(`
type vsomeip_t;
type vsomeip_var_run_t;
type router_vsomeip_var_run_t;
')
# create and use vsomeip sockets:
allow $1 vsomeip_var_run_t:dir { add_name remove_name write };
@ -13,7 +236,6 @@ interface(`vsomeip_use',`
# Talk to routing manager (and back)
allow $1 vsomeip_t:unix_stream_socket connectto;
allow vsomeip_t $1:unix_stream_socket connectto;
allow $1 router_vsomeip_var_run_t:sock_file write;
')
interface(`vsomeip_talk_to',`

View file

@ -1,29 +1,74 @@
policy_module(vsomeip, 1.0.0)
# Type of routingmanagerd
########################################
#
# Declarations
#
require {
type proc_net_t;
type unconfined_service_t;
type unreserved_port_t;
type node_t;
}
type vsomeip_t;
type vsomeip_exec_t;
init_daemon_domain(vsomeip_t, vsomeip_exec_t)
# Type of /run/vsomeip
type vsomeip_rw_t;
files_type(vsomeip_rw_t)
type vsomeip_var_lib_t;
files_type(vsomeip_var_lib_t)
type vsomeip_var_run_t;
files_base_file(vsomeip_var_run_t);
files_pid_file(vsomeip_var_run_t)
# Type of /run/vsomeip/vsomeip-0 (routingmanagerd socket)
type router_vsomeip_var_run_t;
files_base_file(router_vsomeip_var_run_t);
type vsomeip_unit_file_t;
systemd_unit_file(vsomeip_unit_file_t)
# Systemd socket (socket activation)
allow init_t vsomeip_var_run_t:dir { add_name remove_name };
allow init_t router_vsomeip_var_run_t:sock_file { create unlink write setattr };
# Routing manager daemon
allow vsomeip_t self:netlink_route_socket { bind create nlmsg_read shutdown };
########################################
#
# vsomeip local policy
#
allow vsomeip_t proc_net_t:file { open read };
allow vsomeip_t proc_net_t:lnk_file read;
allow vsomeip_t self:fifo_file rw_fifo_file_perms;
allow vsomeip_t self:netlink_route_socket { bind create nlmsg_read shutdown read write };
allow vsomeip_t self:process { fork setsched };
allow vsomeip_t self:udp_socket { create setopt bind getopt read write };
allow vsomeip_t self:unix_dgram_socket { create ioctl };
allow vsomeip_t self:unix_stream_socket create_stream_socket_perms;
allow vsomeip_t vsomeip_var_run_t:dir { add_name write remove_name };
allow vsomeip_t vsomeip_var_run_t:file { create lock open write unlink };
allow vsomeip_t vsomeip_var_run_t:sock_file write;
allow vsomeip_t router_vsomeip_var_run_t:sock_file setattr;
allow vsomeip_t vsomeip_var_run_t:sock_file { create setattr unlink write };
allow vsomeip_t unreserved_port_t:udp_socket name_bind;
allow vsomeip_t node_t:udp_socket node_bind;
files_write_generic_pid_sockets(vsomeip_t)
manage_dirs_pattern(vsomeip_t, vsomeip_rw_t, vsomeip_rw_t)
manage_files_pattern(vsomeip_t, vsomeip_rw_t, vsomeip_rw_t)
manage_lnk_files_pattern(vsomeip_t, vsomeip_rw_t, vsomeip_rw_t)
manage_sock_files_pattern(vsomeip_t, vsomeip_rw_t, vsomeip_rw_t)
manage_dirs_pattern(vsomeip_t, vsomeip_var_lib_t, vsomeip_var_lib_t)
manage_files_pattern(vsomeip_t, vsomeip_var_lib_t, vsomeip_var_lib_t)
manage_lnk_files_pattern(vsomeip_t, vsomeip_var_lib_t, vsomeip_var_lib_t)
files_var_lib_filetrans(vsomeip_t, vsomeip_var_lib_t, { dir file lnk_file })
manage_dirs_pattern(vsomeip_t, vsomeip_var_run_t, vsomeip_var_run_t)
manage_files_pattern(vsomeip_t, vsomeip_var_run_t, vsomeip_var_run_t)
manage_lnk_files_pattern(vsomeip_t, vsomeip_var_run_t, vsomeip_var_run_t)
files_pid_filetrans(vsomeip_t, vsomeip_var_run_t, { dir file lnk_file })
domain_use_interactive_fds(vsomeip_t)
files_read_etc_files(vsomeip_t)
miscfiles_read_localization(vsomeip_t)
# Routing manager daemon to unconfined
optional_policy(`
@ -31,6 +76,8 @@ optional_policy(`
type unconfined_t;
')
allow vsomeip_t unconfined_t:unix_stream_socket connectto;
allow vsomeip_t unconfined_service_t:unix_stream_socket connectto;
')
# Containers can talk to each other (and routing manager)

View file

@ -1,44 +1,46 @@
Name: vsomeip3
Version: 3.3.8
Release: 1%{?dist}
Summary: COVESA implementation of SOME/IP protocol
%global _lto_cflags %{nil}
License: MPL-2.0 AND BSL-1.0
Name: vsomeip3
Version: 3.5.11
Release: 9%{?dist}
Summary: COVESA implementation of SOME/IP protocol
# remove from i686 as not needed.
ExcludeArch: %{ix86}
License: MPL-2.0
URL: https://github.com/COVESA/vsomeip
Source0: %{URL}/archive/%{VERSION}/vsomeip-%{VERSION}.tar.gz
Source1: routingmanagerd.service
Source2: routingmanagerd.socket
Source3: tmpfiles-vsomeip.conf
Source4: etc-vsomeip.json
Source5: vsomeip.fc
Source6: vsomeip.if
Source7: vsomeip.te
Source8: vsomeip3.sysusers.conf
# Install libs, etc into /usr
Patch0: vsomeip-install-dirs.patch
# Use -fPIC, not -fPIE
Patch1: vsomeip-compiler-flags.patch
# Build/Install tools and examples
Patch2: vsomeip-build-extra.patch
Patch3: vsomeip-big-endian.patch
Patch1: 01-vsomeip-build-extra.patch
# Do various conversions of /usr/lib -> /usr/lib64
Patch2: 02-vsomeip-fix-cmake_libdir.patch
# boost::asio::io_context::strand::wrap is deprecated
Patch3: 03-vsomeip3-boost-asio-deprecation.patch
# GCC 16 -Warray-bounds false positive
Patch4: 04-vsomeip3-gcc16-warning.patch
BuildRequires: boost-devel
BuildRequires: cmake
BuildRequires: dlt-libs-devel
BuildRequires: systemd-devel
BuildRequires: gcc-c++
BuildRequires: gtest-devel
BuildRequires: google-benchmark-devel
# Fedora has extra tools for secondary items
%if 0%{?fedora}
BuildRequires: doxygen
BuildRequires: gtest-devel
BuildRequires: asciidoc
%endif
# https://fedoraproject.org/wiki/SELinux/IndependentPolicy
Requires: (vsomeip3-selinux = %{?epoch:%{epoch}:}%{version}-%{release} if selinux-policy-targeted)
%description
The vsomeip stack implements the http://some-ip.com/ (Scalable
@ -57,23 +59,36 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%package selinux
Summary: SELinux policy module for %{name}
BuildRequires: selinux-policy
BuildArch: noarch
BuildRequires: selinux-policy-devel
BuildRequires: make
BuildArch: noarch
%{?selinux_requires}
BuildRequires: checkpolicy
%if "%{_selinux_policy_version}" != ""
Requires: selinux-policy >= %{_selinux_policy_version}
%endif
Requires(post): policycoreutils
%if "%{_selinux_policy_version}" != ""
Requires(post): selinux-policy-base >= %_selinux_policy_version
Requires(post): selinux-policy-any >= %_selinux_policy_version
%endif
%description selinux
This package contains the SELinux policy module for %{name}.
## routing manager
%package routingmanager
Summary: Routingmanager daemon %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires(pre): shadow-utils
Requires: systemd
Requires: dlt-daemon
Recommends: vsomeip3-selinux
%description routingmanager
%{summary}.
%{summary}. Also requires dlt-daemon running.
%package examples
Summary: Examples for %{name}
@ -100,7 +115,7 @@ Requires: %{name}-compat%{?_isa} = %{version}-%{release}
%{summary}.
%prep
%autosetup -n vsomeip-%{version} -p1
%autosetup -n vsomeip-%{version} -p1
mkdir vsomeip-selinux
cp %{SOURCE5} %{SOURCE6} %{SOURCE7} vsomeip-selinux/
@ -114,12 +129,14 @@ find -name "*.[ch]pp" | xargs chmod a-x
%build
%cmake \
-DENABLE_SIGNAL_HANDLING=OFF \
-DENABLE_CONFIGURATION_OVERLAYS=ON \
-DENABLE_COMPAT=ON \
-DVSOMEIP_INSTALL_ROUTINGMANAGERD=ON \
-DBASE_PATH=/run/vsomeip \
--trace-expand --log-level=TRACE
-DENABLE_SIGNAL_HANDLING=OFF \
-DENABLE_CONFIGURATION_OVERLAYS=ON \
-DENABLE_COMPAT=ON \
-DVSOMEIP_INSTALL_ROUTINGMANAGERD=ON \
-DBASE_PATH=/run/vsomeip \
-Wno-dev
# -Wno-dev \
# --trace-expand --log-level=TRACE
%cmake_build --target all --target vsomeip_ctrl --target examples --target hello_world_client --target hello_world_service
(cd vsomeip-selinux &&
@ -130,7 +147,7 @@ find -name "*.[ch]pp" | xargs chmod a-x
%install
%cmake_install
# Install samples
DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}/tools"
DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}/tools/vsomeip_ctrl"
DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}/examples"
DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}/examples/hello_world"
@ -147,7 +164,6 @@ mkdir -p $RPM_BUILD_ROOT/var/lib/routingmanagerd
mkdir -p %{buildroot}%{_unitdir}
install %{SOURCE1} %{buildroot}%{_unitdir}/ # service
install %{SOURCE2} %{buildroot}%{_unitdir}/ # socket
mkdir -p %{buildroot}%{_tmpfilesdir}
install -m 0644 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf
@ -159,34 +175,41 @@ mkdir -p %{buildroot}%{_datadir}/selinux/packages/ %{buildroot}%{_datadir}/selin
install -m 0644 vsomeip-selinux/vsomeip.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/
install -m 0644 vsomeip-selinux/vsomeip.if %{buildroot}%{_datadir}/selinux/devel/include/contrib/
install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/vsomeip3.conf
%post selinux
%selinux_modules_install %{_datadir}/selinux/packages/vsomeip.pp.bz2
. %{_sysconfdir}/selinux/config
%selinux_modules_install -s ${SELINUXTYPE} %{_datadir}/selinux/packages/vsomeip.pp.bz2
restorecon -R %{_bindir}/routingmanagerd &> /dev/null || :
restorecon -R %{_rundir}/vsomeip/ &> /dev/null || :
restorecon -R %{_localstatedir}/%{_rundir}/vsomeip/ &> /dev/null || :
restorecon -R /var/lib/routingmanagerd/ &> /dev/null || :
%postun selinux
if [ $1 -eq 0 ]; then
%selinux_modules_uninstall %{_datadir}/selinux/packages/vsomeip.pp.bz2
. %{_sysconfdir}/selinux/config
%selinux_modules_uninstall -s ${SELINUXTYPE} vsomeip
restorecon -R %{_bindir}/routingmanagerd &> /dev/null || :
restorecon -R %{_rundir}/vsomeip/ &> /dev/null || :
restorecon -R %{_localstatedir}/%{_rundir}/vsomeip/ &> /dev/null || :
restorecon -R /var/lib/routingmanagerd/ &> /dev/null || :
fi
%pre routingmanager
## This creates the users that are needed for routingmanagerd
getent group routingmanagerd >/dev/null || groupadd -r routingmanagerd
getent passwd routingmanagerd >/dev/null || \
useradd -r -g routingmanagerd -d /var/lib/routingmanagerd -s /sbin/nologin \
-c "User for routingmanagerd" routingmanagerd
exit 0
%sysusers_create_compat vsomeip3.conf
%post routingmanager
%systemd_post routingmanagerd.socket routingmanagerd.service
%systemd_post routingmanagerd.service
%preun routingmanager
%systemd_preun routingmanagerd.socket routingmanagerd.service
%systemd_preun routingmanagerd.service
%postun routingmanager
%systemd_postun_with_restart routingmanagerd.socket routingmanagerd.service
%systemd_postun_with_restart routingmanagerd.service
%files
%doc AUTHORS CHANGES README.md
%license LICENSE LICENSE_boost
%license LICENSE
%{_libdir}/libvsomeip3.so.*
%{_libdir}/libvsomeip3-*.so.*
%{_tmpfilesdir}/%{name}.conf
@ -198,25 +221,25 @@ exit 0
%files compat
%doc AUTHORS CHANGES README.md
%license LICENSE LICENSE_boost
%license LICENSE
%{_libdir}/libvsomeip.so.*
%files routingmanager
%doc AUTHORS CHANGES README.md
%license LICENSE LICENSE_boost
%license LICENSE
%{_sysusersdir}/vsomeip3.conf
%attr(755,routingmanagerd,routingmanagerd) %dir /var/lib/routingmanagerd
%{_bindir}/routingmanagerd
%{_unitdir}/routingmanagerd.service
%{_unitdir}/routingmanagerd.socket
%files tools
%doc AUTHORS CHANGES README.md
%license LICENSE LICENSE_boost
%license LICENSE
%{_bindir}/vsomeip_ctrl
%files examples
%doc AUTHORS CHANGES README.md
%license LICENSE LICENSE_boost
%license LICENSE
%{_bindir}/vsomeip-*-sample
%{_bindir}/vsomeip-hello_world*
# Example configurations:
@ -224,7 +247,7 @@ exit 0
%files compat-devel
%doc AUTHORS CHANGES README.md
%license LICENSE LICENSE_boost
%license LICENSE
%{_includedir}/compat
%{_libdir}/libvsomeip.so
%{_libdir}/cmake/vsomeip
@ -232,7 +255,7 @@ exit 0
%files devel
%doc AUTHORS CHANGES README.md
%license LICENSE LICENSE_boost
%license LICENSE
%{_includedir}/vsomeip
%{_libdir}/libvsomeip3.so
%{_libdir}/libvsomeip3-*.so
@ -240,6 +263,64 @@ exit 0
%{_libdir}/pkgconfig/vsomeip3.pc
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.11-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Thu Jan 22 2026 Jonathan Wakely <jwakely@fedoraproject.org> - 3.5.11-8
- Patched for Boost 1.90.0 asio deprecation and GCC 16 warning (#2429732)
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.11-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Mon Dec 08 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.11-6
- Find a couple of small changes needed to allow for selinux to be applied to non-standard policies
* Sun Dec 07 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.11-4
- Use bluechi selinux to fix problem with non-default targets
* Wed Dec 3 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.11-3
- Rewrite the selinux policy from scratch with sepolgen
- Remove the socket creation as systemd as vsomeip will not work with it.
* Mon Dec 1 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.11-2
- Try to fix the selinux problem seen with CS10
- Try to fix problem with socket creation and systemd
* Mon Dec 1 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.11-1
- Update to newest version of vsomeip3.
* Wed Aug 27 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.7-2
- Remove i686 as it no longer builds and is not needed.
* Tue Aug 26 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.7-1
- Update to 3.5.7
- Clean up patches to just two as others are now upstream
* Mon Mar 31 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.5-2
- Updated 3.5.4 to 3.5.5.
- Try to make the Cmake pic vs pie patch upstreamable
* Mon Mar 17 2025 Stephen Smoogen <smooge@fedoraproject.org> - 3.5.4-1
- Moved from 3.3.x to 3.5.x
- License has changed from MPLv2 AND Boost to MPLv2
- No longer need to carry the big-endian patch
- Needed to fix some entries which did not include cstdint
* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.3.8-6
- Add sysusers.d config file to allow rpm to create users/groups automatically
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.8-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Jonathan Wakely <jwakely@redhat.com> - 3.3.8-2
- Rebuilt for Boost 1.83
* Mon Oct 16 2023 Stephen Smoogen <smooge@fedoraproject.org> - 3.3.8-1
- Updated to 3.3.8
- Fixed vsomeip3.if selinux to allow interpod communication

1
vsomeip3.sysusers.conf Normal file
View file

@ -0,0 +1 @@
u routingmanagerd - 'User for routingmanagerd' /var/lib/routingmanagerd -