File kuksa-val.spec of Package kuksa-val
#
# spec file for package kuksa-val
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define skip_python2 1
Name: kuksa-val
Version: 0.4.0
Release: 0
Summary: KUKSA Vehicle Abstraction Layer
License: MIT
Group: Productivity/Networking/Web/Proxy
URL: https://www.eclipse.org/kuksa/
Source0: kuksa-val-%{version}.tar.gz
Source1: server.ini
Source2: kuksa-val-server.service
# https://gitlab.com/automotivegradelinux/AGL/meta-agl-demo/-/blob/master/recipes-connectivity/kuksa-val/kuksa-val-agl/00-agl_vss_overlay_2.2.json
Source3: agl-vss-overlay.json
# create manually
Source4: speed-limit-overlay.json
Patch0: version.patch
Patch1: unit-test.patch
Patch2: clean-setup-cfg.patch
Patch3: remove-certificates.patch
Patch4: python-shebang.patch
Patch5: cmd2.patch
%description
KUKSA.val provides in-vehicle software components for working with in-vehicle
signals modelled using the COVESA VSS data model.
%package server
Summary: KUKSA.val Server
BuildRequires: cmake >= 3.12.0
BuildRequires: gcc-c++
BuildRequires: boost-devel >= 1.82.0
BuildRequires: mosquitto-devel
BuildRequires: openssl-devel >= 1.0.0
BuildRequires: git
BuildRequires: grpc-devel >= 1.44.0
BuildRequires: libboost_filesystem-devel >= 1.82.0
BuildRequires: libboost_program_options-devel >= 1.82.0
BuildRequires: libboost_system-devel >= 1.82.0
BuildRequires: libboost_log-devel >= 1.82.0
BuildRequires: libboost_thread-devel >= 1.82.0
BuildRequires: libboost_test-devel >= 1.82.0
BuildRequires: protobuf-devel
Requires: %{name}-certificates >= %{version}
Requires: %{name}-agl-vss-overlay >= %{version}
Requires: %{name}-speed-limit-vss-overlay >= %{version}
%description server
KUKSA.val Server is a feature rich in-vehicle data server written in
C++ providing authorized access to vehicle data. It serves signals
described using the COVESA VSS data model.
%package client
Summary: KUKSA.val Client
BuildRequires: python3 > 3.8
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module websockets}
BuildRequires: %{python_module cmd2}
BuildRequires: %{python_module pygments}
BuildRequires: %{python_module grpcio-tools}
BuildRequires: %{python_module jsonpath-ng}
BuildRequires: fdupes
Requires: python3-websockets >= 10.1
Requires: python3-cmd2 > 2.0
Requires: python3-pygments >= 2.15
Requires: python3-grpcio-tools >= 1.54.2
Requires: python3-jsonpath-ng >= 1.5.3
Requires: %{name}-certificates = %{version}
BuildArch: noarch
%{?systemd_requires}
%description client
KUKSA.val Client provides both a command-line interface (CLI) and a
standalone Python library to interact with either KUKSA.val Server
or KUKSA.val Databroker.
%package certificates
Summary: KUKSA.val Certificates
BuildArch: noarch
%description certificates
KUKSA.val self-signed certificates, JWT keys and tokens.
%package agl-vss-overlay
Summary: AGL VSS Overlay
BuildArch: noarch
%description agl-vss-overlay
AGL VSS overlay with extra signals used in the AGL Demo.
%package speed-limit-vss-overlay
Summary: SpeedLimit VSS Overlay
BuildArch: noarch
%description speed-limit-vss-overlay
SpeedLimit overlay with extra signals used in the Traffic Sign
detection workload.
%prep
%autosetup -p1
%build
cd kuksa-client
%python3_build
cd -
cd kuksa-val-server
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DBUILD_UNIT_TEST=OFF -DENABLE_COVERAGE=OFF
%cmake_build
%install
cd kuksa-client
%python3_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
cd -
install -D -p -m 0755 kuksa-val-server/build/src/kuksa-val-server %{buildroot}%{_bindir}/kuksa-val-server
install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/kuksa-val-server.service
install -d %{buildroot}/%{_sbindir}
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rckuksa-val-server
install -Dm0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/kuksa-val/server.ini
# vss specs
install -Dm0644 kuksa-val-server/build/src/vss_release_2.0.json %{buildroot}%{_sysconfdir}/kuksa-val/vss/vss_release_2.0.json
install -Dm0644 kuksa-val-server/build/src/vss_release_2.1.json %{buildroot}%{_sysconfdir}/kuksa-val/vss/vss_release_2.1.json
install -Dm0644 kuksa-val-server/build/src/vss_release_2.2.json %{buildroot}%{_sysconfdir}/kuksa-val/vss/vss_release_2.2.json
install -Dm0644 kuksa-val-server/build/src/vss_release_3.0.json %{buildroot}%{_sysconfdir}/kuksa-val/vss/vss_release_3.0.json
install -Dm0644 kuksa-val-server/build/src/vss_release_3.1.1.json %{buildroot}%{_sysconfdir}/kuksa-val/vss/vss_release_3.1.1.json
install -Dm0644 kuksa-val-server/build/src/vss_release_4.0.json %{buildroot}%{_sysconfdir}/kuksa-val/vss/vss_release_4.0.json
# vss overlays
install -Dm0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/kuksa-val/overlays/agl.json
install -Dm0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/kuksa-val/overlays/speed-limit.json
# certificates
install -Dm0644 kuksa_certificates/CA.key %{buildroot}%{_sysconfdir}/kuksa-val/certs/CA.key
install -Dm0644 kuksa_certificates/CA.pem %{buildroot}%{_sysconfdir}/kuksa-val/certs/CA.pem
install -Dm0644 kuksa_certificates/Server.key %{buildroot}%{_sysconfdir}/kuksa-val/certs/Server.key
install -Dm0644 kuksa_certificates/Server.pem %{buildroot}%{_sysconfdir}/kuksa-val/certs/Server.pem
install -Dm0644 kuksa_certificates/Client.key %{buildroot}%{_sysconfdir}/kuksa-val/certs/Client.key
install -Dm0644 kuksa_certificates/Client.pem %{buildroot}%{_sysconfdir}/kuksa-val/certs/Client.pem
# jwt key
install -Dm0644 kuksa_certificates/jwt/jwt.key %{buildroot}%{_sysconfdir}/kuksa-val/certs/jwt.key
install -Dm0644 kuksa_certificates/jwt/jwt.key.pub %{buildroot}%{_sysconfdir}/kuksa-val/certs/jwt.key.pub
# jwt tokens
install -Dm0644 kuksa_certificates/jwt/all-read-write.json %{buildroot}%{_sysconfdir}/kuksa-val/tokens/all-read-write.json
install -Dm0644 kuksa_certificates/jwt/all-read-write.json.token %{buildroot}%{_sysconfdir}/kuksa-val/tokens/all-read-write.json.token
install -Dm0644 kuksa_certificates/jwt/single-read.json %{buildroot}%{_sysconfdir}/kuksa-val/tokens/single-read.json
install -Dm0644 kuksa_certificates/jwt/single-read.json.token %{buildroot}%{_sysconfdir}/kuksa-val/tokens/single-read.json.token
install -Dm0644 kuksa_certificates/jwt/super-admin.json %{buildroot}%{_sysconfdir}/kuksa-val/tokens/super-admin.json
install -Dm0644 kuksa_certificates/jwt/super-admin.json.token %{buildroot}%{_sysconfdir}/kuksa-val/tokens/super-admin.json.token
%pre
%service_add_pre kuksa-val-server.service
%post
%service_add_post kuksa-val-server.service
%{fillup_only -n kuksa-val-server}
%preun
%service_del_preun kuksa-val-server.service
%postun
%service_del_postun kuksa-val-server.service
%files server
%license LICENSE
%doc kuksa-val-server/README.md
%doc NOTICE.md
%{_bindir}/kuksa-val-server
%{_unitdir}/kuksa-val-server.service
%{_sbindir}/rckuksa-val-server
%dir %{_sysconfdir}/kuksa-val/
%config(noreplace) %{_sysconfdir}/kuksa-val/server.ini
%dir %{_sysconfdir}/kuksa-val/vss/
%config %{_sysconfdir}/kuksa-val/vss/vss_release_2.0.json
%config %{_sysconfdir}/kuksa-val/vss/vss_release_2.1.json
%config %{_sysconfdir}/kuksa-val/vss/vss_release_2.2.json
%config %{_sysconfdir}/kuksa-val/vss/vss_release_3.0.json
%config %{_sysconfdir}/kuksa-val/vss/vss_release_3.1.1.json
%config %{_sysconfdir}/kuksa-val/vss/vss_release_4.0.json
%files client
%license LICENSE
%doc kuksa-client/README.md
%doc NOTICE.md
%{_bindir}/kuksa-client
%dir %{_sysconfdir}/kuksa-val/
%dir %{python_sitelib}/kuksa/
%dir %{python_sitelib}/kuksa_client/
%{python_sitelib}/kuksa/*
%{python_sitelib}/kuksa_client/*
%{python_sitelib}/kuksa_client-*.egg-info
%files certificates
%dir %{_sysconfdir}/kuksa-val/
%dir %{_sysconfdir}/kuksa-val/certs/
%dir %{_sysconfdir}/kuksa-val/tokens/
%config %{_sysconfdir}/kuksa-val/certs/CA.key
%config %{_sysconfdir}/kuksa-val/certs/CA.pem
%config %{_sysconfdir}/kuksa-val/certs/Server.key
%config %{_sysconfdir}/kuksa-val/certs/Server.pem
%config %{_sysconfdir}/kuksa-val/certs/Client.key
%config %{_sysconfdir}/kuksa-val/certs/Client.pem
%config %{_sysconfdir}/kuksa-val/certs/jwt.key
%config %{_sysconfdir}/kuksa-val/certs/jwt.key.pub
%config %{_sysconfdir}/kuksa-val/tokens/all-read-write.json
%config %{_sysconfdir}/kuksa-val/tokens/all-read-write.json.token
%config %{_sysconfdir}/kuksa-val/tokens/single-read.json
%config %{_sysconfdir}/kuksa-val/tokens/single-read.json.token
%config %{_sysconfdir}/kuksa-val/tokens/super-admin.json
%config %{_sysconfdir}/kuksa-val/tokens/super-admin.json.token
%files agl-vss-overlay
%dir %{_sysconfdir}/kuksa-val/overlays/
%config %{_sysconfdir}/kuksa-val/overlays/agl.json
%files speed-limit-vss-overlay
%dir %{_sysconfdir}/kuksa-val/overlays/
%config %{_sysconfdir}/kuksa-val/overlays/speed-limit.json
%changelog