yggdrasil/yggdrasil.spec

110 lines
3.0 KiB
RPMSpec
Raw Normal View History

2022-01-27 19:13:39 +00:00
%bcond_without check
# https://github.com/redhatinsights/yggdrasil
%global goipath github.com/redhatinsights/yggdrasil
Version: 0.4.4
%global tag v%{version}
2022-01-27 19:13:39 +00:00
2023-03-07 17:49:51 +00:00
%gometa -f
2022-01-27 19:13:39 +00:00
%global common_description %{expand:
2023-03-07 17:49:51 +00:00
yggdrasil is a system daemon that subscribes to topics on an MQTT broker and
routes any data received on the topics to an appropriate child "worker" process,
exchanging data with its worker processes through a D-Bus message broker.}
2022-01-27 19:13:39 +00:00
%global golicenses LICENSE
2023-03-07 17:49:51 +00:00
%global godocs CONTRIBUTING.md README.md
2022-01-27 19:13:39 +00:00
Name: yggdrasil
2023-03-07 17:49:51 +00:00
Release: %autorelease
Summary: Remote data transmission and processing client
2022-01-27 19:13:39 +00:00
2023-03-07 17:49:51 +00:00
License: GPL-3.0-only
2022-01-27 19:13:39 +00:00
URL: %{gourl}
Source: %{url}/releases/download/%{tag}/yggdrasil-%{version}.tar.xz
Source1: config.toml
Source2: yggdrasil.sysuser
2022-01-27 19:13:39 +00:00
BuildRequires: systemd-rpm-macros
2023-03-07 17:49:51 +00:00
BuildRequires: meson
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(bash-completion)
%{?sysusers_requires_compat}
2022-01-27 19:13:39 +00:00
2023-03-07 17:49:51 +00:00
%description %{common_description}
2022-01-27 19:13:39 +00:00
%package devel
Summary: %{name} development files
%description devel
%{common_description}
Contains files needed for yggdrasil worker development.
%gopkg
2022-01-27 19:13:39 +00:00
%prep
%goprep %{?rhel:-k}
2023-03-07 17:49:51 +00:00
%autopatch -p1
2022-01-27 19:13:39 +00:00
%if %{undefined rhel}
2023-03-07 17:49:51 +00:00
%generate_buildrequires
%go_generate_buildrequires
%endif
2022-01-27 19:13:39 +00:00
%build
2023-03-07 17:49:51 +00:00
%undefine _auto_set_build_flags
export %gomodulesmode
%{?gobuilddir:export GOPATH="%{gobuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}"}
%meson -Dvendor=True -Ddefault_data_host=cert.cloud.redhat.com -Ddefault_path_prefix=redhat/insights "-Dgobuildflags=[%(echo %{expand:%gocompilerflags} | sed -e s/"^"/"'"/ -e s/" "/"', '"/g -e s/"$"/"'"/), '-tags', '"rpm_crashtraceback\ ${BUILDTAGS:-}"', '-a', '-v', '-x']" -Dgoldflags='%{?currentgoldflags} -B 0x%(head -c20 /dev/urandom|od -An -tx1|tr -d " \n") -compressdwarf=false -linkmode=external -extldflags "%{build_ldflags} %{?__golang_extldflags}"'
2023-03-07 17:49:51 +00:00
%meson_build
2022-01-27 19:13:39 +00:00
%global gosupfiles ./ipc/com.redhat.Yggdrasil1.Dispatcher1.xml ./ipc/com.redhat.Yggdrasil1.Worker1.xml
2022-01-27 19:13:39 +00:00
%install
2023-03-07 17:49:51 +00:00
%meson_install
%__install -m644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/config.toml
%__install -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysusersdir}/%{name}.conf
2022-01-27 19:13:39 +00:00
%if %{with check}
%check
%gocheck
%endif
%pre
%sysusers_create_compat %{SOURCE2}
%post
%systemd_post %{name}.service
%systemd_user_post %{name}.service
%preun
%systemd_preun %{name}.service
%systemd_user_preun %{name}.service
%postun
%systemd_postun_with_restart %{name}.service
%systemd_user_postun_with_restart %{name}.service
2022-01-27 19:13:39 +00:00
%files
%license LICENSE
%if %{defined rhel}
%license vendor/modules.txt
%endif
2023-03-07 17:49:51 +00:00
%doc CONTRIBUTING.md README.md
%{_bindir}/*
%config(noreplace) %{_sysconfdir}/%{name}
2022-01-27 19:13:39 +00:00
%{_unitdir}/*
2023-03-07 17:49:51 +00:00
%{_userunitdir}/*
%{_sysusersdir}/*
2022-01-27 19:13:39 +00:00
%{_datadir}/bash-completion/completions/*
2023-03-07 17:49:51 +00:00
%{_datadir}/dbus-1/{interfaces,system-services,system.d}/*
%{_datadir}/doc/%{name}/*
2022-01-27 19:13:39 +00:00
%{_mandir}/man1/*
%files devel
%{_libdir}/pkgconfig/*.pc
2022-01-27 19:13:39 +00:00
%changelog
2023-03-07 17:49:51 +00:00
%autochangelog