[Debburn-changes] r659 - in cdrkit/trunk: . debian genisoimage

Eduard Bloch blade at alioth.debian.org
Sat Dec 30 16:46:50 CET 2006


Author: blade
Date: 2006-12-30 16:46:49 +0100 (Sat, 30 Dec 2006)
New Revision: 659

Modified:
   cdrkit/trunk/Changelog
   cdrkit/trunk/debian/changelog
   cdrkit/trunk/genisoimage/boot-alpha.c
   cdrkit/trunk/genisoimage/boot-hppa.c
   cdrkit/trunk/genisoimage/genisoimage.1
   cdrkit/trunk/genisoimage/genisoimage.c
   cdrkit/trunk/genisoimage/genisoimage.h
Log:
Applied vorlon's patch and changelog finalization

Modified: cdrkit/trunk/Changelog
===================================================================
--- cdrkit/trunk/Changelog	2006-12-29 15:14:46 UTC (rev 658)
+++ cdrkit/trunk/Changelog	2006-12-30 15:46:49 UTC (rev 659)
@@ -1,4 +1,4 @@
-cdrkit (1.1.1) UNRELEASED; urgency=low
+cdrkit (1.1.1) RELEASED; urgency=low
 
   * added geteltorito script from Rainer Krienke
 
@@ -10,19 +10,22 @@
     Linux and Cygwin
   * Open-By-Device-Letter mode on Cygwin
   * -msifile=... option to store -msinfo output reliably in a dedicated file
-  * clear profile names printing (using code from libburnia)
+  * clear profile names printing (using code from libburnia, thanks to Thomas
+    Schmidt)
   * cleanup with unused embedded CVS revision strings from Schilling and
     more gcc -Wall correctness
   * reenabled -format functionality (bug in program function control flow)
   * get maximum DMA buffer size from sysfs on Linux, where possible
   * enable BURN-Free by default where possible
-  * genisoimage documentation updates, mkisofs name changes
   * setting argv[0] to wodim if someone is cheating and calls it as cdrecord.
     Avoids confusion and printing of the wrong app name in the help output.
-  * more table formating fixes in icedax.1
+  * more documentation updates WRT cdda2wav->icedax renaming, more table
+    formating fixes in icedax.1
+  * genisoimage documentation updates, mkisofs name changes
 
   [ Thomas Schmidt ]
   * workaround for older libmagic API
+  * code for clear profile name mapping
 
   [ Peter Samuelson ]
   * expand where genisoimage looks for the config file - same places
@@ -30,11 +33,14 @@
   * major cleanups to genisoimage.1 manpage; split out the part about
     .genisoimagerc to a new page genisoimagerc.5.
 
+  [ Steve Langasek ]
+  * allow hppa and alpha boot code to coexist in one ISO image
+
   [ Arkadiusz Miskiewicz ]
   * Fake prefix line in the version output of readom to keep compatibility
     with frontends
 
- -- Eduard Bloch <blade at debian.org>  Sat,  2 Dec 2006 23:05:33 +0100
+ -- Eduard Bloch <blade at debian.org>  Sat, 30 Dec 2006 16:45:40 +0100
 
 cdrkit (1.1.0) RELEASED; urgency=medium
 

Modified: cdrkit/trunk/debian/changelog
===================================================================
--- cdrkit/trunk/debian/changelog	2006-12-29 15:14:46 UTC (rev 658)
+++ cdrkit/trunk/debian/changelog	2006-12-30 15:46:49 UTC (rev 659)
@@ -1,4 +1,4 @@
-cdrkit (9:1.1.1-1) unstable; urgency=low
+cdrkit (9:1.1.1-1) unstable; urgency=medium
 
   * New upstream version
     + more verbose abort message if track is specified with some maintainance
