Hello community,

here is the log from the commit of package mksusecd for openSUSE:Factory 
checked in at 2020-09-12 00:09:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mksusecd (Old)
 and      /work/SRC/openSUSE:Factory/.mksusecd.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mksusecd"

Sat Sep 12 00:09:51 2020 rev:64 rq:833526 version:1.76

Changes:
--------
--- /work/SRC/openSUSE:Factory/mksusecd/mksusecd.changes        2020-07-27 
17:51:29.943661186 +0200
+++ /work/SRC/openSUSE:Factory/.mksusecd.new.4249/mksusecd.changes      
2020-09-12 00:10:09.849079309 +0200
@@ -1,0 +2,11 @@
+Thu Sep 10 16:03:10 UTC 2020 - wfe...@opensuse.org
+
+- merge gh#openSUSE/mksusecd#51
+- look only at top-level products file (bsc#1176176)
+- ensure modified files really end up on the media (bsc#1176176)
+- adjust product handling if products are spread over several media
+- include complete product directories
+- fix product handling with new SLE full media layout
+- 1.76
+
+--------------------------------------------------------------------

Old:
----
  mksusecd-1.75.tar.xz

New:
----
  mksusecd-1.76.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mksusecd.spec ++++++
--- /var/tmp/diff_new_pack.pERFaR/_old  2020-09-12 00:10:10.861080277 +0200
+++ /var/tmp/diff_new_pack.pERFaR/_new  2020-09-12 00:10:10.865080281 +0200
@@ -18,7 +18,7 @@
 
 
 Name:           mksusecd
-Version:        1.75
+Version:        1.76
 Release:        0
 Summary:        Tool to create SUSE Linux installation ISOs
 License:        GPL-3.0+

++++++ mksusecd-1.75.tar.xz -> mksusecd-1.76.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksusecd-1.75/VERSION new/mksusecd-1.76/VERSION
--- old/mksusecd-1.75/VERSION   2020-07-27 14:37:29.000000000 +0200
+++ new/mksusecd-1.76/VERSION   2020-09-10 18:03:10.000000000 +0200
@@ -1 +1 @@
-1.75
+1.76
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksusecd-1.75/changelog new/mksusecd-1.76/changelog
--- old/mksusecd-1.75/changelog 2020-07-27 14:37:29.000000000 +0200
+++ new/mksusecd-1.76/changelog 2020-09-10 18:03:10.000000000 +0200
@@ -1,3 +1,11 @@
+2020-09-10:    1.76
+       - merge gh#openSUSE/mksusecd#51
+       - look only at top-level products file (bsc#1176176)
+       - ensure modified files really end up on the media (bsc#1176176)
+       - adjust product handling if products are spread over several media
+       - include complete product directories
+       - fix product handling with new SLE full media layout
+
 2020-07-27:    1.75
        - merge gh#openSUSE/mksusecd#50
        - added "--sign-pass-file"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksusecd-1.75/mksusecd new/mksusecd-1.76/mksusecd
--- old/mksusecd-1.75/mksusecd  2020-07-27 14:37:29.000000000 +0200
+++ new/mksusecd-1.76/mksusecd  2020-09-10 18:03:10.000000000 +0200
@@ -1100,12 +1100,34 @@
 {
   my $src = $_[0];
 
-  for my $s (@$src) {
+  # Internally generated files are put into the $tmp_new base directory.
+  # $files holds a database of all files and their locations (their base
+  # directories).
+  #
+  # The aim is that files that come later in the $src list replace earlier
+  # versions. With $tmp_new taking even more precedence.
+  #
+  # At the start of this function $files has already been set up with the
+  # files in $tmp_new.
+  #
+  # So, go through $src in reverse, put new files into $files and exclude
+  # duplicates.
+  #
+  # This does only apply to files, not directories.
+  #
+  for my $s (reverse @$src) {
     File::Find::find({
       wanted => sub {
         if(m#^$s->{dir}/(.+)#) {
-          push @{$mkisofs->{exclude}}, "$files->{$1}/$1" if $files->{$1} && -f 
"$files->{$1}/$1";
-          $files->{$1} = $s->{dir};
+          my $file_name = $1;
+          if($files->{$file_name}) {
+            if(-f "$s->{dir}/$file_name") {
+              push @{$mkisofs->{exclude}}, "$s->{dir}/$file_name";
+            }
+          }
+          else {
+            $files->{$file_name} = $s->{dir};
+          }
         }
       },
       no_chdir => 1
@@ -4462,26 +4484,20 @@
   my $src_idx = 0;
 
   for my $s (@$src) {
-    File::Find::find({
-      wanted => sub {
-        if(m#/media.1/products$#) {
-          # read any product file we find ...
-          if(open my $f, $_) {
-            my @fields;
-            while(my $l = <$f>) {
-              @fields = split /\s/, $l;
-              # ... and for each product definition, analyse it
-              my $ok = check_product($src_idx, $_, @fields) if @fields == 3;
-              # If we find a valid product, skip the source dir (except if 
it's the first).
-              # Instead, only the product (the repository) is added to the 
final medium.
-              $s->{skip} = 1 if $ok && $src_idx > 0;
-            }
-            close $f;
-          }
-        }
-      },
-      no_chdir => 1
-    }, $s->{dir});
+    # read top-level products file
+    $_ = "$s->{dir}/media.1/products";
+    if(open my $f, $_) {
+      my @fields;
+      while(my $l = <$f>) {
+        @fields = split /\s/, $l;
+        # ... and for each product definition, analyse it
+        my $ok = check_product($src_idx, $_, @fields) if @fields == 3;
+        # If we find a valid product, skip the source dir (except if it's the 
first).
+        # Instead, only the product (the repository) is added to the final 
medium.
+        $s->{skip} = 1 if $ok && $src_idx > 0;
+      }
+      close $f;
+    }
     $src_idx++;
   }
 
@@ -4518,16 +4534,21 @@
   open my $prod_fd, ">$prod_file" or die "media.1/products: $!\n";
 
   # ... and append any products we found above
+
+  # Exclude all products that are in subdirectories and re-add them as
+  # needed via mkisofs graft points. That's needed as they might be on
+  # different media originally.
+  #
   for (@{$product_db->{list}}) {
-    if(!$_->{include}) {
-      push @{$mkisofs->{exclude}}, $_->{base_dir} if $_->{product_dir};
-      next;
-    }
+    push @{$mkisofs->{exclude}}, $_->{base_dir} if $_->{product_dir};
+
+    next if !$_->{include};
+
     # FIXME: add $label to name?
     print $prod_fd "/$_->{repo_dir} $_->{name} $_->{ver}\n";
-    for my $d (@{$_->{dirs}}) {
-      push @{$mkisofs->{grafts}}, "$_->{repo_dir}/$d=$_->{base_dir}/$d" if 
$_->{repo_dir} ne $_->{product_dir};
-    }
+
+    # include full product dir, not just repo-specific subdirs
+    push @{$mkisofs->{grafts}}, "$_->{product_dir}=$_->{base_dir}" if 
$_->{product_dir};
 
     if($opt_enable_repos =~ /^(1|yes|auto|ask)$/i) {
       my $ask_user = $opt_enable_repos =~ /^ask$/i;


Reply via email to