go-fdo-server/go-fdo-server.spec
2026-07-28 05:39:30 -04:00

234 lines
7.6 KiB
RPMSpec

## START: Set by rpmautospec
## (rpmautospec version 0.8.4)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 3;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
# Generated by go2rpm 1.18.0
%bcond check 1
# https://github.com/fido-device-onboard/go-fdo-server
%global goipath github.com/fido-device-onboard/go-fdo-server
%global with_debug 1
%if 0%{?with_debug}
%global _find_debuginfo_dwz_opts %{nil}
%global _dwz_low_mem_die_limit 0
%else
%global debug_package %{nil}
%endif
Version: 1.0.1
%gometa -L -f
Name: go-fdo-server
Release: 2%{?dist}.%{autorelease -n}
Summary: A Go implementation of the FIDO Device Onboard Specification
# Generated by go-vendor-tools
License: Apache-2.0 AND BSD-3-Clause AND MIT
URL: %{gourl}
Source0: %{gosource}
# Generated by go-vendor-tools
Source1: %{archivename}-vendor.tar.bz2
# Per packaging guidelines, sysusers.d files must be included as sources
# and cannot be installed directly in the install section.
Source2: go-fdo-server-group.conf
Source3: go-fdo-server-manufacturer-user.conf
Source4: go-fdo-server-rendezvous-user.conf
Source5: go-fdo-server-owner-user.conf
BuildRequires: go-rpm-macros
# Systemd units
BuildRequires: systemd-rpm-macros
# Sysusers
%{?sysusers_requires_compat}
%description
This package provides a server-side implementation of the FIDO Device Onboard
(FDO) specification, written in Go. FDO is an open standard for the late
binding of device credentials, allowing for automated and secure on-boarding of
devices when they are first powered on in their final location.
%prep
%goprep -A
%setup -q -T -D -a1 %{forgesetupargs}
#%%autopatch -p1
%build
%global gomodulesmode GO111MODULE=on
# https://discussion.fedoraproject.org/t/why-does-the-go-compiler-uses-x-nodwarf5-by-default/179804
# https://github.com/golang/go/issues/75079
export GOEXPERIMENT="nodwarf5"
export GO_LDFLAGS="-X %{goipath}/internal/version.VERSION=%{version}"
%gobuild -o %{gobuilddir}/bin/go-fdo-server %{goipath}
%install
install -m 0755 -vd %{buildroot}%{_bindir}
install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}
# Configuration
install -m 0750 -vd %{buildroot}%{_sysconfdir}/%{name}
install -m 0644 -vp configs/manufacturing.yaml %{buildroot}%{_sysconfdir}/%{name}
install -m 0644 -vp configs/owner.yaml %{buildroot}%{_sysconfdir}/%{name}
install -m 0644 -vp configs/rendezvous.yaml %{buildroot}%{_sysconfdir}/%{name}
# Certificates
install -m 0750 -vd %{buildroot}%{_sysconfdir}/pki/%{name}
# Sysusers
install -m 0644 -vp -D %{SOURCE2} %{buildroot}/%{_sysusersdir}/go-fdo-server.conf
install -m 0644 -vp -D %{SOURCE3} %{buildroot}/%{_sysusersdir}/go-fdo-server-manufacturer.conf
install -m 0644 -vp -D %{SOURCE4} %{buildroot}/%{_sysusersdir}/go-fdo-server-rendezvous.conf
install -m 0644 -vp -D %{SOURCE5} %{buildroot}/%{_sysusersdir}/go-fdo-server-owner.conf
# Systemd units
install -m 0755 -vd %{buildroot}%{_unitdir}
install -m 0644 -vp -D init/systemd/* %{buildroot}%{_unitdir}
# Helpers
install -m 0755 -vd %{buildroot}%{_libexecdir}/%{name}
install -m 0755 -vp scripts/cert-utils.sh %{buildroot}%{_libexecdir}/%{name}
install -m 0755 -vp scripts/generate-go-fdo-server-certs.sh %{buildroot}%{_libexecdir}/%{name}
%check
%if %{with check}
%gotest ./...
%endif
%files
%license LICENSE vendor/modules.txt
%doc CERTIFICATE_SETUP.md CONFIG.md DOCKERFILE_USAGE.md FSIM_USAGE.md README.md SECURITY.md
%{_bindir}/go-fdo-server
%dir %attr(750, root, go-fdo-server) %{_sysconfdir}/%{name}
%dir %attr(750, root, go-fdo-server) %{_sysconfdir}/pki/%{name}
%{_sysusersdir}/%{name}.conf
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/cert-utils.sh
%{_libexecdir}/%{name}/generate-go-fdo-server-certs.sh
%pre
%sysusers_create_compat %{SOURCE2}
%package manufacturer
Requires: go-fdo-server
Requires: group(go-fdo-server)
Requires: openssl
Summary: A Go implementation of the FDO manufacturer server
BuildArch: noarch
%description manufacturer
This package provides the manufacturer server component of the FDO stack.
The manufacturer server is responsible for creating ownership vouchers and
preparing devices for the on-boarding process during the manufacturing phase.
%files manufacturer
# Systemd unit
%{_unitdir}/go-fdo-server-manufacturer.service
# Sysuser
%{_sysusersdir}/go-fdo-server-manufacturer.conf
# Default config
%config(noreplace) %attr(644, root, go-fdo-server) %{_sysconfdir}/%{name}/manufacturing.yaml
%pre manufacturer
%sysusers_create_compat %{SOURCE3}
%post manufacturer
%systemd_post go-fdo-server-manufacturer.service
%preun manufacturer
%systemd_preun go-fdo-server-manufacturer.service
%postun manufacturer
%systemd_postun_with_restart go-fdo-server-manufacturer.service
%package rendezvous
Requires: go-fdo-server
Requires: group(go-fdo-server)
Summary: A Go implementation of the FDO rendezvous server
BuildArch: noarch
%description rendezvous
This package provides the rendezvous server component of the FDO stack.
The rendezvous server acts as a trusted intermediary, redirecting devices
to their designated owner's on-boarding service based on their ownership
voucher.
%files rendezvous
# Systemd unit
%{_unitdir}/go-fdo-server-rendezvous.service
# Sysuser
%{_sysusersdir}/go-fdo-server-rendezvous.conf
# Default config
%config(noreplace) %attr(644, root, go-fdo-server) %{_sysconfdir}/%{name}/rendezvous.yaml
%pre rendezvous
%sysusers_create_compat %{SOURCE4}
%post rendezvous
%systemd_post go-fdo-server-rendezvous.service
%preun rendezvous
%systemd_preun go-fdo-server-rendezvous.service
%postun rendezvous
%systemd_postun_with_restart go-fdo-server-rendezvous.service
%package owner
Requires: go-fdo-server
Requires: group(go-fdo-server)
Summary: A Go implementation of the FDO owner server
BuildArch: noarch
%description owner
This package provides the owner server component of the FDO stack. The owner
server is the final destination for a device during on-boarding. It verifies
the device's authenticity, establishes ownership, and provisions it with the
necessary credentials and configuration for operation.
%files owner
# Systemd unit
%{_unitdir}/go-fdo-server-owner.service
# Sysuser
%{_sysusersdir}/go-fdo-server-owner.conf
# Default config
%config(noreplace) %attr(644, root, go-fdo-server) %{_sysconfdir}/%{name}/owner.yaml
%pre owner
%sysusers_create_compat %{SOURCE5}
%post owner
%systemd_post go-fdo-server-owner.service
%preun owner
%systemd_preun go-fdo-server-owner.service
%postun owner
%systemd_postun_with_restart go-fdo-server-owner.service
%changelog
## START: Generated by rpmautospec
* Mon Jul 13 2026 RHEL Packaging Agent <redhat-ymir-agent@redhat.com> - 1.0.1-3
- Rebuild against updated golang
* Wed May 20 2026 Sarita Mahajan <sarmahaj@redhat.com> - 1.0.1-2
- Rebuild to fix CVE-2026-32282 and CVE-2025-68121
* Tue May 05 2026 Antonio Murdaca <antoniomurdaca@gmail.com> - 1.0.1-1
- Update to 1.0.1 upstream release
- Resolves: RHEL-165475
* Wed Apr 29 2026 Antonio Murdaca <antoniomurdaca@gmail.com> - 1.0.0-3
- Rebuild to fix CVE-2026-32283
* Thu Apr 02 2026 Antonio Murdaca <antoniomurdaca@gmail.com> - 1.0.0-2
- Rebuild to fix CVE-2026-25679 and CVE-2026-27137
* Tue Feb 17 2026 Antonio Murdaca <antoniomurdaca@gmail.com> - 1.0.0-1
- Update to 1.0.0 upstream release
* Tue Jan 27 2026 Paul Whalen <pwhalen@fedoraproject.org> - 0.0.4-2
- Add gating test for cs10
* Tue Jan 20 2026 Paul Whalen <pwhalen@fedoraproject.org> - 0.0.4-1
- Initial commit on c10s
## END: Generated by rpmautospec