Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package product-builder-plugin-Tumbleweed for openSUSE:Factory checked in at 2021-10-04 18:39:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/product-builder-plugin-Tumbleweed (Old) and /work/SRC/openSUSE:Factory/.product-builder-plugin-Tumbleweed.new.2443 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "product-builder-plugin-Tumbleweed" Mon Oct 4 18:39:33 2021 rev:19 rq:922537 version:1.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/product-builder-plugin-Tumbleweed/product-builder-plugin-Tumbleweed.changes 2021-09-20 23:32:11.283102038 +0200 +++ /work/SRC/openSUSE:Factory/.product-builder-plugin-Tumbleweed.new.2443/product-builder-plugin-Tumbleweed.changes 2021-10-04 18:40:40.886127354 +0200 @@ -1,0 +2,7 @@ +Fri Sep 24 08:50:41 UTC 2021 - Adrian Schr??ter <adr...@suse.de> + +- 1.6.0 + * KIWIDnfRepoclosurePlugin added + * KIWIPackagesDVDPlugin added + +------------------------------------------------------------------- @@ -5 +12 @@ - - comps meta data support + * comps meta data support @@ -11 +18 @@ - - modulemd data support + * modulemd data support Old: ---- product-builder-plugins-1.4.3.obscpio New: ---- product-builder-plugins-1.6.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ product-builder-plugin-Tumbleweed.spec ++++++ --- /var/tmp/diff_new_pack.bHRqlV/_old 2021-10-04 18:40:41.514128374 +0200 +++ /var/tmp/diff_new_pack.bHRqlV/_new 2021-10-04 18:40:41.514128374 +0200 @@ -20,11 +20,12 @@ Summary: openSUSE - KIWI Image System License: GPL-2.0-or-later Group: System/Management -Version: 1.4.3 +Version: 1.6.0 Release: 0 Source: product-builder-plugins-%version.tar.xz Provides: product-builder-plugin = %version-%release Requires: createrepo_c +Requires: dnf Requires: mtools Requires: product-builder Requires: perl(YAML::XS) ++++++ _service ++++++ --- /var/tmp/diff_new_pack.bHRqlV/_old 2021-10-04 18:40:41.550128432 +0200 +++ /var/tmp/diff_new_pack.bHRqlV/_new 2021-10-04 18:40:41.554128439 +0200 @@ -5,8 +5,8 @@ <param name="revision">SLE_15</param> --> <param name="scm">git</param> - <param name="version">1.4.3</param> - <param name="revision">1.4.3</param> + <param name="version">1.6.0</param> + <param name="revision">1.6.0</param> </service> <service mode="manual" name="set_version" /> <service mode="buildtime" name="tar"/> ++++++ product-builder-plugins-1.4.3.obscpio -> product-builder-plugins-1.6.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/product-builder-plugins-1.4.3/KIWIDescrPlugin.pm new/product-builder-plugins-1.6.0/KIWIDescrPlugin.pm --- old/product-builder-plugins-1.4.3/KIWIDescrPlugin.pm 2021-09-17 13:30:25.000000000 +0200 +++ new/product-builder-plugins-1.6.0/KIWIDescrPlugin.pm 2021-09-24 10:07:52.000000000 +0200 @@ -298,7 +298,31 @@ opendir(DH, "$masterpath/comps"); foreach my $comps (readdir(DH)) { next if $comps =~ /^\./m; - $cmd = "/usr/bin/modifyrepo $masterpath/comps/$comps $masterpath/repodata/"; + # decompress file + if ($comps =~ /\.gz$/m) { + $cmd = "gunzip $masterpath/comps/$comps"; + $call = $this -> callCmd($cmd); + $status = $call->[0]; + my $out = join("\n",@{$call->[2]}); + $this->logMsg("I", + "Called $cmd exit status: <$status> output: $out" + ); + return 1 if $status; + $comps =~ s/\.gz$//; + } + + # add uncompressed file + $cmd = "/usr/bin/modifyrepo --no-compress --mdtype=group $masterpath/comps/$comps $masterpath/repodata/"; + $call = $this -> callCmd($cmd); + $status = $call->[0]; + my $out = join("\n",@{$call->[2]}); + $this->logMsg("I", + "Called $cmd exit status: <$status> output: $out" + ); + return 1 if $status; + + # add compressed file + $cmd = "/usr/bin/modifyrepo --compress-type=xz --mdtype=group_xz $masterpath/comps/$comps $masterpath/repodata/"; $call = $this -> callCmd($cmd); $status = $call->[0]; my $out = join("\n",@{$call->[2]}); @@ -306,9 +330,11 @@ "Called $cmd exit status: <$status> output: $out" ); return 1 if $status; + + unlink("$masterpath/comps/$comps"); } closedir(DH); - unlink("$masterpath/comps"); + rmdir("$masterpath/comps"); } # detached signature diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/product-builder-plugins-1.4.3/KIWIDnfRepoclosurePlugin.ini new/product-builder-plugins-1.6.0/KIWIDnfRepoclosurePlugin.ini --- old/product-builder-plugins-1.4.3/KIWIDnfRepoclosurePlugin.ini 1970-01-01 01:00:00.000000000 +0100 +++ new/product-builder-plugins-1.6.0/KIWIDnfRepoclosurePlugin.ini 2021-09-24 10:07:52.000000000 +0200 @@ -0,0 +1,5 @@ +[base] +name = KIWIDnfRepoclosure +order = 99 +defaultenable = 1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/product-builder-plugins-1.4.3/KIWIDnfRepoclosurePlugin.pm new/product-builder-plugins-1.6.0/KIWIDnfRepoclosurePlugin.pm --- old/product-builder-plugins-1.4.3/KIWIDnfRepoclosurePlugin.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/product-builder-plugins-1.6.0/KIWIDnfRepoclosurePlugin.pm 2021-09-24 10:07:52.000000000 +0200 @@ -0,0 +1,77 @@ +################################################################ +# Copyright (c) 2019 SUSE +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# 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 (see the file LICENSE); if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# +################################################################ +package KIWIDnfRepoclosurePlugin; + +use strict; +use warnings; + +use base "KIWIBasePlugin"; +use Data::Dumper; +use Config::IniFiles; +use File::Find; +use File::Basename; + +sub new { + # ... + # Create a new KIWIPackagesDVDPlugin object + # --- + my ($class, $handler, $config) = @_; + my $this = KIWIBasePlugin -> new($handler); + bless ($this, $class); + + $this->name('KIWIDnfRepoclosurePlugin'); + $this->order(99); + $this->ready(1); + return $this; +} + +sub execute { + my $this = shift; + return unless ref($this); + + my $collect = $this->collect(); + my $enabled = $this->collect()->productData()->getOpt("RUN_DEPENDENCY_CHECK"); + return 0 if ($enabled || '') ne 'true'; + + my @archs = keys(%{$collect->{m_archlist}->{m_archs}}); + + $this->logMsg("I", "Basedir " . $this->handler()->collect()->basedir()); + my @targetmedia = $this->collect()->getMediaNumbers(); + foreach my $cd (@targetmedia) { + my $dir = $this->collect()->basesubdirs()->{$cd}; + next unless -d "$dir/repodata"; + foreach my $arch (@archs) { + next if $arch eq 'noarch'; + $this->logMsg("I", "Verifing dependencies in <$cd>"); + $this->logMsg("I", "Pass $dir"); + my $cmd = "dnf repoclosure --arch=noarch --arch=$arch --repofrompath=dnf_repoclosure,file://$dir --repo=dnf_repoclosure --check=dnf_repoclosure 2>&1"; # verbose output + $this->logMsg("I", "Executing command <$cmd>"); + my $call = $this -> callCmd($cmd); + my $status = $call->[0]; + if ($status) { + my $out = join("\n",@{$call->[1]}); + $this->logMsg("E", "Validation failed: $out"); + return 1; + } + } + } + return 0; +} + +1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/product-builder-plugins-1.4.3/KIWIPackagesDVDPlugin.ini new/product-builder-plugins-1.6.0/KIWIPackagesDVDPlugin.ini --- old/product-builder-plugins-1.4.3/KIWIPackagesDVDPlugin.ini 1970-01-01 01:00:00.000000000 +0100 +++ new/product-builder-plugins-1.6.0/KIWIPackagesDVDPlugin.ini 2021-09-24 10:07:52.000000000 +0200 @@ -0,0 +1,5 @@ +[base] +name = KIWIPackagesDVDPlugin +order = 7 +defaultenable = 1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/product-builder-plugins-1.4.3/KIWIPackagesDVDPlugin.pm new/product-builder-plugins-1.6.0/KIWIPackagesDVDPlugin.pm --- old/product-builder-plugins-1.4.3/KIWIPackagesDVDPlugin.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/product-builder-plugins-1.6.0/KIWIPackagesDVDPlugin.pm 2021-09-24 10:07:52.000000000 +0200 @@ -0,0 +1,97 @@ +################################################################ +# Copyright (c) 2019 SUSE +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# 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 (see the file LICENSE); if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# +################################################################ +package KIWIPackagesDVDPlugin; + +use strict; +use warnings; + +use base "KIWIBasePlugin"; +use Data::Dumper; +use Config::IniFiles; +use File::Find; +use File::Basename; + +sub new { + # ... + # Create a new KIWIPackagesDVDPlugin object + # --- + my ($class, $handler, $config) = @_; + my $this = KIWIBasePlugin -> new($handler); + bless ($this, $class); + + $this->name('KIWIPackagesDVDPlugin'); + $this->order(7); + $this->ready(1); + return $this; +} + +sub execute { + my $this = shift; + if(not ref($this)) { + return; + } + my $flavor = $this->collect()->productData()->getVar("FLAVOR"); + if (($flavor || '') ne 'Full') { + return 0; + } + $this->logMsg("I", "Basedir " . $this->handler()->collect()->basedir()); + my @targetmedia = $this->collect()->getMediaNumbers(); + foreach my $cd (@targetmedia) { + $this->logMsg("I", "Check <$cd>"); + my $dir = $this->collect()->basesubdirs()->{$cd}; + open(my $report, '>', "$dir.report"); + # reset the / media - just an empty repo + open(my $products, '>', "$dir/media.1/products"); + print $report "<report>\n"; + $this->logMsg("I", "Pass $dir"); + for my $module (glob('/usr/src/packages/KIWIALL/*')) { + $this->logMsg("I", "Found $module"); + my $bname = basename($module); + $bname =~ s,.*-Module,Module,,; + $bname =~ s,.*-Product,Product,,; + $bname =~ s,.*-Liberty-Linux-,,; + my ($module_dir) = glob("$module/*-Media$cd"); + if (!$module_dir) { + $this->logMsg("I", "Could not find <$module/*-Media$cd>"); + next; + } + $this->logMsg("I", "Copy <$module_dir>"); + system("cp -a $module_dir $dir/$bname"); + open(my $fd, '<', "$module_dir.report"); + while (<$fd>) { + my $line = $_; + print "$module_dir.report $line"; + next if $line =~ m,</?report>,; + print $report $line; + } + close($fd); + open($fd, '<', "$module_dir/media.1/products"); + my $line = <$fd>; + $line =~ s,^/,/$bname,; + print $products $line; + close($fd); + } + print $report "</report>\n"; + close($report); + close($products); + } + return 0; +} + +1; ++++++ product-builder-plugins.obsinfo ++++++ --- /var/tmp/diff_new_pack.bHRqlV/_old 2021-10-04 18:40:41.646128588 +0200 +++ /var/tmp/diff_new_pack.bHRqlV/_new 2021-10-04 18:40:41.646128588 +0200 @@ -1,5 +1,5 @@ name: product-builder-plugins -version: 1.4.3 -mtime: 1631878225 -commit: aceff0c4ea5bc78c72514716e90aa45560329330 +version: 1.6.0 +mtime: 1632470872 +commit: b59bf7b3c5876304dabcc344baf0e95e8705b578