From 1b7c5495ad3c81caab8731eef934578961208299 Mon Sep 17 00:00:00 2001 From: Dmitry Butskoy Date: Sep 11 2006 12:29:54 +0000 Subject: *** empty log message *** --- diff --git a/dvdisaster-0.70.2a.patch b/dvdisaster-0.70.2a.patch new file mode 100644 index 0000000..5a76fc0 --- /dev/null +++ b/dvdisaster-0.70.2a.patch @@ -0,0 +1,174 @@ +diff -Naur dvdisaster-0.70/CHANGELOG dvdisaster-0.70.2/CHANGELOG +--- dvdisaster-0.70/CHANGELOG 2006-07-30 13:55:57.000000000 +0200 ++++ dvdisaster-0.70.2/CHANGELOG 2006-09-08 21:50:10.000000000 +0200 +@@ -1,4 +1,8 @@ + ++0.70 (pl2) ++ - fixed crash by inappropriate g_free() on Pango layout (thanks to Dmitry ++ for pointing this out) ++ + 0.70 (pl-1) 30-07-2006 + - fixed a bug in read-adaptive for RS02 which would sometimes prevent it + from properly restarting a previously interrupted reading session. +diff -Naur dvdisaster-0.70/closure.c dvdisaster-0.70.2/closure.c +--- dvdisaster-0.70/closure.c 2006-07-30 12:05:22.000000000 +0200 ++++ dvdisaster-0.70.2/closure.c 2006-09-03 13:44:23.000000000 +0200 +@@ -590,6 +590,7 @@ + + cond_free(Closure->methodName); + cond_free(Closure->dotFile); ++ cond_free(Closure->logFile); + cond_free(Closure->binDir); + cond_free(Closure->docDir); + cond_free(Closure->browser); +diff -Naur dvdisaster-0.70/configure dvdisaster-0.70.2/configure +--- dvdisaster-0.70/configure 2006-07-09 20:05:33.000000000 +0200 ++++ dvdisaster-0.70.2/configure 2006-07-30 20:07:06.000000000 +0200 +@@ -21,7 +21,7 @@ + + PACKAGE dvdisaster 0.70 + +-DEFINE_STRING RELEASE_MICRO "1" ++DEFINE_STRING RELEASE_MICRO "2" + DEFINE_STRING RELEASE_STATUS "patch" + #DEFINE_STRING RELEASE_STATUS "devel" + #DEFINE_STRING RELEASE_STATUS "rc" +diff -Naur dvdisaster-0.70/curve.c dvdisaster-0.70.2/curve.c +--- dvdisaster-0.70/curve.c 2006-06-15 18:16:50.000000000 +0200 ++++ dvdisaster-0.70.2/curve.c 2006-09-08 21:39:38.000000000 +0200 +@@ -33,7 +33,7 @@ + { Curve *curve = g_malloc0(sizeof(Curve)); + + curve->widget = widget; +- curve->layout = gtk_widget_create_pango_layout(widget, NULL); REMEMBER(curve->layout); ++ curve->layout = gtk_widget_create_pango_layout(widget, NULL); + curve->leftLabel = g_strdup(left_label); + curve->leftFormat = g_strdup(left_format); + curve->bottomFormat = bottom_format; +@@ -57,7 +57,7 @@ + + void FreeCurve(Curve *curve) + { +- g_free(curve->layout); ++ g_object_unref(curve->layout); + g_free(curve->leftLabel); + g_free(curve->leftFormat); + g_free(curve->fvalue); +diff -Naur dvdisaster-0.70/ecc-rs01.c dvdisaster-0.70.2/ecc-rs01.c +--- dvdisaster-0.70/ecc-rs01.c 2006-04-17 20:47:00.000000000 +0200 ++++ dvdisaster-0.70.2/ecc-rs01.c 2006-09-08 21:45:03.000000000 +0200 +@@ -72,14 +72,14 @@ + + if(wl) + { if(wl->fixCurve) FreeCurve(wl->fixCurve); +- g_free(method->widgetList); ++ if(method->widgetList) ++ g_free(method->widgetList); + + if(wl->cmpSpiral) + FreeSpiral(wl->cmpSpiral); + + if(wl->cmpLayout) +- g_free(wl->cmpLayout); +- ++ g_object_unref(wl->cmpLayout); + } + } + +diff -Naur dvdisaster-0.70/ecc-rs02.c dvdisaster-0.70.2/ecc-rs02.c +--- dvdisaster-0.70/ecc-rs02.c 2006-04-17 23:48:00.000000000 +0200 ++++ dvdisaster-0.70.2/ecc-rs02.c 2006-09-08 21:46:08.000000000 +0200 +@@ -24,14 +24,6 @@ + #include "rs02-includes.h" + + /*** +- *** The RS02 codec is work in progress. +- *** +- * Do not use for production work; +- * do not assume created .ecc data and images to be compatible with +- * the final release! +- */ +- +-/*** + *** Method registration + ***/ + +@@ -78,8 +70,16 @@ + { RS02Widgets *wl = (RS02Widgets*)method->widgetList; + + if(wl) +- { +- g_free(method->widgetList); ++ { if(wl->fixCurve) FreeCurve(wl->fixCurve); ++ if(method->widgetList) ++ g_free(method->widgetList); ++ ++ if(wl->cmpSpiral) ++ FreeSpiral(wl->cmpSpiral); ++ ++ if(wl->cmpLayout) ++ g_object_unref(wl->cmpLayout); ++ + } + } + +diff -Naur dvdisaster-0.70/fingerprints.md5 dvdisaster-0.70.2/fingerprints.md5 +--- dvdisaster-0.70/fingerprints.md5 2006-07-30 15:28:31.000000000 +0200 ++++ dvdisaster-0.70.2/fingerprints.md5 2006-09-08 21:51:00.000000000 +0200 +@@ -6,13 +6,13 @@ + 48a04499df58f9aad0923e8c5409513b *scsi-layer.h + f4be9160aae464f3469b2f3815be3670 *udf.h + daa7ec033afb7fcfa5e4591cdda6ffac *bitmap.c +-0c5f0a45dfee559be1b553e5dab042f0 *closure.c ++4d3291f5009fc27cb9f08a2101db901f *closure.c + e0c423fffb94956009695231decaa295 *crc32.c +-c8264cf87e441cd33b55611988a58548 *curve.c ++f6bfabe0fea5d9cc05500692056d9a77 *curve.c + bb2e84a8b150cd40a8ee58215c341eb9 *debug.c + 889d05ae305a7412c7a816e12af8ef2b *dvdisaster.c +-61bd5e47034125cb7062e15eeb68c62c *ecc-rs01.c +-717006a7b52a55416d526ca5734cdf61 *ecc-rs02.c ++445852905059a696fc89b86015eefc72 *ecc-rs01.c ++e3556e136b8303501536314332fb0df2 *ecc-rs02.c + 255f47cdc89a7edb4c091a5e92379550 *endian.c + 547b08e6c859b478d36ee85db8c234bc *file.c + b1a8a70dd7cff1fe05c263e8a2c7b2ed *galois.c +@@ -36,12 +36,12 @@ + 1edd34d022eaea0ceb3b438754cf0d67 *rs01-common.c + 9fe8a9262fe22a60ebe505c5a3fc39f1 *rs01-create.c + b69dfaef06f296edc503b53d8461dac4 *rs01-fix.c +-b1465b955acea866d333ef214902e714 *rs01-verify.c ++888ed1599f9d6aca99e00e631539e08a *rs01-verify.c + f2a5659cf67864e7395949acacbb5858 *rs01-window.c + 5b73969c64f95c3decc26e941743a943 *rs02-common.c + 7493ec6424c5315b73625d55eb4fc882 *rs02-create.c + 04e1f02fbf762aeef2f984617be686ad *rs02-fix.c +-40c6efacc4c0d2b716af6d884ab1549b *rs02-verify.c ++f747d0e89474d40f3833da319fcdc88b *rs02-verify.c + 6a12091704c2ded29f3f7ef64c6e1dab *rs02-window.c + cc85e2cdb2d8a2b9cd9544c38bc459ed *scsi-darwin.c + b826f04c5a5f28c912f1a9eec100a670 *scsi-freebsd.c +diff -Naur dvdisaster-0.70/rs01-verify.c dvdisaster-0.70.2/rs01-verify.c +--- dvdisaster-0.70/rs01-verify.c 2006-06-18 13:16:06.000000000 +0200 ++++ dvdisaster-0.70.2/rs01-verify.c 2006-09-08 21:41:28.000000000 +0200 +@@ -139,7 +139,7 @@ + + if(!wl->cmpLayout) + { SetSpiralWidget(wl->cmpSpiral, widget); +- wl->cmpLayout = gtk_widget_create_pango_layout(widget, NULL); REMEMBER(wl->cmpLayout); ++ wl->cmpLayout = gtk_widget_create_pango_layout(widget, NULL); + } + + SetText(wl->cmpLayout, _("Missing sectors"), &w, &h); +diff -Naur dvdisaster-0.70/rs02-verify.c dvdisaster-0.70.2/rs02-verify.c +--- dvdisaster-0.70/rs02-verify.c 2006-07-29 21:00:33.000000000 +0200 ++++ dvdisaster-0.70.2/rs02-verify.c 2006-09-08 21:46:24.000000000 +0200 +@@ -136,7 +136,7 @@ + + if(!wl->cmpLayout) + { SetSpiralWidget(wl->cmpSpiral, widget); +- wl->cmpLayout = gtk_widget_create_pango_layout(widget, NULL); REMEMBER(wl->cmpLayout); ++ wl->cmpLayout = gtk_widget_create_pango_layout(widget, NULL); + } + + SetText(wl->cmpLayout, _("Missing sectors"), &w, &h); diff --git a/dvdisaster-0.70.2b.patch b/dvdisaster-0.70.2b.patch new file mode 100644 index 0000000..140ea0c --- /dev/null +++ b/dvdisaster-0.70.2b.patch @@ -0,0 +1,205 @@ +diff -Naur dvdisaster-0.70/CHANGELOG dvdisaster-0.70.2/CHANGELOG +--- dvdisaster-0.70/CHANGELOG 2006-09-09 14:22:34.590160232 +0200 ++++ dvdisaster-0.70.2/CHANGELOG 2006-09-09 13:21:25.000000000 +0200 +@@ -2,6 +2,8 @@ + 0.70 (pl2) + - fixed crash by inappropriate g_free() on Pango layout (thanks to Dmitry + for pointing this out) ++ - fixed pngpack decoding failure on big endian machines (thanks again to ++ Dmitry) + + 0.70 (pl-1) 30-07-2006 + - fixed a bug in read-adaptive for RS02 which would sometimes prevent it +diff -Naur dvdisaster-0.70/tools/configure dvdisaster-0.70.2/tools/configure +--- dvdisaster-0.70/tools/configure 2006-04-18 22:50:00.000000000 +0200 ++++ dvdisaster-0.70.2/tools/configure 2006-09-09 13:17:50.000000000 +0200 +@@ -19,7 +19,7 @@ + + # Set the package name and version + +-PACKAGE pngpack 0.10 ++PACKAGE pngpack 0.11 + + # Check for some essential tools. + +@@ -43,6 +43,11 @@ + REQUIRE_INCLUDE png.h png + REQUIRE_LIBRARY png png_sig_cmp png + ++# Byte order ++ ++echo ++CHECK_ENDIAN ++ + # Do not proceed further if in --help mode + + if test -n "$cfg_help_mode"; then +diff -Naur dvdisaster-0.70/tools/pngpack.c dvdisaster-0.70.2/tools/pngpack.c +--- dvdisaster-0.70/tools/pngpack.c 2006-05-21 18:58:45.000000000 +0200 ++++ dvdisaster-0.70.2/tools/pngpack.c 2006-09-09 14:15:28.131991728 +0200 +@@ -55,6 +55,14 @@ + #include "exdll.h" + #endif + ++guint32 SwapBytes32(guint32 in) ++{ ++ return ++ ((in & 0xff000000) >> 24) ++ | ((in & 0x00ff0000) >> 8) ++ | ((in & 0x0000ff00) << 8) ++ | ((in & 0x000000ff) << 24); ++} + + /* + * Tell user that current action was aborted due to a serious error. +@@ -65,12 +73,12 @@ + + /*** Show message depending on commandline / GUI mode */ + +- fprintf(stderr, "*\n* pngpack - can not continue:\n*\n"); ++ fprintf(stdout, "*\n* pngpack - can not continue:\n*\n"); + va_start(argp, format); +- vfprintf(stderr, format, argp); ++ vfprintf(stdout, format, argp); + va_end(argp); +- fprintf(stderr, "\n\n"); +- fflush(stderr); ++ fprintf(stdout, "\n\n"); ++ fflush(stdout); + + exit(EXIT_FAILURE); + } +@@ -125,8 +133,8 @@ + /* stat ppm file */ + + if(stat(name, &mystat) == -1) +- { fprintf(stderr, "COULD NOT STAT %s!\n", name); +- fflush(stderr); ++ { fprintf(stdout, "COULD NOT STAT %s!\n", name); ++ fflush(stdout); + return NULL; + } + +@@ -139,8 +147,8 @@ + + pi->file = fopen(name, "rb"); + if(!pi->file) +- { fprintf(stderr, "COULD NOT OPEN %s!\n", name); +- fflush(stderr); ++ { fprintf(stdout, "COULD NOT OPEN %s!\n", name); ++ fflush(stdout); + return NULL; + } + +@@ -149,8 +157,8 @@ + fread(buf, 1, 8, pi->file); + if(png_sig_cmp(buf, 0, 8)) + { fclose(pi->file); +- fprintf(stderr, "%s is not a .png file!\n", name); +- fflush(stderr); ++ fprintf(stdout, "%s is not a .png file!\n", name); ++ fflush(stdout); + return NULL; + } + +@@ -164,8 +172,8 @@ + + if(setjmp(png_jmpbuf(pi->png_read))) + { free_image(pi); +- fprintf(stderr, "error decoding .png file!\n"); +- fflush(stderr); ++ fprintf(stdout, "error decoding .png file!\n"); ++ fflush(stdout); + return NULL; + } + +@@ -185,8 +193,8 @@ + + if(depth != 8) + { free_image(pi); +- fprintf(stderr, ", ILLEGAL DEPTH: %d\n",depth); +- fflush(stderr); ++ fprintf(stdout, ", ILLEGAL DEPTH: %d\n",depth); ++ fflush(stdout); + return NULL; + } + +@@ -256,8 +264,8 @@ + if(setjmp(png_jmpbuf(pi->png_write))) + { png_destroy_write_struct(&pi->png_write, &pi->png_info); + fclose(pi->file); +- fprintf(stderr, "error creating .png file!\n"); +- fflush(stderr); ++ fprintf(stdout, "error creating .png file!\n"); ++ fflush(stdout); + return; + } + +@@ -317,21 +325,11 @@ + if(!file) + Stop("Could not open %s: %s\n",name,strerror(errno)); + +-#if 0 + fprintf(file, "P6\n" + "# CREATOR: pngpack-%s\n" + "%d %d\n" + "255\n", + VERSION, pi->width, pi->height); +-#endif +- +-#if 1 +- fprintf(file, "P6\n" +- "# CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2)\n" +- "%d %d\n" +- "255\n", +- pi->width, pi->height); +-#endif + + while(size--) + { putc((*pixel>>16)&0xff, file); +@@ -932,6 +930,7 @@ + { struct MD5Context md5ctxt; + unsigned char checksum[16]; + unsigned int oidx,i,*p; ++ unsigned int background; + int x=0, y=0; + + /* Clear the image */ +@@ -939,8 +938,15 @@ + i = pi->width * pi->height; + p = pi->image; + ++#ifdef HAVE_LITTLE_ENDIAN ++ background = pi->tile_background; ++ while(i--) ++ *p++ = background; ++#else ++ background = SwapBytes32(pi->tile_background); + while(i--) +- *p++ = pi->tile_background; ++ *p++ = background; ++#endif + + /* Render it */ + +@@ -958,7 +964,11 @@ + for(i=0; iwidth; i++) + for(j=0; jheight; j++) + if(t->image[i][j] != t->background) ++#ifdef HAVE_LITTLE_ENDIAN + PIXEL(pi, i+x, j+y) = t->image[i][j]; ++#else ++ PIXEL(pi, i+x, j+y) = SwapBytes32(t->image[i][j]); ++#endif + } + + /* verify md5sum */ +@@ -969,7 +979,7 @@ + + if(!memcmp(pi->checksum, checksum, 16)) + fprintf(stdout, "\n"); +- else fprintf(stderr, " - DECODING FAILURE (checksum error).\n"); ++ else fprintf(stdout, " - DECODING FAILURE (checksum error).\n"); + } + + /*** diff --git a/dvdisaster.spec b/dvdisaster.spec index e6c6c41..4e06ee2 100644 --- a/dvdisaster.spec +++ b/dvdisaster.spec @@ -57,7 +57,8 @@ poškodí. #make show -make %{?_smp_mflags} +# can not build locales with %{?_smp_mflags} +make %install