# Score Communication Module RPM Spec # RPM specification for the Score Communication middleware (LoLa) %global debug_package %{nil} Name: score-communication Version: 0.0.1 Release: 1%{?dist} Summary: High-performance automotive communication middleware (LoLa) License: Apache-2.0 URL: https://github.com/eclipse-score/communication Source0: %{name}-%{version}.tar.gz # Build requirements BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: make BuildRequires: score-baselibs-devel BuildRequires: libacl-devel BuildRequires: boost-devel BuildRequires: json-devel # System dependencies BuildRequires: pkgconfig BuildRequires: libstdc++-devel # Runtime dependencies Requires: glibc Requires: libgcc Requires: libstdc++ %description Score Communication Module (LoLa - Low Latency) is a high-performance, safety-critical communication middleware implementation based on the Adaptive AUTOSAR Communication Management specification. This package provides: - High-Performance Intra-ECU IPC with zero-copy shared-memory communication - AUTOSAR Compliance with partial implementation of Adaptive AUTOSAR Communication Management (ara::com) - Event-Driven Architecture using publisher/subscriber pattern with skeleton/proxy framework - Service Discovery via flag file-based service registration and lookup mechanism - Safety-Critical design for automotive safety standards (ASIL-B qualified) - Multi-Threading Support with thread-safe operations and atomic data structures - Memory Management with custom allocators optimized for shared memory usage - Tracing Infrastructure for zero-copy, binding-agnostic communication tracing support - Multi-Platform support for Linux and QNX operating systems %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Development files and headers for the Score Communication middleware. This package contains the header files and static libraries needed to develop applications using the LoLa communication framework. %package examples Summary: Example applications for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description examples Example applications demonstrating the usage of Score Communication middleware. Includes IPC bridge examples in both C++ and Rust implementations. %prep %autosetup -n %{name}-%{version} # Clean any previous builds make clean %build # Build using Make system # Note: -fPIC is essential for shared library creation make all CXXFLAGS="%{optflags} -fPIC" LDFLAGS="%{build_ldflags}" %install # Create necessary directories mkdir -p %{buildroot}%{_libdir} mkdir -p %{buildroot}%{_includedir}/score/mw/com mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_datadir}/%{name}/examples mkdir -p %{buildroot}%{_datadir}/%{name}/config mkdir -p %{buildroot}%{_docdir}/%{name} # Install libraries built with Make cp build/lib/*.so %{buildroot}%{_libdir}/ # Install headers cp -r score/mw/com/*.h %{buildroot}%{_includedir}/score/mw/com/ cp -r score/mw/com/impl/*.h %{buildroot}%{_includedir}/score/mw/com/ 2>/dev/null || true # Install example binaries (if they exist) if [ -f build/bin/ipc_bridge_cpp ]; then cp build/bin/ipc_bridge_cpp %{buildroot}%{_bindir}/ fi if [ -f build/bin/ipc_bridge_rs ]; then cp build/bin/ipc_bridge_rs %{buildroot}%{_bindir}/ fi # Install configuration files and examples cp -r score/mw/com/example/ipc_bridge/etc/* %{buildroot}%{_datadir}/%{name}/config/ cp -r score/mw/com/example/* %{buildroot}%{_datadir}/%{name}/examples/ # Install design documentation cp -r score/mw/com/design/ %{buildroot}%{_docdir}/%{name}/ # Install JSON schema files mkdir -p %{buildroot}%{_datadir}/%{name}/schema find . -name "*.json" -path "*/configuration/*" -exec cp {} %{buildroot}%{_datadir}/%{name}/schema/ \; %files %license LICENSE %doc README.md NOTICE %{_libdir}/*.so %{_datadir}/%{name}/config/ %{_datadir}/%{name}/schema/ %files devel %{_includedir}/score/ %{_docdir}/%{name}/design/ %doc CONTRIBUTING.md %files examples %{_bindir}/ipc_bridge_cpp %{_bindir}/ipc_bridge_rs %{_datadir}/%{name}/examples/ %post /sbin/ldconfig %postun /sbin/ldconfig %changelog * Thu Sep 25 2025 Pierre-Yves Chibon - 0.0.1-1 - Initial RPM package for Score Communication Module - Includes LoLa high-performance automotive communication middleware - AUTOSAR-compliant implementation with ASIL-B qualification - Zero-copy shared-memory IPC for embedded systems - Support for Linux and QNX platforms - C++ and Rust example applications included