aboutsummaryrefslogtreecommitdiffstats
path: root/modules/buildsystem/templates/cleaner.rb
diff options
context:
space:
mode:
authorPascal Terjan <pterjan@mageia.org>2021-01-19 19:34:09 +0000
committerPascal Terjan <pterjan@mageia.org>2021-01-19 19:35:44 +0000
commit5e57573ce7fc0eb9b276c3ab4a23d483b1d90ef4 (patch)
tree7462a936d3ef7c6733cf2c22af7cae2ce7978c7a /modules/buildsystem/templates/cleaner.rb
parent094e2237c5468e9f8041deeeb5267866b480fbe5 (diff)
downloadpuppet-5e57573ce7fc0eb9b276c3ab4a23d483b1d90ef4.tar
puppet-5e57573ce7fc0eb9b276c3ab4a23d483b1d90ef4.tar.gz
puppet-5e57573ce7fc0eb9b276c3ab4a23d483b1d90ef4.tar.bz2
puppet-5e57573ce7fc0eb9b276c3ab4a23d483b1d90ef4.tar.xz
puppet-5e57573ce7fc0eb9b276c3ab4a23d483b1d90ef4.zip
Delete leftover noarch without waiting for 7d
Diffstat (limited to 'modules/buildsystem/templates/cleaner.rb')
-rwxr-xr-xmodules/buildsystem/templates/cleaner.rb24
1 files changed, 13 insertions, 11 deletions
diff --git a/modules/buildsystem/templates/cleaner.rb b/modules/buildsystem/templates/cleaner.rb
index e9ff8cb6..1bdf393a 100755
--- a/modules/buildsystem/templates/cleaner.rb
+++ b/modules/buildsystem/templates/cleaner.rb
@@ -121,7 +121,7 @@ end
def packages(path)
`urpmf --synthesis "#{path}/media_info/synthesis.hdlist.cz" --qf '%sourcerpm:%filename' ":"`.each_line{|l|
- yield l
+ yield *(l.rstrip.split(':'))
}
end
@@ -131,10 +131,8 @@ end
def check_binaries(srcs, srcages, path, used_srcs)
used_here_srcs = {}
- packages(path) {|l|
- l2 = l.split(':')
- src = l2[0]
- filename = l2[1].rstrip
+ all_versions = {}
+ packages(path) {|src, filename|
used_srcs[src] = true if used_srcs != nil
if filename =~ /noarch.rpm$/ then
# We need to mark the src.rpm present on this arch only for full noarch packages
@@ -142,18 +140,22 @@ def check_binaries(srcs, srcages, path, used_srcs)
else
used_here_srcs[src] = true
end
+ name = name_from_filename(filename)
+ if all_versions[name] then
+ all_versions[name] << src
+ else
+ all_versions[name] = [src]
+ end
}
old_binaries = []
- packages(path) {|l|
- l2 = l.split(':')
- src = l2[0]
- filename = l2[1].rstrip
+ packages(path) {|src, filename|
if ! srcs[src] then
srcname = name_from_filename(src)
if srcages[srcname] then
# The src.rpm is gone but there is a different version of it
- # Only delete old binaries after 7d
- next unless srcages[srcname][1] < Time.now.to_i - 24*60*60*7
+ # Only delete old binaries after 7d or if there is a new version
+ name = name_from_filename(filename)
+ next unless (srcages[srcname][1] < Time.now.to_i - 24*60*60*7 || all_versions[name].include?(src))
# Do not delete if the new version of the package hasn't been built for this arch yet
next unless used_here_srcs[srcages[srcname][0]]
end