@@ -10,12 +10,13 @@
     + icedax.1 updates, cdda2wav specific expalanations removed
       (closes: #401821)
     + getting maximum DMA transfer size from sysfs (closes: #377069)
+    + coexisting hppa/alpha boot code possible now (closes: #404986)
   * Add mkzftree binary again (sorry... closes: #402750)
   * Add /usr/bin/readcd -> readom compatibility symlink 
     (closes: #403536, #403193) and set conflict with older xcdroast package
     revisions (closes: #401791)
 
- -- Eduard Bloch <blade at debian.org>  Sat,  2 Dec 2006 23:05:18 +0100
+ -- Eduard Bloch <blade at debian.org>  Sat, 30 Dec 2006 16:45:31 +0100
 
 cdrkit (9:1.1.0-1) unstable; urgency=low
 

Modified: cdrkit/trunk/genisoimage/boot-alpha.c
===================================================================
--- cdrkit/trunk/genisoimage/boot-alpha.c	2006-12-29 15:14:46 UTC (rev 658)
+++ cdrkit/trunk/genisoimage/boot-alpha.c	2006-12-30 15:46:49 UTC (rev 659)
@@ -47,8 +47,12 @@
 
         int     add_boot_alpha_filename(char *filename);
 static  int     boot_alpha_write(FILE *outfile);
+static  int     boot_alpha_hppa_write(FILE *outfile);
 static  char   *boot_file_name = NULL;
 
+unsigned long long alpha_hppa_boot_sector[256]; /* One (ISO) sector */
+int boot_sector_initialized = 0;
+
 #define BOOT_STRING "Linux/Alpha aboot for ISO filesystem."
 
 /* Simple function: store the filename to be used later when we need
@@ -61,17 +65,17 @@
 
 static int boot_alpha_write(FILE *outfile)
 {
-    unsigned long long boot_sector[256]; /* One (ISO) sector */
-    unsigned long long sum = 0;
-	struct directory_entry	*boot_file;	/* Boot file we need to search for */
+    struct directory_entry	*boot_file;	/* Boot file we need to search for */
     unsigned long length = 0;
     unsigned long extent = 0;
-    int i = 0;
 
-    memset(boot_sector, 0, sizeof(boot_sector));    
+    if (!boot_sector_initialized) {
+	memset(alpha_hppa_boot_sector, 0, sizeof(alpha_hppa_boot_sector));
+	boot_sector_initialized = 1;
+    }
 
     /* Write the text header into the boot sector */
-    strcpy((char *)boot_sector, BOOT_STRING);
+    strcpy((char *)alpha_hppa_boot_sector, BOOT_STRING);
 
     /* Find the dir entry for the boot file by walking our file list */
     boot_file = search_tree_file(root, boot_file_name);
@@ -103,22 +107,31 @@
 
     /* Now write those values into the appropriate area of the boot
        sector in LITTLE ENDIAN format. */
-    write_le64(length, (unsigned char *)(unsigned long long *)&boot_sector[60]);
-    write_le64(extent, (unsigned char *)&boot_sector[61]);
+    write_le64(length, (unsigned char *)&alpha_hppa_boot_sector[60]);
+    write_le64(extent, (unsigned char *)&alpha_hppa_boot_sector[61]);
 
+    return 0;
+}
+
+static int boot_alpha_hppa_write(FILE *outfile)
+{
+    unsigned long long sum = 0;
+    int i = 0;
+
     /* Now generate a checksum of the first 504 bytes of the boot
-       sector and place it in boot_sector[63]. Isomarkboot currently
+       sector and place it in alpha_hppa_boot_sector[63]. Isomarkboot currently
        gets this wrong and will not work on big-endian systems! */
     for (i = 0; i < 63; i++)
-        sum += read_le64((unsigned char *)&boot_sector[i]);
+        sum += read_le64((unsigned char *)&alpha_hppa_boot_sector[i]);
 
-    write_le64(sum, (unsigned char *)&boot_sector[63]);
+    write_le64(sum, (unsigned char *)&alpha_hppa_boot_sector[63]);
 
-    jtwrite(boot_sector, sizeof(boot_sector), 1, 0, FALSE);
-    xfwrite(boot_sector, sizeof(boot_sector), 1, outfile, 0, FALSE);
+    jtwrite(alpha_hppa_boot_sector, sizeof(alpha_hppa_boot_sector), 1, 0, FALSE);
+    xfwrite(alpha_hppa_boot_sector, sizeof(alpha_hppa_boot_sector), 1, outfile, 0, FALSE);
     last_extent_written++;
 
     return 0;
 }
 
-struct output_fragment alphaboot_desc = {NULL, oneblock_size, NULL, boot_alpha_write, "alpha boot block"};
+struct output_fragment alphaboot_desc = {NULL, NULL, NULL, boot_alpha_write, "alpha boot block"};
+struct output_fragment alpha_hppa_boot_desc = {NULL, oneblock_size, NULL, boot_alpha_hppa_write, "alpha/hppa boot block"};

Modified: cdrkit/trunk/genisoimage/boot-hppa.c
===================================================================
--- cdrkit/trunk/genisoimage/boot-hppa.c	2006-12-29 15:14:46 UTC (rev 658)
+++ cdrkit/trunk/genisoimage/boot-hppa.c	2006-12-30 15:46:49 UTC (rev 659)
@@ -53,6 +53,9 @@
 #include <schily.h>
 #include "endianconv.h"
 
+extern long long alpha_hppa_boot_sector[256];
+extern int boot_sector_initialized;
+
 int     add_boot_hppa_cmdline(char *cmdline);
 int     add_boot_hppa_kernel_32(char *filename);
 int     add_boot_hppa_kernel_64(char *filename);
@@ -129,14 +132,19 @@
 
 static int boot_hppa_write(FILE *outfile)
 {
-    unsigned char boot_sector[2048]; /* One (ISO) sector */
-	struct directory_entry	*boot_file;	/* Boot file we need to search for */
+    struct directory_entry	*boot_file;	/* Boot file we need to search for */
     unsigned long length = 0;
     unsigned long extent = 0;
+    unsigned char *boot_sector = (unsigned char *) alpha_hppa_boot_sector;
     int i = 0;
 
-    memset(boot_sector, 0, sizeof(boot_sector));    
+    if (!boot_sector_initialized) {
+	memset(alpha_hppa_boot_sector, 0, sizeof(alpha_hppa_boot_sector));
+	boot_sector_initialized = 1;
+    }
 
+    printf("Address is: %p\n",alpha_hppa_boot_sector);
+
     boot_sector[0] = 0x80;  /* magic */
     boot_sector[1] = 0x00;  /* magic */
     boot_sector[2] = 'P';
@@ -193,11 +201,7 @@
     write_be32(extent, &boot_sector[240]);
     write_be32(length, &boot_sector[244]);
 
-    jtwrite(boot_sector, sizeof(boot_sector), 1, 0, FALSE);
-    xfwrite(boot_sector, sizeof(boot_sector), 1, outfile, 0, FALSE);
-    last_extent_written++;
-
     return 0;
 }
 
-struct output_fragment hppaboot_desc = {NULL, oneblock_size, NULL, boot_hppa_write, "hppa boot block"};
+struct output_fragment hppaboot_desc = {NULL, NULL, NULL, boot_hppa_write, "hppa boot block"};

Modified: cdrkit/trunk/genisoimage/genisoimage.1
===================================================================
--- cdrkit/trunk/genisoimage/genisoimage.1	2006-12-29 15:14:46 UTC (rev 658)
+++ cdrkit/trunk/genisoimage/genisoimage.1	2006-12-30 15:46:49 UTC (rev 659)
@@ -2576,6 +2576,11 @@
 This results in a directory called
 .B RR_MOVED
 in the root directory of the CD. You cannot avoid this directory.
+.PP
+Many boot code options for different platforms are mutualy exclusive because
+the boot blocks cannot coexist, ie. different platforms share the same data
+locations in the image. See
+http://lists.debian.org/debian-cd/2006/12/msg00109.html for details.
 .\" ----------------------------------------
 .SH BUGS
 .PP

Modified: cdrkit/trunk/genisoimage/genisoimage.c
===================================================================
--- cdrkit/trunk/genisoimage/genisoimage.c	2006-12-29 15:14:46 UTC (rev 658)
+++ cdrkit/trunk/genisoimage/genisoimage.c	2006-12-30 15:46:49 UTC (rev 659)
@@ -3438,6 +3438,8 @@
 		outputlist_insert(&alphaboot_desc);
 	if (use_hppaboot)
 		outputlist_insert(&hppaboot_desc);
+	if (use_alphaboot || use_hppaboot)
+		outputlist_insert(&alpha_hppa_boot_desc);
 	if (use_mipsboot)
 		outputlist_insert(&mipsboot_desc);
 	if (use_mipselboot)

Modified: cdrkit/trunk/genisoimage/genisoimage.h
===================================================================
--- cdrkit/trunk/genisoimage/genisoimage.h	2006-12-29 15:14:46 UTC (rev 658)
+++ cdrkit/trunk/genisoimage/genisoimage.h	2006-12-30 15:46:49 UTC (rev 659)
@@ -203,6 +203,7 @@
 extern struct output_fragment strpath_desc;
 extern struct output_fragment alphaboot_desc;
 extern struct output_fragment hppaboot_desc;
+extern struct output_fragment alpha_hppa_boot_desc;
 extern struct output_fragment mipsboot_desc;
 extern struct output_fragment mipselboot_desc;
 




More information about the Debburn-changes mailing list