diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index f6598e3..15bdafa 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,15 @@ /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 +/v1.11.0.tar.gz +/aardvark-dns-v1.11.0-vendor.tar.gz +/aardvark-dns-v1.12.1-vendor.tar.gz +/v1.12.1.tar.gz +/v1.12.2.tar.gz +/aardvark-dns-v1.12.2-vendor.tar.gz diff --git a/.packit.yaml b/.packit.yaml index a4ed4b1..d3ca1ec 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -2,47 +2,157 @@ # See the documentation for more information: # https://packit.dev/docs/configuration/ -# COPR build targets can be found at: -# https://copr.fedorainfracloud.org/coprs/rhcontainerbot/packit-builds/ -# and -# https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/ - -specfile_path: rpm/aardvark-dns.spec +downstream_package_name: aardvark-dns upstream_tag_template: v{version} +# These files get synced from upstream to downstream (Fedora / CentOS Stream) on every +# propose-downstream job. This is done so tests maintained upstream can be run +# downstream in Zuul CI and Bodhi. +# Ref: https://packit.dev/docs/configuration#files_to_sync +files_to_sync: + - src: rpm/gating.yaml + dest: gating.yaml + delete: true + - src: plans/ + dest: plans/ + delete: true + - src: .fmf/ + dest: .fmf/ + delete: true + - .packit.yaml + +packages: + aardvark-dns-fedora: + pkg_tool: fedpkg + specfile_path: rpm/aardvark-dns.spec + aardvark-dns-centos: + pkg_tool: centpkg + specfile_path: rpm/aardvark-dns.spec + aardvark-dns-rhel: + specfile_path: rpm/aardvark-dns.spec + +srpm_build_deps: + - cargo + - make + - openssl-devel + jobs: - - &copr - job: copr_build + - job: copr_build trigger: pull_request - owner: rhcontainerbot - project: packit-builds + packages: [aardvark-dns-fedora] + notifications: &copr_build_failure_notification + 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/" enable_net: true - srpm_build_deps: - - cargo - - make - - openssl-devel - - <<: *copr - # Run on commit to main branch + - job: copr_build + trigger: pull_request + packages: [aardvark-dns-centos] + notifications: *copr_build_failure_notification + targets: + - centos-stream-9-x86_64 + - centos-stream-9-aarch64 + - centos-stream-10-x86_64 + - centos-stream-10-aarch64 + enable_net: true + + - job: copr_build + trigger: pull_request + packages: [aardvark-dns-rhel] + notifications: *copr_build_failure_notification + targets: + - epel-9-x86_64 + - epel-9-aarch64 + enable_net: true + + # Run on commit to main branch + - job: copr_build trigger: commit + packages: [aardvark-dns-fedora] + notifications: + failure_comment: + message: "podman-next COPR build failed. @containers/packit-build please check." branch: main + owner: rhcontainerbot project: podman-next + enable_net: true + # Unit tests on Fedora + - job: tests + trigger: pull_request + packages: [aardvark-dns-fedora] + notifications: &test_failure_notification + failure_comment: + message: "Tests failed. @containers/packit-build please check." + targets: + - fedora-all-x86_64 + - fedora-all-aarch64 + + # Unit tests on CentOS Stream + - job: tests + trigger: pull_request + packages: [aardvark-dns-centos] + notifications: *test_failure_notification + targets: + - centos-stream-9-x86_64 + - centos-stream-9-aarch64 + - centos-stream-10-x86_64 + - centos-stream-10-aarch64 + + # Unit tests on RHEL + - job: tests + trigger: pull_request + packages: [aardvark-dns-rhel] + notifications: *test_failure_notification + use_internal_tf: true + targets: + epel-9-aarch64: + distros: [RHEL-9-Nightly,RHEL-9.4.0-Nightly] + epel-9-x86_64: + distros: [RHEL-9-Nightly,RHEL-9.4.0-Nightly] + # NOTE: Need to use centos-stream-10 until RHEL-10/EPEL-10 copr targets + # are available + # TODO: iptables kernel module is not available on rhel10. + # Enable these after netavark default is switched to nftables. + #centos-stream-10-aarch64: + # distros: [RHEL-10-Beta-Nightly] + #centos-stream-10-x86_64: + # distros: [RHEL-10-Beta-Nightly] + + # Sync to Fedora - job: propose_downstream trigger: release + packages: [aardvark-dns-fedora] update_release: false dist_git_branches: - fedora-all - actions: - pre-sync: - - "bash rpm/update-spec-provides.sh" + + # Sync to CentOS Stream + - job: propose_downstream + trigger: release + packages: [aardvark-dns-centos] + update_release: false + dist_git_branches: + - c10s - 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 + # NOTE: Bodhi update tasks are disabled to allow netavark and aardvark-dns X.Y + # builds in a single manual bodhi update. Leaving this commented out + # but not deleted so it's not forgotten. + #- job: bodhi_update + #trigger: commit + #dist_git_branches: + #- fedora-branched # rawhide updates are created automatically diff --git a/README.packit b/README.packit index 101115f..00daafb 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.77.0.post2+g06f877b. +The file was generated using packit 0.100.3.post1.dev13+g92513a8e. diff --git a/aardvark-dns.spec b/aardvark-dns.spec index 98dce4c..cb3efc6 100644 --- a/aardvark-dns.spec +++ b/aardvark-dns.spec @@ -1,14 +1,6 @@ # 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} @@ -18,31 +10,11 @@ %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} +%if %{defined copr_username} Epoch: 102 +%else +Epoch: 2 %endif # DO NOT TOUCH the Version string! # The TRUE source of this specfile is: @@ -50,10 +22,11 @@ Epoch: 102 # 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 -License: Apache-2.0 and MIT and Zlib +Version: 1.12.2 +# The `AND` needs to be uppercase in the License for SPDX compatibility +License: Apache-2.0 AND MIT AND Zlib Release: %autorelease -%if %{with golang_arches_future} +%if %{defined golang_arches_future} ExclusiveArch: %{golang_arches_future} %else ExclusiveArch: aarch64 ppc64le s390x x86_64 @@ -67,13 +40,12 @@ 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 %endif -# DO NOT DELETE BELOW LINE - used for updating downstream imports -# vendored libraries %description %{summary} @@ -86,27 +58,32 @@ Read more about configuration in `src/backend/mod.rs`. # 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} +%if !%{defined copr_username} tar fx %{SOURCE1} -mkdir -p .cargo - -cat >.cargo/config << EOF -[source.crates-io] -replace-with = "vendored-sources" - -[source.vendored-sources] -directory = "vendor" -EOF +%if 0%{?fedora} || 0%{?rhel} >= 10 +%cargo_prep -v vendor +%else +%cargo_prep -V 1 +%endif %endif %build %{__make} CARGO="%{__cargo}" build +%if (0%{?fedora} || 0%{?rhel} >= 10) && !%{defined copr_username} +%cargo_license_summary +%{cargo_license} > LICENSE.dependencies +%cargo_vendor_manifest +%endif %install %{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install %files %license LICENSE +%if (0%{?fedora} || 0%{?rhel} >= 10) && !%{defined copr_username} +%license LICENSE.dependencies +%license cargo-vendor.txt +%endif %dir %{_libexecdir}/podman %{_libexecdir}/podman/%{name} diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..dbb1d91 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,12 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: [] diff --git a/plans/all.fmf b/plans/all.fmf new file mode 100644 index 0000000..5f468c5 --- /dev/null +++ b/plans/all.fmf @@ -0,0 +1,23 @@ +discover: + how: fmf +execute: + how: tmt + +/upstream: + summary: Run tests on upstream PRs + discover+: + filter: tag:upstream + adjust+: + enabled: false + when: initiator is not defined or initiator != packit + +/downstream: + summary: Run tests on bodhi / errata and dist-git PRs + discover+: + filter: tag:downstream + dist-git-install-builddeps: true + dist-git-source: true + dist-git-remove-fmf-root: true + adjust+: + enabled: false + when: initiator == packit diff --git a/sources b/sources index 3dd3bb8..5be99cc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (v1.7.0.tar.gz) = d829ac122f26f17ca44a41a48576ab8c4f9dd238bc52faee816833f63f9ff54e63f62610167e4619084263e61cdb1329c2e1d49f314c8b9e65e748df80fd5096 -SHA512 (aardvark-dns-v1.7.0-vendor.tar.gz) = 07d3ebc7504fc1e4c0fe9b5f3760bdbe9b4153678aae962c9e37a0097bee832b0e4e77fadfc475c82fa05ffaa1a04f53df8f92b63e23b09da05e5e2efaa07c94 +SHA512 (v1.12.2.tar.gz) = 851683cd5ac569358c0f89895879c19ac607653f2f4578030a99911a4723dab025ca6d26615da6037baf95514e9bb7d3a2c86c618d57c67cee2b28fd3a73c072 +SHA512 (aardvark-dns-v1.12.2-vendor.tar.gz) = 1dfacc29962acca5c7baa11fbe4d1c93276b91cb5e1db6033d8e23e963ca4c4098bdbf4bdf89730fdea4d5a45b3a2c00ee65888d502e8009d2adaaa6f8374dba