Hello community, here is the log from the commit of package wodim for openSUSE:Factory checked in at 2015-07-19 11:44:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wodim (Old) and /work/SRC/openSUSE:Factory/.wodim.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wodim" Changes: -------- --- /work/SRC/openSUSE:Factory/wodim/wodim.changes 2015-06-11 08:20:56.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.wodim.new/wodim.changes 2015-07-19 11:44:09.000000000 +0200 @@ -1,0 +2,6 @@ +Wed Jul 8 10:56:17 UTC 2015 - [email protected] + +- disable source download service, upstream download location + is dead + +------------------------------------------------------------------- @@ -10,0 +17,5 @@ + +------------------------------------------------------------------- +Fri Jan 30 12:53:47 UTC 2015 - [email protected] + +- add cdrkit-1.1.8-werror.patch, cdrkit-efi-boot.patch (fate#318444) New: ---- cdrkit-1.1.8-werror.patch cdrkit-efi-boot.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wodim.spec ++++++ --- /var/tmp/diff_new_pack.IBUKKl/_old 2015-07-19 11:44:10.000000000 +0200 +++ /var/tmp/diff_new_pack.IBUKKl/_new 2015-07-19 11:44:10.000000000 +0200 @@ -24,7 +24,7 @@ Group: Productivity/Multimedia/CD/Record Url: http://cdrkit.org/ -Source0: http://cdrkit.org/releases/cdrkit-%{version}.tar.gz +Source0: cdrkit-%{version}.tar.gz Source1: scan_scsi.linux Source2: cdinfo.c Source5: README.SUSE @@ -43,6 +43,8 @@ Patch5: genisoimage-multi-extent-fix-bnc615177.patch # PATCH-FIX-OPENSUSE cdrkit-pie.diff [email protected] -- wodim must be pie as users may set suid bit on it Patch6: cdrkit-pie.diff +Patch7: cdrkit-1.1.8-werror.patch +Patch8: cdrkit-efi-boot.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake @@ -120,6 +122,8 @@ %patch4 %patch5 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 # Fix perl path find . -type f -print0 | xargs -0 perl -pi -e 's#/usr/local/bin/perl#/usr/bin/perl#g' # Fix permissions (no executables in doc files) ++++++ _service ++++++ --- /var/tmp/diff_new_pack.IBUKKl/_old 2015-07-19 11:44:10.000000000 +0200 +++ /var/tmp/diff_new_pack.IBUKKl/_new 2015-07-19 11:44:10.000000000 +0200 @@ -1,6 +1,6 @@ <?xml version="1.0" ?> <services> - <service name="download_url" mode="localonly"> + <service name="download_url" mode="disabled"> <param name="protocol">http</param> <param name="host">cdrkit.org</param> <param name="path">/releases/cdrkit-1.1.11.tar.gz</param> ++++++ cdrkit-1.1.8-werror.patch ++++++ Index: cdrkit-1.1.11/wodim/wodim.c =================================================================== --- cdrkit-1.1.11.orig/wodim/wodim.c +++ cdrkit-1.1.11/wodim/wodim.c @@ -4089,7 +4089,7 @@ audioread(SCSI *usalp, cdr_t *dp, int fl read_scsi(usalp, buf, 1000, 1); printf("XXX:\n"); - write(1, buf, 512); /* FIXME: handle return value */ + do{int ret;ret=write(1, buf, 512);}while(0); /* FIXME: handle return value */ unload_media(usalp, dp, flags); comexit(0); #endif Index: cdrkit-1.1.11/wodim/isosize.c =================================================================== --- cdrkit-1.1.11.orig/wodim/isosize.c +++ cdrkit-1.1.11/wodim/isosize.c @@ -69,7 +69,7 @@ isosize(int f) vp = (struct iso9660_pr_voldesc *) &vd; do { - read(f, &vd, sizeof (vd)); /* FIXME: check return value */ + do{int ret;ret=read(f, &vd, sizeof (vd));}while(0); /* FIXME: check return value */ if (GET_UBYTE(vd.vd_type) == VD_PRIMARY) break; Index: cdrkit-1.1.11/icedax/toc.c =================================================================== --- cdrkit-1.1.11.orig/icedax/toc.c +++ cdrkit-1.1.11/icedax/toc.c @@ -1071,7 +1071,7 @@ static int handle_userchoice(char *p, un /* get user response. */ do { fprintf(stderr, "please choose one (0-%u): ", nr); - scanf("%u", &user_choice); /* FIXME: check return value */ + do{int ret;ret=scanf("%u", &user_choice);}while(0); /* FIXME: check return value */ } while (user_choice > nr); if (user_choice == nr) Index: cdrkit-1.1.11/genisoimage/diag/dump.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/diag/dump.c +++ cdrkit-1.1.11/genisoimage/diag/dump.c @@ -368,7 +368,7 @@ main(int argc, char *argv[]) do { if (file_addr < (off_t)0) file_addr = (off_t)0; showblock(1); - read(STDIN_FILENO, &c, 1); /* FIXME: check return value */ + do{int ret;ret=read(STDIN_FILENO, &c, 1);}while(0); /* FIXME: check return value */ if (c == 'a') file_addr -= PAGE; if (c == 'b') @@ -378,11 +378,11 @@ main(int argc, char *argv[]) printf("Enter new starting block (in hex):"); if (sizeof (file_addr) > sizeof (long)) { Llong ll; - scanf("%llx", &ll); /* FIXME: check return value */ + do{int ret;ret=scanf("%llx", &ll);}while(0); /* FIXME: check return value */ file_addr = (off_t)ll; } else { long l; - scanf("%lx", &l); /* FIXME: check return value */ + do{int ret;ret=scanf("%lx", &l);}while(0); /* FIXME: check return value */ file_addr = (off_t)l; } file_addr = file_addr << 11; @@ -392,7 +392,7 @@ main(int argc, char *argv[]) if (c == 'f') { crsr2(20, 1); printf("Enter new search string:"); - fgets((char *)search, sizeof (search), stdin); /* FIXME: check return value */ + do{char *ret;ret=fgets((char *)search, sizeof (search), stdin);}while(0); /* FIXME: check return value */ while (search[strlen((char *)search)-1] == '\n') search[strlen((char *)search)-1] = 0; crsr2(20, 1); Index: cdrkit-1.1.11/genisoimage/diag/isoinfo.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/diag/isoinfo.c +++ cdrkit-1.1.11/genisoimage/diag/isoinfo.c @@ -652,7 +652,7 @@ extract_file(struct iso_directory_record #endif len -= tlen; extent++; - write(STDOUT_FILENO, buff, tlen); /* FIXME: check return value */ + do{int ret;ret=write(STDOUT_FILENO, buff, tlen);}while(0); /* FIXME: check return value */ } } Index: cdrkit-1.1.11/genisoimage/diag/isodump.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/diag/isodump.c +++ cdrkit-1.1.11/genisoimage/diag/isodump.c @@ -655,7 +655,7 @@ main(int argc, char *argv[]) if (file_addr < 0) file_addr = (off_t)0; showblock(1); - read(STDIN_FILENO, &c, 1); /* FIXME: check return value */ + do{int ret;ret=read(STDIN_FILENO, &c, 1);}while(0); /* FIXME: check return value */ if (c == 'a') file_addr -= blocksize; if (c == 'b') @@ -665,11 +665,11 @@ main(int argc, char *argv[]) printf("Enter new starting block (in hex):"); if (sizeof (file_addr) > sizeof (long)) { Llong ll; - scanf("%llx", &ll); /* FIXME: check return value */ + do{int ret;ret=scanf("%llx", &ll);}while(0); /* FIXME: check return value */ file_addr = (off_t)ll; } else { long l; - scanf("%lx", &l); /* FIXME: check return value */ + do{int ret;ret=scanf("%lx", &l);}while(0); /* FIXME: check return value */ file_addr = (off_t)l; } file_addr = file_addr * blocksize; @@ -679,7 +679,7 @@ main(int argc, char *argv[]) if (c == 'f') { crsr2(20, 1); printf("Enter new search string:"); - fgets((char *)search, sizeof (search), stdin); /* FIXME: check return value */ + do{char *ret;ret=fgets((char *)search, sizeof (search), stdin);}while(0); /* FIXME: check return value */ while (search[strlen((char *)search)-1] == '\n') search[strlen((char *)search)-1] = 0; crsr2(20, 1); Index: cdrkit-1.1.11/genisoimage/diag/isovfy.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/diag/isovfy.c +++ cdrkit-1.1.11/genisoimage/diag/isovfy.c @@ -591,11 +591,11 @@ check_path_tables(int typel_extent, int readsecs(typel_extent * blocksize / 2048, typel, ISO_BLOCKS(path_table_size)); #else lseek(fileno(infile), (off_t)((off_t)typel_extent) * blocksize, SEEK_SET); - read(fileno(infile), typel, path_table_size); /* FIXME: check return value */ + do{int ret;ret=read(fileno(infile), typel, path_table_size);}while(0); /* FIXME: check return value */ #endif typem = (char *) malloc(path_table_size); lseek(fileno(infile), (off_t)((off_t)typem_extent) * blocksize, SEEK_SET); - read(fileno(infile), typem, path_table_size); /* FIXME: check return value */ + do{int ret;ret=read(fileno(infile), typem, path_table_size);}while(0); /* FIXME: check return value */ j = path_table_size; pnt = typel; Index: cdrkit-1.1.11/genisoimage/jte.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/jte.c +++ cdrkit-1.1.11/genisoimage/jte.c @@ -36,6 +36,8 @@ #include "vms.h" #endif +#include "md5.h" + /* Different types used in building our state list below */ #define JTET_FILE_MATCH 1 #define JTET_NOMATCH 2 @@ -625,7 +627,7 @@ static void flush_bz2_chunk(void *buffer err = BZ2_bzCompressInit(&c_stream, 9, 0, 0); comp_buf = malloc(2 * size); /* Worst case */ - c_stream.next_out = comp_buf; + c_stream.next_out = (char *)comp_buf; c_stream.avail_out = 2 * size; c_stream.next_in = buffer; c_stream.avail_in = size; @@ -673,7 +675,7 @@ static void write_compressed_chunk(unsig if (!uncomp_buf) { #ifdef USE_LIBSCHILY - comerr("failed to allocate %d bytes for template compression buffer\n", uncomp_size); + comerr("failed to allocate %d bytes for template compression buffer\n", (int)uncomp_size); #else fprintf(stderr, "failed to allocate %d bytes for template compression buffer\n", uncomp_size); exit(1); @@ -1014,8 +1016,8 @@ void write_jt_match_record(char *filenam #endif } if (first_block) - rsync64_sum = rsync64(buf, MIN_JIGDO_FILE_SIZE); - checksum_update(iso_context, buf, use); + rsync64_sum = rsync64((unsigned char *)buf, MIN_JIGDO_FILE_SIZE); + checksum_update(iso_context, (unsigned char *)buf, use); // mk_MD5Update(&iso_context, buf, use); remain -= use; first_block = 0; @@ -1028,7 +1030,7 @@ void write_jt_match_record(char *filenam { int pad_size = sector_size - (size % sector_size); memset(buf, 0, pad_size); - checksum_update(iso_context, buf, pad_size); + checksum_update(iso_context, (unsigned char *)buf, pad_size); // mk_MD5Update(&iso_context, buf, pad_size); } @@ -1036,7 +1038,7 @@ void write_jt_match_record(char *filenam if (size % sector_size) { int pad_size = sector_size - (size % sector_size); - write_compressed_chunk(buf, pad_size); + write_compressed_chunk((unsigned char *)buf, pad_size); add_unmatched_entry(pad_size); } } Index: cdrkit-1.1.11/genisoimage/eltorito.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/eltorito.c +++ cdrkit-1.1.11/genisoimage/eltorito.c @@ -660,7 +660,7 @@ fill_boot_desc(struct eltorito_defaultbo set_731(bi_table.bi_length, de->size); set_731(bi_table.bi_csum, bi_checksum); - write(bootimage, &bi_table, sizeof (bi_table)); /* FIXME: check return value */ + do{int ret;ret=write(bootimage, &bi_table, sizeof (bi_table));}while(0); /* FIXME: check return value */ close(bootimage); } }/* fill_boot_desc(... */ ++++++ cdrkit-efi-boot.patch ++++++ Index: cdrkit-1.1.11/doc/icedax/tracknames.pl =================================================================== --- cdrkit-1.1.11.orig/doc/icedax/tracknames.pl +++ cdrkit-1.1.11/doc/icedax/tracknames.pl @@ -1,4 +1,4 @@ -#!/usr/local/bin/perl +#!/usr/bin/perl # A quick perl hack to get rename files pulled in with icedax. # by [email protected] # Index: cdrkit-1.1.11/genisoimage/eltorito.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/eltorito.c +++ cdrkit-1.1.11/genisoimage/eltorito.c @@ -59,7 +59,7 @@ static void get_torito_desc(struct eltor static void fill_boot_desc(struct eltorito_defaultboot_entry *boot_desc_entry, struct eltorito_boot_entry_info *boot_entry); void get_boot_entry(void); -void new_boot_entry(void); +void new_boot_entry(); static int tvd_write(FILE *outfile); @@ -283,6 +283,7 @@ get_torito_desc(struct eltorito_boot_des int i; int offset; struct eltorito_defaultboot_entry boot_desc_record; + struct eltorito_sectionheader_entry section_header; memset(boot_desc, 0, sizeof (*boot_desc)); boot_desc->type[0] = 0; @@ -317,7 +318,7 @@ get_torito_desc(struct eltorito_boot_des */ memset(&valid_desc, 0, sizeof (valid_desc)); valid_desc.headerid[0] = 1; - valid_desc.arch[0] = EL_TORITO_ARCH_x86; + valid_desc.arch[0] = first_boot_entry->arch; /* * we'll shove start of publisher id into id field, @@ -347,10 +348,53 @@ get_torito_desc(struct eltorito_boot_des /* now write it to the virtual boot catalog */ memcpy(de2->table, &valid_desc, 32); - for (current_boot_entry = first_boot_entry, offset = sizeof (valid_desc); - current_boot_entry != NULL; - current_boot_entry = current_boot_entry->next, - offset += sizeof (boot_desc_record)) { + /* Fill the first entry, since it's special and already has the + * matching header via the validation header... */ + offset = sizeof (valid_desc); + current_boot_entry = first_boot_entry; + + if (offset >= SECTOR_SIZE) { +#ifdef USE_LIBSCHILY + comerrno(EX_BAD, "Too many El Torito boot entries\n"); +#else + fprintf(stderr, "Too many El Torito boot entries\n"); + exit(1); +#endif + } + fill_boot_desc(&boot_desc_record, current_boot_entry); + memcpy(de2->table + offset, &boot_desc_record, + sizeof (boot_desc_record)); + + offset += sizeof(boot_desc_record); + + for (current_boot_entry = current_boot_entry->next; + current_boot_entry != NULL; + current_boot_entry = current_boot_entry->next) { + struct eltorito_sectionheader_entry section_header; + + if (offset >= SECTOR_SIZE) { +#ifdef USE_LIBSCHILY + comerrno(EX_BAD, + "Too many El Torito boot entries\n"); +#else + fprintf(stderr, + "Too many El Torito boot entries\n"); + exit(1); +#endif + } + + memset(§ion_header, '\0', sizeof(section_header)); + if (current_boot_entry->next) + section_header.headerid[0] = EL_TORITO_SECTION_HEADER; + else + section_header.headerid[0] = EL_TORITO_LAST_SECTION_HEADER; + + section_header.arch[0] = current_boot_entry->arch; + set_721(section_header.num_entries, 1); + + memcpy(de2->table + offset, §ion_header, + sizeof(section_header)); + offset += sizeof(section_header); if (offset >= SECTOR_SIZE) { #ifdef USE_LIBSCHILY @@ -365,6 +409,8 @@ get_torito_desc(struct eltorito_boot_des fill_boot_desc(&boot_desc_record, current_boot_entry); memcpy(de2->table + offset, &boot_desc_record, sizeof (boot_desc_record)); + offset += sizeof (boot_desc_record); + } }/* get_torito_desc(... */ Index: cdrkit-1.1.11/genisoimage/genisoimage.c =================================================================== --- cdrkit-1.1.11.orig/genisoimage/genisoimage.c +++ cdrkit-1.1.11/genisoimage/genisoimage.c @@ -48,6 +48,7 @@ #include <mconfig.h> #include "genisoimage.h" +#include "iso9660.h" #include <errno.h> #include <timedefs.h> #include <fctldefs.h> @@ -529,6 +530,8 @@ static const struct ld_option ld_options '\0', NULL, "Set debug flag", ONE_DASH}, {{"eltorito-boot", required_argument, NULL, 'b'}, 'b', "FILE", "Set El Torito boot image name", ONE_DASH}, + {{"efi-boot", required_argument, NULL, 'e'}, + 'e', "FILE", "Set EFI boot image name", ONE_DASH}, {{"eltorito-alt-boot", no_argument, NULL, OPTION_ALT_BOOT}, '\0', NULL, "Start specifying alternative El Torito boot parameters", ONE_DASH}, {{"sparc-boot", required_argument, NULL, 'B'}, @@ -1540,6 +1543,7 @@ int main(int argc, char *argv[]) all_files = 0; break; case 'b': + case 'e': do_sort++; /* We sort bootcat/botimage */ use_eltorito++; boot_image = optarg; /* pathname of the boot image */ @@ -1555,6 +1559,10 @@ int main(int argc, char *argv[]) #endif } get_boot_entry(); + if (c == 'e') + current_boot_entry->arch = EL_TORITO_ARCH_EFI; + else + current_boot_entry->arch = EL_TORITO_ARCH_x86; current_boot_entry->boot_image = boot_image; break; case OPTION_ALT_BOOT: Index: cdrkit-1.1.11/genisoimage/genisoimage.h =================================================================== --- cdrkit-1.1.11.orig/genisoimage/genisoimage.h +++ cdrkit-1.1.11/genisoimage/genisoimage.h @@ -297,6 +297,7 @@ struct deferred_write { struct eltorito_boot_entry_info { struct eltorito_boot_entry_info *next; char *boot_image; + char arch; int not_bootable; int no_emul_boot; int hard_disk_boot; Index: cdrkit-1.1.11/genisoimage/iso9660.h =================================================================== --- cdrkit-1.1.11.orig/genisoimage/iso9660.h +++ cdrkit-1.1.11/genisoimage/iso9660.h @@ -62,10 +62,14 @@ struct iso_volume_descriptor { #define EL_TORITO_ARCH_x86 0 #define EL_TORITO_ARCH_PPC 1 #define EL_TORITO_ARCH_MAC 2 +#define EL_TORITO_ARCH_EFI 0xef #define EL_TORITO_BOOTABLE 0x88 #define EL_TORITO_NOT_BOOTABLE 0 +#define EL_TORITO_SECTION_HEADER 0x90 +#define EL_TORITO_LAST_SECTION_HEADER 0x91 + #define EL_TORITO_MEDIA_NOEMUL 0 #define EL_TORITO_MEDIA_12FLOP 1 #define EL_TORITO_MEDIA_144FLOP 2 @@ -173,7 +177,7 @@ struct eltorito_validation_entry { struct eltorito_defaultboot_entry { char boot_id [ISODCL(1, 1)]; /* 711 */ char boot_media [ISODCL(2, 2)]; - char loadseg [ISODCL(3, 4)]; /* 711 */ + char loadseg [ISODCL(3, 4)]; /* 712 */ char sys_type [ISODCL(5, 5)]; char pad1 [ISODCL(6, 6)]; char nsect [ISODCL(7, 8)]; @@ -181,6 +185,14 @@ struct eltorito_defaultboot_entry { char pad2 [ISODCL(13, 32)]; }; +/* El Torito Section Header Entry in boot catalog */ +struct eltorito_sectionheader_entry { + char headerid [ISODCL(1, 1)]; /* 711 */ + char arch [ISODCL(2, 2)]; + char num_entries [ISODCL(3, 4)]; /* 711 */ + char id [ISODCL(5, 32)]; +}; + /* * XXX JS: The next two structures have odd lengths! * Some compilers (e.g. on Sun3/mc68020) padd the structures to even length.
