Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mksusecd for openSUSE:Factory checked in at 2022-12-16 17:51:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mksusecd (Old) and /work/SRC/openSUSE:Factory/.mksusecd.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mksusecd" Fri Dec 16 17:51:39 2022 rev:73 rq:1043204 version:2.9 Changes: -------- --- /work/SRC/openSUSE:Factory/mksusecd/mksusecd.changes 2022-12-07 19:31:35.414175669 +0100 +++ /work/SRC/openSUSE:Factory/.mksusecd.new.1835/mksusecd.changes 2022-12-16 17:51:47.640064652 +0100 @@ -1,0 +2,7 @@ +Thu Dec 15 19:22:07 UTC 2022 - wfe...@opensuse.org + +- merge gh#openSUSE/mksusecd#64 +- much improved usrmerge kernel support (bsc#1206181) +- 2.9 + +-------------------------------------------------------------------- Old: ---- mksusecd-2.8.tar.xz New: ---- mksusecd-2.9.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mksusecd.spec ++++++ --- /var/tmp/diff_new_pack.PzDjF4/_old 2022-12-16 17:51:48.084067096 +0100 +++ /var/tmp/diff_new_pack.PzDjF4/_new 2022-12-16 17:51:48.088067118 +0100 @@ -18,7 +18,7 @@ Name: mksusecd -Version: 2.8 +Version: 2.9 Release: 0 Summary: Tool to create SUSE Linux installation ISOs License: GPL-3.0+ ++++++ mksusecd-2.8.tar.xz -> mksusecd-2.9.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-2.8/VERSION new/mksusecd-2.9/VERSION --- old/mksusecd-2.8/VERSION 2022-12-07 17:03:59.000000000 +0100 +++ new/mksusecd-2.9/VERSION 2022-12-15 20:22:07.000000000 +0100 @@ -1 +1 @@ -2.8 +2.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-2.8/changelog new/mksusecd-2.9/changelog --- old/mksusecd-2.8/changelog 2022-12-07 17:03:59.000000000 +0100 +++ new/mksusecd-2.9/changelog 2022-12-15 20:22:07.000000000 +0100 @@ -1,3 +1,7 @@ +2022-12-15: 2.9 + - merge gh#openSUSE/mksusecd#64 + - much improved usrmerge kernel support (bsc#1206181) + 2022-12-07: 2.8 - merge gh#openSUSE/mksusecd#63 - fix handling of usrmerge kernels diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-2.8/mksusecd new/mksusecd-2.9/mksusecd --- old/mksusecd-2.8/mksusecd 2022-12-07 17:03:59.000000000 +0100 +++ new/mksusecd-2.9/mksusecd 2022-12-15 20:22:07.000000000 +0100 @@ -4128,17 +4128,35 @@ { $kernel->{dir} = $tmp->dir(); - # add compat links for usrmerge - symlink "usr/lib", "$kernel->{dir}/lib"; - mkdir "$kernel->{dir}/usr", 0755; - mkdir "$kernel->{dir}/usr/lib", 0755; - for (@opt_kernel_rpms) { my $type = get_archive_type $_; die "$_: don't know how to unpack this\n" if !$type; unpack_archive $type, $_, $kernel->{dir}; } + # kernel package layout expected in initrd + if(-d "$orig_initrd/usr/lib/modules") { + $kernel->{target_usrmerge} = 1; + $kernel->{target_lib_dir} = "usr/lib"; + } + else { + $kernel->{target_usrmerge} = 0; + $kernel->{target_lib_dir} = "lib"; + } + + # kernel package layout in new kernel rpms + if(-d "$kernel->{dir}/usr/lib/modules") { + $kernel->{usrmerge} = 1; + $kernel->{lib_dir} = "usr/lib"; + } + else { + $kernel->{usrmerge} = 0; + $kernel->{lib_dir} = "lib"; + } + + my $lib_dir = $kernel->{lib_dir}; + my $target_lib_dir = $kernel->{target_lib_dir}; + my $kernel_location; my $kernel_name_suffix; @@ -4151,10 +4169,10 @@ } } else { - my $version = (glob "$kernel->{dir}/lib/modules/*/System.map")[-1]; - if($version =~ m#/lib/modules/([^/]+)/#) { + my $version = (glob "$kernel->{dir}/$lib_dir/modules/*/System.map")[-1]; + if($version =~ m#/$lib_dir/modules/([^/]+)/#) { $kernel->{version} = $1; - $kernel_location = "lib/modules/$1"; + $kernel_location = "$lib_dir/modules/$1"; $kernel_name_suffix = ""; } } @@ -4181,24 +4199,34 @@ die "no module dir?\n" if $kernel->{version} eq ""; die "no kernel?\n" if !$kernel->{image}; - for (glob "$kernel->{dir}/lib/modules/*") { + for (glob "$kernel->{dir}/$lib_dir/modules/*") { s#.*/##; next if $_ eq $kernel->{version}; print "warning: kmp version mismatch, adjusting: $_ --> $kernel->{version}\n"; - system "tar -C '$kernel->{dir}/lib/modules/$_' -cf - . | tar -C '$kernel->{dir}/lib/modules/$kernel->{version}' -xf -"; + system "tar -C '$kernel->{dir}/$lib_dir/modules/$_' -cf - . | tar -C '$kernel->{dir}/$lib_dir/modules/$kernel->{version}' -xf -"; } + # compat symlink needed for depmod + symlink("$lib_dir", "$kernel->{dir}/lib") if $kernel->{usrmerge}; system "depmod -a -b $kernel->{dir} $kernel->{version}"; + unlink "$kernel->{dir}/lib" if $kernel->{usrmerge}; - if(! -s "$kernel->{dir}/lib/modules/$kernel->{version}/modules.dep") { + if(! -s "$kernel->{dir}/$lib_dir/modules/$kernel->{version}/modules.dep") { # squashfs is randomly picked, assuming it will always exist - my $fmt = (glob "$kernel->{dir}/lib/modules/$kernel->{version}/kernel/fs/squashfs/squashfs.*")[0]; + my $fmt = (glob "$kernel->{dir}/$lib_dir/modules/$kernel->{version}/kernel/fs/squashfs/squashfs.*")[0]; $fmt =~ s#.*/squashfs##; $fmt .= " " if $fmt; die "failed to generate modules.dep - maybe kmod package too old to handle ${fmt}module format?\n"; } + if($opt_verbose >= 1) { + my $u = $kernel->{target_usrmerge} ? " (usrmerge)" : ""; + print "original kernel: $kernel->{orig_version}$u\n"; + $u = $kernel->{usrmerge} ? " (usrmerge)" : ""; + print "new kernel: $kernel->{version}$u\n"; + } + # print Dumper($kernel); } @@ -4227,7 +4255,10 @@ } } - die "no modules.dep\n" if !open my $f, "$kernel->{dir}/lib/modules/$kernel->{version}/modules.dep"; + my $lib_dir = $kernel->{lib_dir}; + my $target_lib_dir = $kernel->{target_lib_dir}; + + die "no modules.dep\n" if !open my $f, "$kernel->{dir}/$lib_dir/modules/$kernel->{version}/modules.dep"; # get module paths for (<$f>) { @@ -4254,14 +4285,11 @@ $kernel->{new_dir} = $tmp->dir(); - mkdir "$kernel->{new_dir}/lib", 0755; - mkdir "$kernel->{new_dir}/lib/modules", 0755; - mkdir "$kernel->{new_dir}/lib/modules/$kernel->{version}", 0755; - mkdir "$kernel->{new_dir}/lib/modules/$kernel->{version}/initrd", 0755; + File::Path::make_path "$kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/initrd"; for (sort keys %{$kernel->{initrd_modules}}) { if($kernel->{modules}{$_} && !$mods_remove{$_}) { - system "cp $kernel->{dir}/lib/modules/$kernel->{version}/$kernel->{modules}{$_} $kernel->{new_dir}/lib/modules/$kernel->{version}/initrd"; + system "cp $kernel->{dir}/$lib_dir/modules/$kernel->{version}/$kernel->{modules}{$_} $kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/initrd"; push @{$kernel->{added}}, $_ if $kernel->{initrd_modules}{$_} > 1; } else { @@ -4271,29 +4299,32 @@ # copy modules.order & modules.builtin - if(-f "$kernel->{dir}/lib/modules/$kernel->{version}/modules.builtin") { - system "cp -f $kernel->{dir}/lib/modules/$kernel->{version}/modules.builtin{,.modinfo} $kernel->{new_dir}/lib/modules/$kernel->{version}/"; + if(-f "$kernel->{dir}/$lib_dir/modules/$kernel->{version}/modules.builtin") { + system "cp -f $kernel->{dir}/$lib_dir/modules/$kernel->{version}/modules.builtin{,.modinfo} $kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/"; } - if(open my $f, "$kernel->{dir}/lib/modules/$kernel->{version}/modules.order") { - if(open my $w, ">$kernel->{new_dir}/lib/modules/$kernel->{version}/modules.order") { + if(open my $f, "$kernel->{dir}/$lib_dir/modules/$kernel->{version}/modules.order") { + if(open my $w, ">$kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/modules.order") { while(<$f>) { chomp; s#.*/#initrd/#; - print $w "$_\n" if -f "$kernel->{new_dir}/lib/modules/$kernel->{version}/$_"; + print $w "$_\n" if -f "$kernel->{new_dir}/$lib_dir/modules/$kernel->{version}/$_"; } close $w; } close $f; } + # compat symlink needed for depmod + symlink("$target_lib_dir", "$kernel->{new_dir}/lib") if $kernel->{target_usrmerge}; system "depmod -a -b $kernel->{new_dir} $kernel->{version}"; + unlink "$kernel->{new_dir}/lib" if $kernel->{target_usrmerge}; # now get firmware files my %fw; - for my $m (glob("$kernel->{new_dir}/lib/modules/$kernel->{version}/initrd/*${kext_glob}")) { + for my $m (glob("$kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/initrd/*${kext_glob}")) { chomp $m; next unless -f $m; @@ -4310,11 +4341,11 @@ for my $m (sort keys %fw) { for (@{$fw{$m}}) { my $f; - $f = "$_" if -f "$kernel->{dir}/lib/firmware/$_"; - $f = "$kernel->{version}/$_" if -f "$kernel->{dir}/lib/firmware/$kernel->{version}/$_"; + $f = "$_" if -f "$kernel->{dir}/$lib_dir/firmware/$_"; + $f = "$kernel->{version}/$_" if -f "$kernel->{dir}/$lib_dir/firmware/$kernel->{version}/$_"; if($f) { - system "install -m 644 -D $kernel->{dir}/lib/firmware/$f $kernel->{new_dir}/lib/firmware/$f"; + system "install -m 644 -D $kernel->{dir}/$lib_dir/firmware/$f $kernel->{new_dir}/$target_lib_dir/firmware/$f"; } } } @@ -4330,7 +4361,7 @@ # print "got it\n"; # FIXME: adjust config - open my $f, ">$kernel->{new_dir}/lib/modules/$kernel->{version}/initrd/module.config"; + open my $f, ">$kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/initrd/module.config"; print $f @{$kernel->{module_config}}; close $f; } @@ -4346,6 +4377,9 @@ { my $tmp_dir; + my $lib_dir = $kernel->{lib_dir}; + my $target_lib_dir = $kernel->{target_lib_dir}; + if($initrd_has_parts) { $tmp_dir = $tmp->dir(); @@ -4356,10 +4390,7 @@ # going to rebuild the initrd anyway $p = "00_lib" if $opt_rebuild_initrd; - mkdir "$tmp_dir/lib", 0755; - mkdir "$tmp_dir/lib/modules", 0755; - mkdir "$tmp_dir/lib/modules/$kernel->{version}", 0755; - mkdir "$tmp_dir/lib/modules/$kernel->{version}/initrd", 0755; + File::Path::make_path "$tmp_dir/$target_lib_dir/modules/$kernel->{version}/initrd"; my @base_modules = qw (loop squashfs lz4_decompress xxhash zstd_decompress); @@ -4372,8 +4403,8 @@ for (@base_modules) { for my $ext (@kext_list) { - if(-f "$kernel->{new_dir}/lib/modules/$kernel->{version}/initrd/$_$ext") { - rename "$kernel->{new_dir}/lib/modules/$kernel->{version}/initrd/$_$ext", "$tmp_dir/lib/modules/$kernel->{version}/initrd/$_$ext"; + if(-f "$kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/initrd/$_$ext") { + rename "$kernel->{new_dir}/$target_lib_dir/modules/$kernel->{version}/initrd/$_$ext", "$tmp_dir/$target_lib_dir/modules/$kernel->{version}/initrd/$_$ext"; } } } @@ -4389,9 +4420,9 @@ # add module symlink - symlink "lib/modules/$kernel->{version}/initrd", "$tmp_dir/modules"; + symlink "$target_lib_dir/modules/$kernel->{version}/initrd", "$tmp_dir/modules"; - my $cmd = "Exec:\t\tln -snf lib/modules/`uname -r`/initrd /modules\n"; + my $cmd = "Exec:\t\tln -snf $lib_dir/modules/`uname -r`/initrd /modules\n"; if(open my $f, "$orig_initrd/linuxrc.config") { my $cmd_found; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mksusecd-2.8/mksusecd_man.adoc new/mksusecd-2.9/mksusecd_man.adoc --- old/mksusecd-2.8/mksusecd_man.adoc 2022-12-07 17:03:59.000000000 +0100 +++ new/mksusecd-2.9/mksusecd_man.adoc 2022-12-15 20:22:07.000000000 +0100 @@ -17,6 +17,7 @@ mksusecd can modify or create bootable installation media. They can be either ISO images or disk images (to be used on USB sticks, for example). +Note that Live media are not supported. mksusecd supports media in both openSUSE/SLES and Fedora/RHEL layout. See Fedora/RHEL notes for details.