Hello community,

here is the log from the commit of package product-builder for openSUSE:Factory 
checked in at 2018-09-11 17:10:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/product-builder (Old)
 and      /work/SRC/openSUSE:Factory/.product-builder.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "product-builder"

Tue Sep 11 17:10:32 2018 rev:24 rq:631391 version:1.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/product-builder/product-builder.changes  
2018-06-08 23:20:08.293936992 +0200
+++ /work/SRC/openSUSE:Factory/.product-builder.new/product-builder.changes     
2018-09-11 17:10:36.876029891 +0200
@@ -1,0 +2,6 @@
+Fri Aug 24 12:36:16 UTC 2018 - Adrian Schröter <adr...@suse.de>
+
+- 1.2.0
+  * Add special RPi hybrid mode
+
+-------------------------------------------------------------------

Old:
----
  product-builder-1.1.3.obscpio

New:
----
  product-builder-1.2.0.obscpio

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

Other differences:
------------------
++++++ product-builder.spec ++++++
--- /var/tmp/diff_new_pack.ueuNXF/_old  2018-09-11 17:10:37.532028870 +0200
+++ /var/tmp/diff_new_pack.ueuNXF/_new  2018-09-11 17:10:37.532028870 +0200
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -23,7 +23,7 @@
 Name:           product-builder
 Conflicts:      kiwi
 Conflicts:      kiwi-instsource
-Version:        1.1.3
+Version:        1.2.0
 Release:        0
 Provides:       kiwi-schema = 6.2
 Source:         product-builder-%version.tar.xz

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ueuNXF/_old  2018-09-11 17:10:37.556028833 +0200
+++ /var/tmp/diff_new_pack.ueuNXF/_new  2018-09-11 17:10:37.556028833 +0200
@@ -1,8 +1,8 @@
 <services>
   <service name="obs_scm" mode="disabled">
     <param name="url">https://github.com/openSUSE/product-builder.git</param>
-    <param name="revision">1.1.3</param>
-    <param name="version">1.1.3</param>
+    <param name="revision">1.2.0</param>
+    <param name="version">1.2.0</param>
     <param name="scm">git</param>
     <param name="extract">rpm/product-builder.spec</param>
   </service>

++++++ product-builder-1.1.3.obscpio -> product-builder-1.2.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/product-builder-1.1.3/modules/KIWICollect.pm 
new/product-builder-1.2.0/modules/KIWICollect.pm
--- old/product-builder-1.1.3/modules/KIWICollect.pm    2018-06-06 
10:52:39.000000000 +0200
+++ new/product-builder-1.2.0/modules/KIWICollect.pm    2018-08-24 
15:08:40.000000000 +0200
@@ -787,10 +787,10 @@
                 $checkmedia = "checkmedia";
             }
             my $hybridmedia;
-            if ( defined($this->{m_proddata}->getVar("RUN_ISOHYBRID"))
-                && $this->{m_proddata}->getVar("RUN_ISOHYBRID") eq "true"
-            ) {
-                $hybridmedia = 1 ;
+            my $rpihybridmedia;
+            if (defined($this->{m_proddata}->getVar("RUN_ISOHYBRID"))) {
+                $hybridmedia = 1 if 
$this->{m_proddata}->getVar("RUN_ISOHYBRID") eq "true";
+                $rpihybridmedia = 1 if 
$this->{m_proddata}->getVar("RUN_ISOHYBRID") eq "rpi"
             }
             $iso = KIWIIsoLinux -> new(
                 $this->{m_basesubdir}->{$cd},
@@ -828,6 +828,13 @@
                         $this->logMsg('I', "Isohybrid call successful");
                     }
                 }
+                if ($rpihybridmedia) {
+                    if(!$iso->createRPiHybrid()) {
+                        $this->logMsg('W', "Failed to create RPi Hybrid ISO");
+                    } else {
+                        $this->logMsg('I', "Successfully created RPi Hybrid 
ISO");
+                    }
+                }
             }
             if(!$iso->checkImage()) {
                 $this->logMsg('E', "Tagmedia call failed");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/product-builder-1.1.3/modules/KIWIIsoLinux.pm 
new/product-builder-1.2.0/modules/KIWIIsoLinux.pm
--- old/product-builder-1.1.3/modules/KIWIIsoLinux.pm   2018-06-06 
10:52:39.000000000 +0200
+++ new/product-builder-1.2.0/modules/KIWIIsoLinux.pm   2018-08-24 
15:08:40.000000000 +0200
@@ -461,8 +461,18 @@
     my $arch  = shift;
     my %base  = %{$this->{base}};
     my $para  = $this -> {params};
+    my $magicID= $this -> {magicID};
     my $boot  = $base{$arch}{boot};
     my $loader= $base{$arch}{efi};
+    my $sort  = $this -> createLegacySortFile ("aarch64");
+    my $src   = $this -> {source};
+    KIWIQX::qxx ("echo $src/boot/$arch/efi 1000001 >> $sort");
+    #==========================================
+    # add end-of-header marker
+    #------------------------------------------
+    KIWIQX::qxx ("echo $magicID > ".$this->{tmpdir}."/glump");
+    KIWIQX::qxx ("echo ".$this->{tmpdir}."/glump 1000000 >> $sort") if $sort;
+    $para.= " -sort $sort" if $sort;
     $para.= " -no-emul-boot";
     # do not add -boot-load-size 1 here
     $para.= " -b $loader";
@@ -521,7 +531,9 @@
         $this -> cleanISO();
         return;
     }
