From c4eecdc56eea6ff78ab0140e155bcd4f72be5906 Mon Sep 17 00:00:00 2001 From: Pascal Terjan Date: Sat, 26 Sep 2020 14:34:00 +0000 Subject: Clean pure noarch packages to --- modules/buildsystem/templates/cleaner.rb | 18 ++++++++++++++---- 1 file 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 -- cgit v1.2.1