blob: 356f8e130cc2dc1ac0ae3ace5a0aa298af8186de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
Name: prunerepo
Version: 1.21
Summary: Remove old packages from rpm-md repository
Release: 7%{?dist}
Url: https://pagure.io/prunerepo
# Source is created by:
# git clone %%url && cd prunerepo
# tito build --tgz --tag %%name-%%version-%%release
Source0: %name-%version.tar.gz
License: GPLv2+
BuildArch: noarch
BuildRequires: bash
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-rpm
BuildRequires: createrepo_c
BuildRequires: asciidoc
BuildRequires: findutils
BuildRequires: dnf
BuildRequires: dnf-plugins-core
BuildRequires: coreutils
Requires: createrepo_c
Requires: dnf-plugins-core
Requires: python3-rpm
Requires: python3
%description
RPM packages that have newer version available in that same
repository are deleted from filesystem and the rpm-md metadata are
recreated afterwards. If there is a source rpm for a deleted rpm
(and they both share the same directory path), then the source rpm
will be deleted as well.
Support for specific repository structure (e.g. COPR) is also available
making it possible to additionally remove build logs and whole build
directories associated with a package.
After deletion of obsoleted packages, the command
"createrepo_c --database --update" is called
to recreate the repository metadata.
%prep
%setup -q
%check
tests/run.sh
%build
name="%{name}" version="%{version}" summary="%{summary}" %py3_build
a2x -d manpage -f manpage man/prunerepo.1.asciidoc
%install
name="%{name}" version="%{version}" summary="%{summary}" %py3_install
install -d %{buildroot}%{_mandir}/man1
install -p -m 644 man/prunerepo.1 %{buildroot}/%{_mandir}/man1/
%files
%license LICENSE
%{python3_sitelib}/*
%{_bindir}/prunerepo
%{_mandir}/man1/prunerepo.1*
%changelog
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.21-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.21-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jun 15 2022 Python Maint <python-maint@redhat.com> - 1.21-5
- Rebuilt for Python 3.11
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.21-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.21-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.21-2
- Rebuilt for Python 3.10
* Fri Apr 30 2021 Pavel Raiskup <praiskup@redhat.com> 1.21-1
- Don't leak descriptors in Python API call
- fix misleading /bin/prunerepo message when no rpms are to be removed
* Tue Apr 27 2021 Pavel Raiskup <praiskup@redhat.com> 1.20-1
- Move the stderr output to log
- Don't sys.exit() from library function
* Mon Apr 19 2021 Silvie Chlupova <schlupov@redhat.com> 1.19-1
- api: new api method get_rpms_to_remove
- Enhance the logging mechanism a bit
- Faster srpm pairing with rpms
- Start using functions from helpers
- Move prunerepo to helpers.py
- Explicitly depend on python3-setuptools
* Sat Feb 29 2020 clime <clime@fedoraproject.org> 1.18-1
- add --setopt='skip_if_unavailable=False' to listpkgsbyrepo in testlib
* Tue Dec 17 2019 clime <michal.novotny@comprimato.com> 1.17-1
- fix changelog
* Mon Dec 16 2019 clime <clime@fedoraproject.org> 1.16-1
- deprecate --copr
- avoid additional newlines in stderr
- skip prunerepo if set(latest_rpms) is empty
- Use splitlines instead of split for repoquery parsing
- Set skip_if_unavailable=False to not loose the data
- Always dump stderr of repoquery (not only in error case)
- Drop useless double-quote in --queryformat
* Mon Apr 01 2019 clime <clime7@gmail.com> 1.15-1
- fix changelog
* Fri Oct 19 2018 Miroslav Suchý <msuchy@redhat.com> 1.14-1
- /usr/bin/env python3 -> /usr/bin/python3
- use git_dir_archive instead of git_dir_pack
- fix test non-determinism
* Sat Aug 18 2018 clime <clime@redhat.com> 1.13-1
- keep all the latest NEVRAS on disk since dnf3
* Mon Aug 06 2018 clime <clime@redhat.com> 1.12-1
- fix reading spec file values from setup.py
- rpkg deployment into COPR
- use builtin cd in tests
* Wed Jan 24 2018 clime <clime@redhat.com> 1.11-1
- do not recreate repo if there was no change in data unless
--alwayscreaterepo is specified
- add builddep on createrepo_c as well
- add Builddep on dnf that is no longer present in Builddep chain
- optimize createrepo_c
- run tests during build
- use just --repo instead of --disablerepo= --enablerepo=
- Spelling fixes
* Wed Apr 19 2017 clime <clime@redhat.com> 1.10-1
- replace fedorahosted links
* Thu May 26 2016 clime <clime@redhat.com> 1.9-1
- --days now also influences --cleancopr
* Mon May 23 2016 Miroslav Suchý <msuchy@redhat.com> 1.8-1
- just skip the missing srpm
- first remove srpm and then the rpm
* Mon Mar 14 2016 clime <clime@redhat.com> 1.7-1
- rpm-python3 dependency added back
* Mon Mar 14 2016 Jakub Kadlčík <jkadlcik@redhat.com> 1.6-1
- removed obsolete dependency on rpm-python
- doc update
* Fri Feb 26 2016 clime <clime@redhat.com> 1.5-1
- srpm deletion logic changed
* Mon Feb 22 2016 clime <clime@redhat.com> 1.4-1
- deletion of srpms when the same rpm is present in multiple dirs and --days is used fixed
* Fri Jan 29 2016 Miroslav Suchý <msuchy@redhat.com> 1.3-1
- rebuild for release
* Tue Jan 26 2016 clime <clime@redhat.com> 1.2-1
- bugfix for --cleancopr when a log for the respective dir does not
exist (e.g. copr repos with old dir naming)
* Mon Jan 25 2016 clime <clime@redhat.com> 1.1-1
- test suite finished
- --quiet, --cleancopr and --days options implemented
* Tue Jan 19 2016 clime <clime@redhat.com> 1.0-1
- Initial package version
|