diff --git a/.gitignore b/.gitignore index 405b0ce..7457a28 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ /stubby-0.3.1.tar.gz +/stubby-0.4.0.tar.gz +/stubby-0.4.2.tar.gz +/stubby-0.4.3.tar.gz diff --git a/sources b/sources index e73652d..d805cfc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (stubby-0.3.1.tar.gz) = 34e2eb7f37ed7323469b5bd9791c62834c1b1a9698e2d8e3bd3aebdc4e9cb0c71a855e85f5301a13bc1f7ef89d6f337a769dc39465fb0d67e147b1371730d5fa +SHA512 (stubby-0.4.3.tar.gz) = 422d46b03200178acab6129d0268b5732fa2f439ad164c2ce771e68cd01737b4248d5a678ba0da716af41a24110f6b41ef3bcc567ad6fd94838a9be2d2cc8da3 diff --git a/stubby-0.3.1-dnssec-ta.patch b/stubby-0.3.1-dnssec-ta.patch index 4018f79..6454043 100644 --- a/stubby-0.3.1-dnssec-ta.patch +++ b/stubby-0.3.1-dnssec-ta.patch @@ -1,11 +1,28 @@ -diff -up getdns-1.6.0/stubby/stubby.yml.example.anchor getdns-1.6.0/stubby/stubby.yml.example ---- getdns-1.6.0/stubby/stubby.yml.example.anchor 2020-03-11 23:57:32.380258063 +0100 -+++ getdns-1.6.0/stubby/stubby.yml.example 2020-03-11 23:59:59.545636591 +0100 -@@ -157,6 +157,7 @@ listen_addresses: - # Specify the location of the installed trust anchor file to override the +From 3dc07827ba060247b714efdc00f2fc5617163204 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= +Date: Sat, 15 Oct 2022 14:21:39 +0200 +Subject: [PATCH] Use trust anchor path maintained by unbound-anchor + +Other packages use it as well. Point to single file, which might be +reused by other packages. But keep the path commented out and use by +default just built-in trust anchor. +--- + stubby.yml.example | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/stubby.yml.example b/stubby.yml.example +index 1af0468..b86cd65 100644 +--- a/stubby.yml.example ++++ b/stubby.yml.example +@@ -171,7 +171,7 @@ listen_addresses: + # Specify the location of the installed trust anchor files to override the # default location (see above) - # dnssec_trust_anchors: "/etc/unbound/getdns-root.key" -+dnssec_trust_anchors: "/var/lib/unbound/root.key" + # dnssec_trust_anchors: +-# - "/etc/unbound/getdns-root.key" ++# - "/var/lib/unbound/root.key" ################################## UPSTREAMS ################################ +-- +2.37.3 + diff --git a/stubby.spec b/stubby.spec index 75ac47b..12fc5f9 100644 --- a/stubby.spec +++ b/stubby.spec @@ -1,59 +1,63 @@ -%global git_commit 7939e9652acb120d43d37db2eb0dea986f29785b -%global git_date 20200318 - -%global git_short_commit %(echo %{git_commit} | cut -c -8) -%global git_suffix %{git_date}git%{git_short_commit} - - Name: stubby -Version: 0.3.1 -Release: 0.5.%{git_suffix}%{?dist} +Version: 0.4.3 +Release: 7%{?dist} Summary: Application that act as a local DNS Privacy stub resolver -License: BSD -URL: https://github.com/getdnsapi/%{name} -Source0: https://github.com/getdnsapi/stubby/archive/%{git_commit}/%{name}-%{version}.tar.gz +License: BSD-3-Clause +URL: https://github.com/getdnsapi/stubby +Source0: https://github.com/getdnsapi/stubby/archive/v%{version}/stubby-%{version}.tar.gz -Provides: getdns-stubby = 1.6.0-2 -Obsoletes: getdns-stubby < 1.6.0-2 - -BuildRequires: gcc -BuildRequires: make -BuildRequires: cmake -BuildRequires: getdns-devel -BuildRequires: libyaml-devel -BuildRequires: systemd-rpm-macros +Provides: getdns-stubby = 1.7.0-1 +Obsoletes: getdns-stubby < 1.7.0-1 +%{?systemd_requires} Patch1: stubby-0.3.1-dnssec-ta.patch +BuildRequires: gcc +BuildRequires: make +BuildRequires: cmake +BuildRequires: getdns-devel >= 0.7.0 +BuildRequires: openssl-devel +BuildRequires: libyaml-devel +BuildRequires: systemd-rpm-macros %description Stubby is a local DNS Privacy stub resolver (using DNS-over-TLS). -Stubby encrypts DNS queries sent from a client machine to a +Stubby encrypts DNS queries sent from a client machine to a DNS Privacy resolver increasing end user privacy. - %prep -%autosetup -n stubby-%{git_commit} - +%autosetup -p1 %build -%cmake -DCMAKE_BUILD_TYPE:STRING=Release . +%cmake -DCMAKE_BUILD_TYPE:STRING=Release %cmake_build - %install %cmake_install find %{buildroot} -size 0 -delete mkdir -p %{buildroot}%{_unitdir} install -pm 0644 systemd/stubby.service %{buildroot}%{_unitdir}/stubby.service +%preun +%systemd_preun %{name} + +%post +# systemd would replace it with symlink +if [ ! -L "%{_localstatedir}/cache/stubby" -a -d "%{_localstatedir}/cache/stubby" ]; then + mv "%{_localstatedir}/cache/stubby"{,.rpmsave} +fi +%systemd_post %{name} + +%postun +%systemd_postun_with_restart %{name} %files -%{_bindir}/%{name} -%config(noreplace) %{_sysconfdir}/%{name} +%{_bindir}/stubby +%config(noreplace) %{_sysconfdir}/stubby +%ghost %{_localstatedir}/cache/stubby %{_unitdir}/stubby.service -%{_mandir}/man1/%{name}.1.gz +%{_mandir}/man1/stubby.1.gz %dir %{_docdir}/%{name} %{_docdir}/%{name}/AUTHORS %license %{_docdir}/%{name}/COPYING @@ -62,6 +66,66 @@ install -pm 0644 systemd/stubby.service %{buildroot}%{_unitdir}/stubby.service %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 0.4.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 0.4.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Jul 20 2024 Fedora Release Engineering - 0.4.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 0.4.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 0.4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 0.4.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 03 2023 Petr Menšík - 0.4.3-1 +- Update to 0.4.3 (#2156047) + +* Sat Oct 15 2022 Petr Menšík - 0.4.2-2 +- Private users do not work with dynamic users +- Provide path to unbound-anchor key, but keep it commented out + +* Thu Oct 13 2022 Petr Menšík - 0.4.2-1 +- Update to 0.4.2 (#1974450) +- Use unbound-anchor key again + +* Fri Sep 30 2022 Petr Menšík - 0.4.0-6 +- Update License tag to SPDX identifier + +* Tue Aug 2 2022 Joe Orton - 0.4.0-5 +- fix build (#2113738) + +* Sat Jul 23 2022 Fedora Release Engineering - 0.4.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 0.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jun 07 2021 Paul Wouters - 0.4.0-1 +- Resolves: rhbz#1968092 stubby-0.4.0 is available + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 0.3.1-0.9.20200318git7939e965 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Wed Jan 27 2021 Fedora Release Engineering - 0.3.1-0.8.20200318git7939e965 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Oct 16 2020 Petr Menšík - 0.3.1-0.7.20200318git7939e965 +- Move only directory, not symlink on upgrade (#1884575) + +* Mon Oct 05 2020 Petr Menšík - 0.3.1-0.6.20200318git7939e965 +- Move old cache directory on upgrade (#1884575) + * Mon Aug 10 2020 Artem Egorenkov - 0.3.1-0.5.20200318git7939e965 - cmake macros are used instead of make diff --git a/tests/installation_with_legacy_cache/Makefile b/tests/installation_with_legacy_cache/Makefile new file mode 100644 index 0000000..8d0feb4 --- /dev/null +++ b/tests/installation_with_legacy_cache/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/stubby/Sanity/installation_with_legacy_cache +# Description: Test sane installation on system with legacy installation artifacts +# Author: Artem Egorenkov +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/CoreOS/stubby/Sanity/installation_with_legacy_cache +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Artem Egorenkov " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Test sane installation on system with legacy installation artifacts" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: stubby" >> $(METADATA) + @echo "Requires: stubby" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: yes" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/installation_with_legacy_cache/PURPOSE b/tests/installation_with_legacy_cache/PURPOSE new file mode 100644 index 0000000..d05866f --- /dev/null +++ b/tests/installation_with_legacy_cache/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/stubby/Sanity/installation_with_legacy_cache +Description: Test sane installation on system with legacy installation artifacts +Author: Artem Egorenkov diff --git a/tests/installation_with_legacy_cache/runtest.sh b/tests/installation_with_legacy_cache/runtest.sh new file mode 100755 index 0000000..2d464ff --- /dev/null +++ b/tests/installation_with_legacy_cache/runtest.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/stubby/Sanity/installation_with_legacy_cache +# Description: Test sane installation on system with legacy installation artifacts +# Author: Artem Egorenkov +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/bin/rhts-environment.sh || exit 1 +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="stubby" +CACHE_DIR="/var/cache/$PACKAGE" + +rlJournalStart + rlPhaseStartSetup + # Remove stubby package + rlRun "rpm -q $PACKAGE && dnf -y remove $PACKAGE" 0 "Remove $PACKAGE package" + rlAssertNotRpm $PACKAGE + rlPhaseEnd + + rlPhaseStartTest + + # Emulate existance of getdns-stubby legacy cache directory + rlRun "mkdir $CACHE_DIR" 0 "Create legacy getdns-stubby cache directory" + rlAssertExists "$CACHE_DIR" + # Emulate existance of getdns-stubby legacy cache data + rlRun "touch $CACHE_DIR/cache_data" 0 "Create legacy getdns-stubby cache data" + rlAssertExists "$CACHE_DIR/cache_data" + + # Install stubby package + rlRun "dnf -y install $PACKAGE" 0 "Install $PACKAGE package" + rlAssertRpm $PACKAGE + + # Verify legacy cache data saved in stubby.rpmsave dir + rlAssertExists "$CACHE_DIR.rpmsave" + rlAssertExists "$CACHE_DIR.rpmsave/cache_data" + + # Verify cache directory doesn't exist + rlAssertNotExists "$CACHE_DIR" + + # Start stubby service and verify cache directory exists + rlServiceStart "stubby" + rlAssertExists "$CACHE_DIR" + + # Remove stubby package + rlRun "dnf -y remove $PACKAGE" 0 "Remove $PACKAGE package" + rlAssertNotRpm $PACKAGE + + # Verify cache directory doesn't exist + rlAssertNotExists "$CACHE_DIR" + rlPhaseEnd + + rlPhaseStartCleanup + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..90c0caa --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,11 @@ +--- +# Tests that run in all contexts +- hosts: localhost + roles: + - role: standard-test-beakerlib + tags: + - classic + tests: + - installation_with_legacy_cache + required_packages: + - stubby # Required to run installation_with_legacy_cache