aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Terjan <pterjan@mageia.org>2020-09-26 14:34:00 +0000
committerPascal Terjan <pterjan@mageia.org>2020-09-26 14:34:00 +0000
commitc4eecdc56eea6ff78ab0140e155bcd4f72be5906 (patch)
tree577607063a3b96abe1e091494bb6ce8fab8ed13a
parent2bab263d8b7e912562f27738e059baa0c5fc2fe7 (diff)
downloadpuppet-c4eecdc56eea6ff78ab0140e155bcd4f72be5906.tar
puppet-c4eecdc56eea6ff78ab0140e155bcd4f72be5906.tar.gz
puppet-c4eecdc56eea6ff78ab0140e155bcd4f72be5906.tar.bz2
puppet-c4eecdc56eea6ff78ab0140e155bcd4f72be5906.tar.xz
puppet-c4eecdc56eea6ff78ab0140e155bcd4f72be5906.zip
Clean pure noarch packages to
-rwxr-xr-xmodules/buildsystem/templates/cleaner.rb18
1 files changed, 14 insertions, 4 deletions
diff --git a/modules/buildsystem/templates/cleaner.rb b/modules/buildsystem/templates/cleaner.rb
index d0dc064d..5208be33 100755
--- a/modules/buildsystem/templates/cleaner.rb
+++ b/modules/buildsystem/templates/cleaner.rb
@@ -60,16 +60,19 @@ def process
$used_srcs = {}
$srcs = {}
$srcages = {}
+ $noarch = {}
# Get a list of all src.rpm and their build time
- `urpmf --synthesis "#{src_path}/media_info/synthesis.hdlist.cz" --qf '%filename:%buildtime' "."`.each_line{|l|
+ `urpmf --synthesis "#{src_path}/media_info/synthesis.hdlist.cz" --qf '%filename:%buildarchs:%buildtime' "."`.each_line{|l|
l2 = l.split(':')
filename = l2[0]
- buildtime = l2[1].to_i
+ buildarch = l2[1]
+ buildtime = l2[2].to_i
name = filename.sub(/-[^-]*-[^-]*$/, '')
$srcages[name] = [ filename, buildtime ] unless $srcages[name] && buildtime < $srcages[name][1]
$srcs[filename] = true
+ $noarch[name] = true if buildarch == 'noarch'
}
# TODO: Take an upload lock to avoid being confused by emi moving things
archs.each{|arch|
@@ -122,6 +125,10 @@ def packages(path)
}
end
+def name_from_filename(filename)
+ filename.sub(/-[^-]*-[^-]*$/, '')
+end
+
def check_binaries(srcs, srcages, path, used_srcs)
used_here_srcs = {}
packages(path) {|l|
@@ -129,7 +136,10 @@ def check_binaries(srcs, srcages, path, used_srcs)
src = l2[0]
filename = l2[1].rstrip
used_srcs[src] = true if used_srcs != nil
- used_here_srcs[src] = true unless filename =~ /noarch.rpm$/
+ if filename =~ /noarch.rpm$/ then
+ # We need to mark the src.rpm present on this arch only for full noarch packages
+ used_here_srcs[src] = true if $noarch[name_from_filename(filename)]
+ end
}
old_binaries = []
packages(path) {|l|
@@ -137,7 +147,7 @@ def check_binaries(srcs, srcages, path, used_srcs)
src = l2[0]
filename = l2[1].rstrip
if ! srcs[src] then
- name = src.sub(/-[^-]*-[^-]*$/, '')
+ name = name_from_filename(filename)
if srcages[name] then
# If the package was updated, only delete old binaries after 7d
next unless srcages[name][1] < Time.now.to_i - 24*60*60*7