-    find ({wanted => $wref,follow => 0 
},$src."/".$base{$arch}{boot}."/loader");
+    if ($arch ne "aarch64") {
+        find ({wanted => $wref,follow => 0 
},$src."/".$base{$arch}{boot}."/loader");
+    }
     print $FD "$ldir/".$base{$arch}{boot}."/boot.catalog 3"."\n";
     print $FD $base{$arch}{boot}."/boot.catalog 3"."\n";
     print $FD "$src/".$base{$arch}{boot}."/boot.catalog 3"."\n";
@@ -1169,6 +1181,69 @@
     return $this;
 }
 
+#==========================================
+# createRPiHybrid
+#------------------------------------------
+sub createRPiHybrid {
+    # ...
+    # create hybrid ISO that only injects MBR awareness,
+    # but without using the isohybrid tool. This is needed
+    # to directly boot the iso on a Raspberry Pi.
+    # ---
+    my $this     = shift;
+    my $mbrid    = shift;
+    my $kiwi     = $this->{kiwi};
+    my $iso      = $this->{dest};
+    my $xml      = $this->{xml};
+    my $data;
+    my $code;
+    my $mbr;
+    my $iso_fd = FileHandle -> new();
+
+    if (! $iso_fd -> open("+<".$iso)) {
+        $kiwi -> error ("Can not open hybrid iso");
+        $kiwi -> failed ();
+        return;
+    }
+
+    # Create MBR
+    my $bootcode = pack("a446", "");
+    my $empty_part = pack("a16", "");
+
+    my $iso_start = $this->{magic_offset};
+    my $iso_size = (sysseek($iso_fd, 0, 2) / 512) - $iso_start;
+    my $iso_part = pack("C8VV", 0, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 
$iso_start, $iso_size);
+
+    my $efi_start = hex(KIWIQX::qxx("echo -n `isoinfo -d -i $iso | grep 
Bootoff | cut -d f -f 3 | cut -d ' ' -f 2`")) * 4;
+    my $efi_size = hex(KIWIQX::qxx("echo -n `isoinfo -d -i $iso | grep Nsect | 
cut -d t -f 2 | sed 's/ //g'`"));
+    my $efi_part = pack("C8VV", 0x80, 0xff, 0xff, 0xff, 0xc, 0xff, 0xff, 0xff, 
$efi_start, $efi_size);
+
+    if (!$efi_start || !$efi_size) {
+        $kiwi -> error ("Can not parse el torito information on hybrid iso");
+        $kiwi -> failed ();
+        return;
+    }
+
+    $mbr = pack("a446", "");
+    $mbr .= $efi_part;
+    $mbr .= $iso_part;
+    $mbr .= $empty_part;
+    $mbr .= $empty_part;
+    $mbr .= pack("C2", 0x55, 0xaa);
+
+    # Write MBR into iso
+    sysseek $iso_fd, 0, 0;
+    if (! syswrite($iso_fd, $mbr, 512) == 512) {
+        $kiwi -> error ("Can not write iso MBR");
+        $kiwi -> failed ();
+        return;
+    }
+
+    $iso_fd  -> close();
+
+    return $this;
+}
+
 #==========================================
 # relocateCatalog
 #------------------------------------------

++++++ product-builder.obsinfo ++++++
--- /var/tmp/diff_new_pack.ueuNXF/_old  2018-09-11 17:10:37.696028615 +0200
+++ /var/tmp/diff_new_pack.ueuNXF/_new  2018-09-11 17:10:37.696028615 +0200
@@ -1,5 +1,5 @@
 name: product-builder
-version: 1.1.3
-mtime: 1528275159
-commit: 717e1875568f05082a116dc015563f7bde4ec255
+version: 1.2.0
+mtime: 1535116120
+commit: 2eaf4a9a9d0ff1b8a6e40a45dce57c1640b75787
 


Reply via email to