diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7457a28 --- /dev/null +++ b/.gitignore @@ -0,0 +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/README.md b/README.md new file mode 100644 index 0000000..7caf2cf --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# stubby + +The stubby package \ No newline at end of file diff --git a/dead.package b/dead.package deleted file mode 100644 index a72aec0..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -epel8-playground decommissioned : https://pagure.io/epel/issue/136 diff --git a/sources b/sources new file mode 100644 index 0000000..d805cfc --- /dev/null +++ b/sources @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..6454043 --- /dev/null +++ b/stubby-0.3.1-dnssec-ta.patch @@ -0,0 +1,28 @@ +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" ++# - "/var/lib/unbound/root.key" + + + ################################## UPSTREAMS ################################ +-- +2.37.3 + diff --git a/stubby.spec b/stubby.spec new file mode 100644 index 0000000..12fc5f9 --- /dev/null +++ b/stubby.spec @@ -0,0 +1,146 @@ +Name: stubby +Version: 0.4.3 +Release: 7%{?dist} +Summary: Application that act as a local DNS Privacy stub resolver + +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.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 +DNS Privacy resolver increasing end user privacy. + +%prep +%autosetup -p1 + +%build +%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}/stubby +%config(noreplace) %{_sysconfdir}/stubby +%ghost %{_localstatedir}/cache/stubby +%{_unitdir}/stubby.service +%{_mandir}/man1/stubby.1.gz +%dir %{_docdir}/%{name} +%{_docdir}/%{name}/AUTHORS +%license %{_docdir}/%{name}/COPYING +%{_docdir}/%{name}/ChangeLog +%{_docdir}/%{name}/README.md + + +%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 + +* Sat Aug 01 2020 Fedora Release Engineering - 0.3.1-0.4.20200318git7939e965 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.3.1-0.3.20200318git7939e965 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Mar 18 2020 Artem Egorenkov - 0.3.1-0.2.20200318git7939e965 +- Snapshot information field added +- systemd-rpm-macros added to build requirements +- systemd-devel and systemd removed from build requirements +- Obsoletes version for getns-stubby fixed + +* Thu Mar 12 2020 Artem Egorenkov - 0.3.1-0.1.29785b +- First stubby package 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