aardvark-dns/aardvark-dns.spec

115 lines
3.1 KiB
RPMSpec
Raw Normal View History

# trust-dns-{client,server} not available
# using vendored deps
# RHEL doesn't include the package rust-packaging which provides %%__cargo macro, but EPEL
# does. So we set it separately here and skip rust-packaging dependency for RHEL.
# Buildability without EPEL is essential for packit builds.
# ELN doesn't need this.
%if %{defined rhel} && 0%{?rhel} < 10
%define __cargo %{_bindir}/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' %{_bindir}/cargo
%endif
%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
# copr_username is only set on copr environments owned by rhcontainerbot,
# not on other coprs or environments like koji.
%if %{defined copr_username} && "%{?copr_username}" == "rhcontainerbot"
%bcond_without copr
%else
%bcond_with copr
%endif
# rhel 8 does not support %%autochangelog
%if %{defined rhel} && 0%{?rhel} <= 8
%bcond_without manual_changelog
%else
%bcond_with manual_changelog
%endif
# rhel does not define %%{golang_arches_future}
%if %{defined fedora}
%bcond_without golang_arches_future
%else
%bcond_with golang_arches_future
%endif
Name: aardvark-dns
%if %{with copr}
Epoch: 102
%endif
# DO NOT TOUCH the Version string!
# The TRUE source of this specfile is:
# https://github.com/containers/podman/blob/main/rpm/podman.spec
# If that's what you're reading, Version must be 0, and will be updated by Packit for
# copr and koji builds.
# If you're reading this on dist-git, the version is automatically filled in by Packit.
Version: 1.7.0
2023-08-22 13:10:59 +00:00
License: Apache-2.0 AND MIT AND Zlib
Release: %autorelease
%if %{with golang_arches_future}
ExclusiveArch: %{golang_arches_future}
%else
ExclusiveArch: aarch64 ppc64le s390x x86_64
%endif
Summary: Authoritative DNS server for A/AAAA container records
URL: https://github.com/containers/%{name}
# Tarballs fetched from upstream's release page
Source0: %{url}/archive/v%{version}.tar.gz
Source1: %{url}/releases/download/v%{version}/%{name}-v%{version}-vendor.tar.gz
BuildRequires: cargo
BuildRequires: git-core
BuildRequires: make
%if %{defined rhel}
BuildRequires: rust-toolset
%else
BuildRequires: rust-packaging
BuildRequires: rust-srpm-macros
%endif
# DO NOT DELETE BELOW LINE - used for updating downstream imports
# vendored libraries
%description
%{summary}
Forwards other request to configured resolvers.
Read more about configuration in `src/backend/mod.rs`.
%prep
%autosetup -Sgit %{name}-%{version}
# Following steps are only required on environments like koji which have no
# network access and thus depend on the vendored tarball. Copr pulls
# dependencies directly from the network.
%if %{without copr}
tar fx %{SOURCE1}
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
%endif
%build
%{__make} CARGO="%{__cargo}" build
%install
%{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install
%files
%license LICENSE
%dir %{_libexecdir}/podman
%{_libexecdir}/podman/%{name}
%changelog
%autochangelog