diff --git a/.gitignore b/.gitignore index 0283e55..afa8b52 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,11 @@ /v1.5.0.tar.gz /aardvark-dns-v1.6.0-vendor.tar.gz /v1.6.0.tar.gz +/v1.7.0.tar.gz +/aardvark-dns-v1.7.0-vendor.tar.gz +/v1.8.0.tar.gz +/aardvark-dns-v1.8.0-vendor.tar.gz +/v1.9.0.tar.gz +/aardvark-dns-v1.9.0-vendor.tar.gz +/v1.10.0.tar.gz +/aardvark-dns-v1.10.0-vendor.tar.gz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..61e87f1 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,123 @@ +--- +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +specfile_path: rpm/aardvark-dns.spec +upstream_tag_template: v{version} + +srpm_build_deps: + - cargo + - make + - openssl-devel + +jobs: + - job: copr_build + trigger: pull_request + notifications: + failure_comment: + message: "Ephemeral COPR build failed. @containers/packit-build please check." + targets: + fedora-all-x86_64: {} + fedora-all-aarch64: {} + fedora-eln-x86_64: + additional_repos: + - "https://kojipkgs.fedoraproject.org/repos/eln-build/latest/x86_64/" + fedora-eln-aarch64: + additional_repos: + - "https://kojipkgs.fedoraproject.org/repos/eln-build/latest/aarch64/" + epel-8-x86_64: {} + epel-8-aarch64: {} + epel-9-x86_64: {} + epel-9-aarch64: {} + additional_repos: + - "copr://rhcontainerbot/podman-next" + enable_net: true + + # Run on commit to main branch + - job: copr_build + trigger: commit + notifications: + failure_comment: + message: "podman-next COPR build failed. @containers/packit-build please check." + branch: main + owner: rhcontainerbot + project: podman-next + enable_net: true + + # Validate test + - job: tests + trigger: pull_request + skip_build: true + targets: + # Only need to test on one target + - fedora-latest-stable-x86_64 + identifier: validate_test + tmt_plan: "/plans/validate_test" + + # Unit tests + - job: tests + trigger: pull_request + skip_build: true + targets: &pr_test_targets + - fedora-all-x86_64 + - fedora-all-aarch64 + - epel-8-x86_64 + - epel-8-aarch64 + - epel-9-x86_64 + - epel-9-aarch64 + identifier: unit_test + tmt_plan: "/plans/unit_test" + + # Integration tests + - job: tests + trigger: pull_request + targets: *pr_test_targets + identifier: integration_test + tmt_plan: "/plans/integration_test" + + # Unit tests on RHEL + - job: tests + trigger: pull_request + skip_build: true + use_internal_tf: true + notifications: + failure_comment: + message: "podman e2e tests failed on RHEL. @containers/packit-build please check." + targets: &pr_test_targets_rhel + epel-8-aarch64: + distros: [RHEL-8.9.0-Nightly,RHEL-8.10.0-Nightly] + epel-8-x86_64: + distros: [RHEL-8.9.0-Nightly,RHEL-8.10.0-Nightly] + epel-9-aarch64: + distros: [RHEL-9.3.0-Nightly,RHEL-9.4.0-Nightly] + epel-9-x86_64: + distros: [RHEL-9.3.0-Nightly,RHEL-9.4.0-Nightly] + identifier: unit_test_internal + tmt_plan: "/plans/unit_test" + + # Integration tests on RHEL + - job: tests + trigger: pull_request + use_internal_tf: true + notifications: + failure_comment: + message: "podman system tests failed on RHEL. @containers/packit-build please check." + targets: *pr_test_targets_rhel + identifier: integration_test_internal + tmt_plan: "/plans/integration_test" + + - job: propose_downstream + trigger: release + update_release: false + dist_git_branches: + - fedora-all + + - job: koji_build + trigger: commit + dist_git_branches: + - fedora-all + + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched # rawhide updates are created automatically diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..bba9424 --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.89.0.post1.dev4+gabf90471. diff --git a/aardvark-dns.spec b/aardvark-dns.spec index c63f4ab..ef26893 100644 --- a/aardvark-dns.spec +++ b/aardvark-dns.spec @@ -1,6 +1,14 @@ # 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} @@ -10,121 +18,41 @@ %global debug_package %{nil} %endif -%global built_tag v1.6.0 -%global built_tag_strip %(b=%{built_tag}; echo ${b:1}) -%global gen_version %(b=%{built_tag_strip}; echo ${b/-/"~"}) - Name: aardvark-dns -Version: %{gen_version} -License: Apache-2.0 and MIT and Zlib +%if %{defined copr_username} +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.10.0 +# The `AND` needs to be uppercase in the License for SPDX compatibility +License: Apache-2.0 AND MIT AND Zlib Release: %autorelease +%if %{defined 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/%{built_tag}.tar.gz -Source1: %{url}/releases/download/%{built_tag}/%{name}-%{built_tag}-vendor.tar.gz +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} +# rust-toolset requires the `local` repo enabled on non-koji ELN build environments +BuildRequires: rust-toolset +%else BuildRequires: rust-packaging BuildRequires: rust-srpm-macros -# cargo tree --prefix none | awk '{print "Provides: bundled(crate("$1")) = "$2}' | sort | uniq -Provides: bundled(crate(anyhow)) = v1.0.70 -Provides: bundled(crate(async-broadcast)) = v0.5.1 -Provides: bundled(crate(async-trait)) = v0.1.56 -Provides: bundled(crate(atty)) = v0.2.14 -Provides: bundled(crate(autocfg)) = v1.1.0 -Provides: bundled(crate(bitflags)) = v1.3.2 -Provides: bundled(crate(bytes)) = v1.1.0 -Provides: bundled(crate(cfg-if)) = v1.0.0 -Provides: bundled(crate(chrono)) = v0.4.24 -Provides: bundled(crate(clap)) = v3.2.23 -Provides: bundled(crate(clap_derive)) = v3.2.18 -Provides: bundled(crate(clap_lex)) = v0.2.4 -Provides: bundled(crate(data-encoding)) = v2.3.2 -Provides: bundled(crate(endian-type)) = v0.1.2 -Provides: bundled(crate(enum-as-inner)) = v0.5.1 -Provides: bundled(crate(error-chain)) = v0.12.4 -Provides: bundled(crate(event-listener)) = v2.5.2 -Provides: bundled(crate(form_urlencoded)) = v1.0.1 -Provides: bundled(crate(futures-channel)) = v0.3.21 -Provides: bundled(crate(futures-core)) = v0.3.28 -Provides: bundled(crate(futures-executor)) = v0.3.21 -Provides: bundled(crate(futures-io)) = v0.3.21 -Provides: bundled(crate(futures-task)) = v0.3.28 -Provides: bundled(crate(futures-util)) = v0.3.28 -Provides: bundled(crate(getrandom)) = v0.2.7 -Provides: bundled(crate(hashbrown)) = v0.12.2 -Provides: bundled(crate(heck)) = v0.4.0 -Provides: bundled(crate(hostname)) = v0.3.1 -Provides: bundled(crate(iana-time-zone)) = v0.1.53 -Provides: bundled(crate(idna)) = v0.2.3 -Provides: bundled(crate(indexmap)) = v1.9.1 -Provides: bundled(crate(ipnet)) = v2.5.0 -Provides: bundled(crate(itoa)) = v1.0.2 -Provides: bundled(crate(lazy_static)) = v1.4.0 -Provides: bundled(crate(libc)) = v0.2.140 -Provides: bundled(crate(log)) = v0.4.17 -Provides: bundled(crate(match_cfg)) = v0.1.0 -Provides: bundled(crate(matches)) = v0.1.9 -Provides: bundled(crate(memoffset)) = v0.7.1 -Provides: bundled(crate(mio)) = v0.8.4 -Provides: bundled(crate(nibble_vec)) = v0.1.0 -Provides: bundled(crate(nix)) = v0.26.2 -Provides: bundled(crate(num-integer)) = v0.1.45 -Provides: bundled(crate(num-traits)) = v0.2.15 -Provides: bundled(crate(num_cpus)) = v1.13.1 -Provides: bundled(crate(num_threads)) = v0.1.6 -Provides: bundled(crate(once_cell)) = v1.13.0 -Provides: bundled(crate(os_str_bytes)) = v6.1.0 -Provides: bundled(crate(percent-encoding)) = v2.1.0 -Provides: bundled(crate(pin-project-lite)) = v0.2.9 -Provides: bundled(crate(pin-utils)) = v0.1.0 -Provides: bundled(crate(ppv-lite86)) = v0.2.16 -Provides: bundled(crate(proc-macro-error)) = v1.0.4 -Provides: bundled(crate(proc-macro-error-attr)) = v1.0.4 -Provides: bundled(crate(proc-macro2)) = v1.0.54 -Provides: bundled(crate(quick-error)) = v1.2.3 -Provides: bundled(crate(quote)) = v1.0.26 -Provides: bundled(crate(radix_trie)) = v0.2.1 -Provides: bundled(crate(rand)) = v0.8.5 -Provides: bundled(crate(rand_chacha)) = v0.3.1 -Provides: bundled(crate(rand_core)) = v0.6.3 -Provides: bundled(crate(resolv-conf)) = v0.7.0 -Provides: bundled(crate(serde)) = v1.0.139 -Provides: bundled(crate(serde_derive)) = v1.0.139 -Provides: bundled(crate(signal-hook)) = v0.3.15 -Provides: bundled(crate(signal-hook-registry)) = v1.4.0 -Provides: bundled(crate(slab)) = v0.4.6 -Provides: bundled(crate(smallvec)) = v1.9.0 -Provides: bundled(crate(socket2)) = v0.4.9 -Provides: bundled(crate(static_assertions)) = v1.1.0 -Provides: bundled(crate(strsim)) = v0.10.0 -Provides: bundled(crate(syn)) = v1.0.98 -Provides: bundled(crate(syn)) = v2.0.12 -Provides: bundled(crate(syslog)) = v6.0.1 -Provides: bundled(crate(termcolor)) = v1.1.3 -Provides: bundled(crate(textwrap)) = v0.16.0 -Provides: bundled(crate(thiserror)) = v1.0.31 -Provides: bundled(crate(thiserror-impl)) = v1.0.31 -Provides: bundled(crate(time)) = v0.3.11 -Provides: bundled(crate(tinyvec)) = v1.6.0 -Provides: bundled(crate(tinyvec_macros)) = v0.1.0 -Provides: bundled(crate(tokio)) = v1.27.0 -Provides: bundled(crate(tokio-macros)) = v2.0.0 -Provides: bundled(crate(toml)) = v0.5.9 -Provides: bundled(crate(tracing)) = v0.1.36 -Provides: bundled(crate(tracing-attributes)) = v0.1.22 -Provides: bundled(crate(tracing-core)) = v0.1.29 -Provides: bundled(crate(trust-dns-client)) = v0.22.0 -Provides: bundled(crate(trust-dns-proto)) = v0.22.0 -Provides: bundled(crate(trust-dns-server)) = v0.22.0 -Provides: bundled(crate(unicode-bidi)) = v0.3.8 -Provides: bundled(crate(unicode-ident)) = v1.0.1 -Provides: bundled(crate(unicode-normalization)) = v0.1.21 -Provides: bundled(crate(url)) = v2.2.2 -Provides: bundled(crate(version_check)) = v0.9.4 +%endif + %description %{summary} @@ -132,7 +60,11 @@ Forwards other request to configured resolvers. Read more about configuration in `src/backend/mod.rs`. %prep -%autosetup -Sgit %{name}-%{built_tag_strip} +%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 !%{defined copr_username} tar fx %{SOURCE1} mkdir -p .cargo @@ -143,11 +75,10 @@ replace-with = "vendored-sources" [source.vendored-sources] directory = "vendor" EOF +%endif %build -%{__cargo} build --release -mkdir -p bin -cp target/release/%{name} bin/ +%{__make} CARGO="%{__cargo}" build %install %{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install diff --git a/sources b/sources index d84d5aa..7e0d26c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (aardvark-dns-v1.6.0-vendor.tar.gz) = d852b794464c0597ea91a80779cde32dbc535366e9ab4c13e49d1e20f224fa6f1efe127af93bc21af49a0e11353f11d4d7b813a8415bfebd4cb609b1992c6359 -SHA512 (v1.6.0.tar.gz) = 699d65e426986204d9cddf04e88930ef59dca21ef5beb025dcad52e63a58421f8c8ee314d490b2f7b3f4a2d0df8444d4e706ca45b21153fc72f905b19e508090 +SHA512 (v1.10.0.tar.gz) = 9ff315dc576f94bfc0affb6658bb47d9b7d448cf11294df607f7e8701662f148fb655f1eae6eb118f16b9e0779d27ab86d651883b1fd3bdc0e29c587bf47729b +SHA512 (aardvark-dns-v1.10.0-vendor.tar.gz) = 68d0106b71f42ba789810020d62911d880debf90a35a086aabfd614403985025dc0c5934087a98943b53f6dfd8ede4add99465cec1ae9a098ff1de1082e1ef9c