Hello community,
here is the log from the commit of package installation-images-openSUSE for
openSUSE:Factory checked in at 2014-11-26 10:35:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/installation-images-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.installation-images-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "installation-images-openSUSE"
Changes:
--------
---
/work/SRC/openSUSE:Factory/installation-images-openSUSE/installation-images-openSUSE.changes
2014-11-11 01:10:57.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.installation-images-openSUSE.new/installation-images-openSUSE.changes
2014-11-26 10:35:41.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Nov 25 13:10:50 CET 2014 - [email protected]
+
+- auto-add kernel modules needed due to module dependencies
+- 14.150
+
+-------------------------------------------------------------------
Old:
----
installation-images-14.149.tar.xz
New:
----
installation-images-14.150.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ installation-images-openSUSE.spec ++++++
--- /var/tmp/diff_new_pack.P5jj9y/_old 2014-11-26 10:35:42.000000000 +0100
+++ /var/tmp/diff_new_pack.P5jj9y/_new 2014-11-26 10:35:42.000000000 +0100
@@ -361,7 +361,7 @@
Summary: Installation Image Files for %theme
License: GPL-2.0+
Group: Metapackages
-Version: 14.149
+Version: 14.150
Release: 0
Provides: installation-images = %version-%release
Source: installation-images-%{version}.tar.xz
++++++ installation-images-14.149.tar.xz -> installation-images-14.150.tar.xz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/installation-images-14.149/VERSION
new/installation-images-14.150/VERSION
--- old/installation-images-14.149/VERSION 2014-11-07 08:24:22.000000000
+0100
+++ new/installation-images-14.150/VERSION 2014-11-25 13:04:33.000000000
+0100
@@ -1 +1 @@
-14.149
+14.150
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/installation-images-14.149/bin/mlist1
new/installation-images-14.150/bin/mlist1
--- old/installation-images-14.149/bin/mlist1 2014-11-07 08:24:22.000000000
+0100
+++ new/installation-images-14.150/bin/mlist1 2014-11-25 13:04:33.000000000
+0100
@@ -9,69 +9,92 @@
use AddFiles;
use Conv2Image;
+use strict;
+
+use Data::Dumper;
+$Data::Dumper::Sortkeys = 1;
+$Data::Dumper::Terse = 1;
+$Data::Dumper::Indent = 1;
+
sub check_deps;
-sub sort_deps;
+sub add_deps;
die "usage: $Script\n" if @ARGV;
-$md = "${BasePath}tmp/modules-config/modules.dep";
-$ex = "${CfgPath}module.list";
-$deps = "${BasePath}tmp/modules-config/module_deps";
-$list = "${BasePath}tmp/modules-config/module_list";
-$mod_type = $ConfigData{module_type};
+my $md = "${BasePath}tmp/modules-config/modules.dep";
+my $ex = "${CfgPath}module.list";
+my $deps = "${BasePath}tmp/modules-config/module_deps";
+my $list = "${BasePath}tmp/modules-config/module_list";
+my $added = "${BasePath}tmp/modules-config/module_added";
+my $mod_type = $ConfigData{module_type};
+
+my @ml_all;
+my $ml;
+my $ex_yes;
+my $ex_no;
-$arch = `uname -m`; chomp $arch; $arch = "i386" if $arch =~ /^i\d86$/;
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
print STDERR "checking module list...\n";
-die "$0: $md: $!\n" unless open F, $md;
-
-while(<F>) {
- chomp;
- next if /^\s*$/;
- $cnt_next = s/\\$/ / ? 1 : 0;
- if($cnt) {
- @ml[-1] .= $_;
- }
- else {
- push @ml, $_;
+if(open my $f, $md) {
+ my ($cnt, $cnt_next);
+ while(<$f>) {
+ chomp;
+ next if /^\s*$/;
+ $cnt_next = s/\\$/ / ? 1 : 0;
+ if($cnt) {
+ @ml_all[-1] .= $_;
+ }
+ else {
+ push @ml_all, $_;
+ }
+ $cnt = $cnt_next;
}
- $cnt = $cnt_next;
-}
-close F;
+ close $f;
+}
+else {
+ die "$0: $md: $!\n";
+}
-die "$0: $ex: $!\n" unless open(F, "$ex.$arch") || open(F, $ex);
-while(<F>) {
- s/\s*$//;
- next if /^\s*(#|$)/;
+if(open my $f, $ex) {
+ while(<$f>) {
+ s/\s*$//;
+ next if /^\s*(#|$)/;
- if(s/^\-//) {
- push @ex_no, $_;
- }
- else {
- push @ex_yes, $_;
+ if(s/^\-//) {
+ $ex_no .= "|$_";
+ }
+ else {
+ $ex_yes .= "|$_";
+ }
}
-}
-close F;
-
-if(@ex_no != 0) {
- $ex_no = join '|', @ex_no;
+ close $f;
}
-
-if(@ex_yes != 0) {
- $ex_yes = join '|', @ex_yes;
+else {
+ die "$0: $ex: $!\n";
}
-for (@ml) {
+substr($ex_no, 0, 1, "");
+substr($ex_yes, 0, 1, "");
+
+for (@ml_all) {
+ my ($m, $p);
+ my $y = 1;
+
s#^/lib/modules/[^/]+/##;
if(/^(\S+):/) {
$m = $1;
- $_ = "" if $ex_yes && $m !~ /($ex_yes)/;
- $_ = "" if $ex_no && $m =~ /($ex_no)/;
}
+ else {
+ next;
+ }
+
+ $y = 0 if $ex_yes && $m !~ /($ex_yes)/;
+ $y = 0 if $ex_no && $m =~ /($ex_no)/;
s#^(\S+)/##;
$p = $1;
@@ -80,58 +103,58 @@
s/\s+/ /g;
s/\s+$//;
- if(/^(\S+):/) {
- $path{$1} = $p unless exists $path{$1}
- }
-
- $_ = "$p $_" if $_;
-}
-@ml = grep $_ ne "", @ml;
-
-for (@ml) {
- if(/^(\S+)\s+(\S+):\s*(.*?)$/) {
- $p = $1;
- if(exists $ml{$2}) {
- print STDERR " duplicate module: $p/$2, $path{$2}/$2\n"
+ if(s/^(\S+):\s*//) {
+ if($ml->{$1}) {
+ print STDERR " duplicate modules: $p/$1, $ml->{$1}{path}/$1\n";
}
- $ml{$2} = $3;
- }
- else {
- die "$0: oops: invalid line: \"$_\"\n"
+ $ml->{$1}{path} = $p;
+ $ml->{$1}{config} = $y;
+ $ml->{$1}{deps} = [ (split ' ') ];
}
}
-while(check_deps) {}
+while(add_deps) {}
-sort_deps;
+while(check_deps) {}
-open W1, ">$deps";
-open W2, ">$list";
-for (sort { "$path{$a} $a" cmp "$path{$b} $b" } keys %ml) {
- print W2 "$path{$_}: $_\n";
- if($ml{$_}) {
- print W1 "$_: ", $ml{$_}, "\n"
+open my $w1, ">", $deps;
+open my $w2, ">", $list;
+open my $w3, ">", $added;
+
+print $w3 "[other]\n";
+
+for (sort { "$ml->{$a}{path} $a" cmp "$ml->{$b}{path} $b" } keys %$ml) {
+ next if !$ml->{$_}{config};
+ print $w3 "$_\n" if $ml->{$_}{added};
+ print $w2 "$ml->{$_}{path}: $_\n";
+ if(@{$ml->{$_}{deps}}) {
+ print $w1 "$_: ", join(" ", @{$ml->{$_}{deps}}), "\n"
}
else {
- print W1 "$_:\n"
+ print $w1 "$_:\n"
}
}
-close W2;
-close W1;
+close $w3;
+close $w2;
+close $w1;
+
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# check module dependencies and remove modules with unfulfilled deps
+#
sub check_deps
{
- local $_;
- my ($i, $cnt);
+ my $cnt;
- for (keys %ml) {
- if($ml{$_}) {
- for $i (split ' ', $ml{$_}) {
- if(!exists $ml{$i}) {
- print STDERR " unresolved deps in $_: $i, dropped\n";
- delete $ml{$_};
- $cnt++;
- }
+ for my $m (sort keys %$ml) {
+ next if !$ml->{$m}{config};
+ for (@{$ml->{$m}{deps}}) {
+ if(!$ml->{$_} || !$ml->{$_}{config}) {
+ print STDERR " unresolved deps in $m: $_, dropped\n";
+ $ml->{$m}{config} = 0;
+ $cnt++;
+ last;
}
}
}
@@ -140,17 +163,26 @@
}
-sub sort_deps
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# add required modules to fulfill deps
+#
+sub add_deps
{
- local $_;
- my ($m);
+ my $cnt;
- for $m (keys %ml) {
- $ml2{$m}{$_} = 10 for split ' ', $ml{$m};
+ for my $m (sort keys %$ml) {
+ next if !$ml->{$m}{config};
+ for (@{$ml->{$m}{deps}}) {
+ if($ml->{$_} && !$ml->{$_}{config}) {
+ print " auto-added $_\n";
+ $ml->{$_}{config} = 1;
+ $ml->{$_}{added} = 1;
+ $cnt++;
+ last;
+ }
+ }
}
- for $m (keys %ml) {
- $ml{$m} = join(' ', (sort { ($ml2{$a}{$b} - $ml2{$b}{$a}) + ($a cmp $b) }
split(' ', $ml{$m})));
- }
+ return $cnt;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/installation-images-14.149/bin/mlist2
new/installation-images-14.150/bin/mlist2
--- old/installation-images-14.149/bin/mlist2 2014-11-07 08:24:22.000000000
+0100
+++ new/installation-images-14.150/bin/mlist2 2014-11-25 13:04:33.000000000
+0100
@@ -30,6 +30,7 @@
$dst = "${DataPath}initrd/gen/module.";
$all_mods = "${DataPath}initrd/all_modules";
$mod_type = $ConfigData{module_type};
+$added_mods = "${BasePath}tmp/modules-config/module_added";
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# now we really start...
@@ -85,12 +86,27 @@
close F;
}
-die "$Script: $cfg: $!\n" unless open(F, "$cfg.$arch") || open(F, $cfg);
+if(open my $f, $cfg) {
+ while(<$f>) {
+ push @cfg_file, $_;
+ }
+ close $f;
+}
+else {
+ die "$Script: $cfg: $!\n";
+}
+
+if(open my $f, $added_mods) {
+ while(<$f>) {
+ push @cfg_file, $_;
+ }
+ close $f;
+}
open NO_MOD, ">$mod_no";
open NO_MOD_ALL, ">$mod_no_all";
-while(<F>) {
+for (@cfg_file) {
chomp;
s/^\s*([#;].*)?//;
next if $_ eq "";
@@ -178,7 +194,6 @@
$mod_warned{$l[0]} = 1;
}
}
-close F;
close NO_MOD;
@@ -297,12 +312,14 @@
print W "\n\n";
close W;
+=head
open W, ">${dst}shortconfig.$s";
print W "[${\real_name($_)}]\n";
print W "MoreModules=${\real_name($sect{$_}{MoreModulesLxrc})}\n" if exists
$sect{$_}{MoreModulesLxrc};
print W "ModDisk=$sect{$_}{ModDiskNext}\n" if exists $sect{$_}{ModDiskNext};
print W "\n\n";
close W;
+=cut
open W, ">${dst}files.$s";
for $f (sort { $fname{$a} cmp $fname{$b} } keys %{$sect{$_}{'a'}}) {
@@ -324,6 +341,7 @@
close W;
}
+=head
open W, ">${dst}list.$s";
print W ";\n; ${\real_name($_)} modules\n;\n";
for $m (@{$sect{$_}{'m'}}) {
@@ -336,9 +354,11 @@
}
print W "\n";
close W;
+=cut
}
+=head
open W, ">$mdisk_c";
for (sort keys %moddisk_c) {
print W "$_:$moddisk_c{$_}\n"
@@ -356,6 +376,7 @@
print W "$_:$moddisk_i{$_}\n"
}
close W;
+=cut
$err = 0 if $ENV{debug} =~ /\bignore\b/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/installation-images-14.149/changelog
new/installation-images-14.150/changelog
--- old/installation-images-14.149/changelog 2014-11-07 08:24:22.000000000
+0100
+++ new/installation-images-14.150/changelog 2014-11-25 13:04:33.000000000
+0100
@@ -1,3 +1,6 @@
+2014-11-25: 14.150
+ - auto-add kernel modules needed due to module dependencies
+
2014-11-05: 14.149
- aarch64: move kernel and initrd to boot/aarch64/loader
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]