Commit 606d4178 authored by TANIGUCHI Takaki's avatar TANIGUCHI Takaki

Imported Upstream version 0.72.3

parent ab070f03
0.79.3 21-11-2010
- Switched Linux SCSI driver default to SG_IO ioctl().
- Michael Klein provided Altivec optimization for
the RS03 encoder and valuable hints for general
RS03 encoding speedup
- included Debian patches 04-manpage.patch,
06-remove-encoding-from-desktop-file.patch,
07-fix-spelling-errors-in-binaries.patch
- fixed and documented -n command line options for RS02.
Thanks to Jack Giles for noting this.
- reworked configure for current NetBSD release
- removed inofficial Solaris support
0.79.2 28-02-2010
Semantic Changes
The new missing sector marking method is now the default.
When interchanging images with dvdisaster 0.70 or older,
use --old-ds-marker or the respective setting under
Image/Image format in the preferences setting.
Changes
- RS03 encoding will check for defective sectors now
- fixed crash when aborting RS03 encoding
- made the new missing sector marking method the default
- confirmation dialogues for overwriting images and ecc files
are now configurable via preferences
0.79.1 07-02-2010
A word of caution: This version is still evolving and some parts
are not yet implemented. It may contain severe bugs and fail in
non-obvious ways, even in functions which worked in previous versions.
Do not process important data with this version and do
not keep images and error correction data for archival purposes;
that's what the stable version 0.72 is for.
Semantic Changes
- query-size option replaced with -a/--assume option.
command line default is now NOT to do exhaustive search
for RS02 information; add -a RS02 to enable it
(old behaviour: exhaustive check was on; required
--query-size=udf to disable it)
- same changes in the preferences dialogues:
"Image size" field replaced with
"Error correction data recognization" options.
Changes
- added MIN_TRANSFER_LEN and length sanity check as workaround
for buggy drive chipsets (thanks to R.G. for reporting this
and helping with debugging output)
- added -tq command line option as suggested by Mikhail Arefiev
- fixed alignment brokeness between 32bit and 64bit systems
in ecc header and crc sectors
- added RS03 encoding (GUI)
- added RS03 verifying (CLI and GUI)
- fixed RS02/RS03 crash when encoding invoked without image file
- added commandline RS03 encoding (singlethreaded/multithreaded)
- added RS03 decoding and verifying (CLI and GUI)
- fixed "typical uses" links in welcome screen (Thanks to C. Steigies)
- added warning when same files are selected for .iso
and error correction data (Thanks to A. Postkutscher
for suggesting this!)
- removed ASPI driver and ASPI/SPTI splitting logic
- removed 2GB file splitting
0.72 (pl3) 03-10-2011
- Volodymyr Bychkoviak found a problem when verifying
RS01 files which are larger than 2GB and provided a bugfix.
- Backported improved Windows locale detection from 0.79 branch.
- made package compile under OS X 10.6; updated OS X toolchain
to Gtk 2.24.
0.72 (pl-2) 31-10-2010
- fixed and documented -n command line options for RS02.
Thanks to Jack Giles for noting this.
- changed sources for clean compile on gcc 4.4.3
- Using the CDROM_SEND_PACKET ioctl() will hang parallel
SCSI adapters. Added tests to determine the SCSI bus type,
and switch to the SG_IO ioctl() when in doubt.
Thanks to S. Seidl and R. Manfredi for the respective bug reports.
Thanks to S. Seidl and R. Manfredi for the respective bug reports.<
- backported MIN_TRANSFER_LEN and length sanity check from 0.79.1
as a workaround for buggy drive chipsets (thanks to R.G.
for reporting this and helping with debugging output)
- backported "typical uses" link fix in welcome screen
(Thanks to C. Steigies)
- fixed recognition of dvdisaster 0.79 RS03-augmented image
- minor cosmetic changes for regression test compatibility
with 0.79
......@@ -83,11 +33,6 @@
- fixed crash when calling dvdisaster on command line without
specifying a file name on Mac OS X
0.72 (rc-2)
- fixed lockups in the spiral under Mac OS X
- fixed crash when calling dvdisaster on command line without
specifying a file name on Mac OS X
0.72 (rc-1) 11-04-2009
- Documentation and locale cleanup for en, de
- added app bundle creation for Mac OS X
......
......@@ -48,7 +48,6 @@ WITH_OPTIONS = $(CFG_WITH_OPTIONS)
OTHER_OPTIONS = $(CFG_OTHER_OPTIONS) -DVERSION=\"$(VERSION)\"
EXE_SUFFIX = $(CFG_EXE_SUFFIX)
SSE2_OPTIONS = $(CFG_SSE2_OPTIONS)
ALTIVEC_OPTIONS = $(CFG_ALTIVEC_OPTIONS)
LOCATIONS = -DSRCDIR=\"$(SRCDIR)\" -DBINDIR=\"$(BINDIR)\" -DDOCDIR=\"$(DOCSUBDIR)\" -DLOCALEDIR=\"$(LOCALEDIR)\"
COPTS = $(CFLAGS) $(LOCATIONS) $(SYS_OPTIONS) $(HAVE_OPTIONS) $(WITH_OPTIONS) $(OTHER_OPTIONS) $(INTL_INCL) $(CAM_INCL) $(GTK_CFLAGS)
......@@ -126,10 +125,6 @@ rs-encoder-sse2.o: rs-encoder-sse2.c
@echo "Compiling:" $*.c
@$(CC) $(SSE2_OPTIONS) $(COPTS) -c $*.c
rs-encoder-altivec.o: rs-encoder-altivec.c
@echo "Compiling:" $*.c
@$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c $*.c
locale:
@$(MAKE) --no-print-directory -C locale
......@@ -193,10 +188,7 @@ version.php:
@echo "<?php" >$(SRCDIR)/documentation/include/version.php
@echo "\$$version=\"$(VERSION)\";" >>$(SRCDIR)/documentation/include/version.php
@echo "\$$pkgname=\"$(PKGNAME)\";" >>$(SRCDIR)/documentation/include/version.php
@echo "\$$doc_dir=\"$(SRCDIR)/documentation\";" >>$(SRCDIR)/documentation/include/version.php
@echo "\$$cooked_version=\""$(CFG_FULL_VERSION)"\";" >>$(SRCDIR)/documentation/include/version.php
@echo "\$$have_experimental=\""$(CFG_HAVE_EXPERIMENTAL)"\";" >>$(SRCDIR)/documentation/include/version.php
@echo "\$$stable_version=\""$(CFG_STABLE_VERSION)"\";" >>$(SRCDIR)/documentation/include/version.php
@if test -e help-dialogs.h && grep UNMODIFIED help-dialogs.h >/dev/null; \
then echo "\$$modified_source=0;" >>$(SRCDIR)/documentation/include/version.php; \
else echo "\$$modified_source=1;" >>$(SRCDIR)/documentation/include/version.php; \
......@@ -211,17 +203,13 @@ mount-php:
echo "* HTML document directory (as specified by configure --phpmountdir).";\
echo "* You need sudo priviledges to execute the command below:";\
echo ;\
fi
if ! test -e $(PHPMOUNTDIR)/dvdisaster.de.1; then\
if ! test -e $(PHPMOUNTDIR); then sudo mkdir -p $(PHPMOUNTDIR); fi;\
sudo mount -o bind $(SRCDIR)/documentation $(PHPMOUNTDIR) ;\
fi
make version.php
if ! test -e $(SRCDIR)/documentation/de/thumbnails/good-cd.png; \
then make thumbnails; \
fi
for i in $(DOC_LOCALES); do \
chmod 777 $(SRCDIR)/documentation/$$i/feed $(SRCDIR)/documentation/$$i/feed/atom.xml; \
echo chmod 777 $(SRCDIR)/documentation/$$i/feed $(SRCDIR)/documentation/$$i/feed/atom.xml; \
done
make thumbnails
html: mount-php version.php
@echo -n "Producing html documentation... "
......@@ -258,8 +246,8 @@ help:
@echo
@echo "Documentation related:"
@echo "mount-php - mount documentation sub directory"
@echo "www-images- create package of .html and .png files"
@echo "www - create package of .html files only"
@echo "www-images- create package of .php and .png files"
@echo "www - create package of .php files only"
@echo "html - create html version of internet documentation"
@echo "localhtml - create html version for local documentation"
@echo "thumbnails- unconditionally recreate all thumbnails"
......@@ -307,7 +295,6 @@ show:
@echo "WITH_OPTIONS = " $(WITH_OPTIONS)
@echo "OTHER_OPTIONS= " $(OTHER_OPTIONS)
@echo "SSE2_OPTIONS = " $(SSE2_OPTIONS)
@echo "ALTIVEC_OPTIONS= " $(ALTIVEC_OPTIONS)
@echo
@echo "CFLAGS = " $(CFLAGS)
@echo "COPTS = " $(COPTS)
......@@ -319,7 +306,7 @@ show:
######################################################################
.PHONY : install uninstall clean distclean arch
.PHONY : www www-images php php-images
.PHONY : www www-images
.PHONY : srcdist macdist windist
install: dvdisaster images
......@@ -434,22 +421,19 @@ clean:
@if test -e $(SRCDIR)/papers; then \
$(MAKE) --no-print-directory -C papers clean; \
fi
@if test -e $(SRCDIR)/regtest; then \
$(MAKE) --no-print-directory -C regtest clean; \
fi
BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3`
arch: archclean time-stamp
@cd .. ; tar -c -z -f $(PKGNAME)-$(BUILD).tgz $(PKGNAME)
# TAG: online-docs
www: html
www: version.php
@cd documentation ; \
tar cjf ../../www.tar.bz2 pubkey.asc include/dvdisaster.css de/*.html en/*.html ru/*.html de/feed en/feed ru/feed
tar cjf ../../www.tar.bz2 pubkey.asc index.html include/dvdisaster.css de/*.html en/*.html ru/*.html
www-images: html
www-images: thumbnails version.php
@cd documentation ; \
tar cjf ../../www.tar.bz2 pubkey.asc include/dvdisaster.css de/*.html en/*.html ru/*.html images/*.png de/images/*.png de/thumbnails/*.png en/images/*.png en/thumbnails/*.png ru/images/*.png ru/thumbnails/*.png de/feed en/feed ru/feed
tar cjf ../../www.tar.bz2 pubkey.asc index.html include/dvdisaster.css de/*.html en/*.html ru/*.html images/*.png de/images/*.png de/thumbnails/*.png en/images/*.png en/thumbnails/*.png ru/images/*.png ru/thumbnails/*.png
INSTALL: documentation/install.template
@sed "s/@@PKGNAME/$(PKGNAME)/" <documentation/install.template >INSTALL
......
......@@ -148,11 +148,11 @@ Please change into a directory which is writeable
for you and unpack the source code archive:
user@host> cd /var/tmp
user@host> tar xjf dvdisaster-0.79.3.tar.bz2
user@host> tar xjf dvdisaster-0.72.1.tar.bz2
Then change into the newly created directory:
user@host> cd /var/tmp/dvdisaster-0.79.3
user@host> cd /var/tmp/dvdisaster-0.72.1
3.2. Configuring the package
----------------------------
......@@ -231,7 +231,7 @@ please remove the directory you have created as described
in section 3.1:
user@host> cd /var/tmp
user@host> rm -rf dvdisaster-0.79.3
user@host> rm -rf dvdisaster-0.72.1
5. Program documentation
......
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2010 Carsten Gnoerlich.
* Copyright (C) 2004-2011 Carsten Gnoerlich.
* Project home page: http://www.dvdisaster.com
* Email: carsten@dvdisaster.com -or- cgnoerlich@fsfe.org
*
......
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2010 Carsten Gnoerlich.
* Copyright (C) 2004-2011 Carsten Gnoerlich.
* Project home page: http://www.dvdisaster.com
* Email: carsten@dvdisaster.com -or- cgnoerlich@fsfe.org
*
......
#define BUILD 24
#define BDATE "20.11.10 (Samstag, 21:11)"
#define BUILD 4
#define BDATE "27.09.11 (Dienstag, 19:37)"
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2010 Carsten Gnoerlich.
* Copyright (C) 2004-2011 Carsten Gnoerlich.
* Project home page: http://www.dvdisaster.com
* Email: carsten@dvdisaster.com -or- cgnoerlich@fsfe.org
*
......@@ -197,7 +197,7 @@ static void get_base_dirs()
but tricky when app bundles are used. In that case we
use GTK_PATH to find out our location. */
#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD) || defined(SYS_UNKNOWN)
#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD) || defined(SYS_UNKNOWN) || defined(SYS_SOLARIS)
if(DirStat(BINDIR))
Closure->binDir = g_strdup(BINDIR);
......@@ -431,12 +431,12 @@ void ReadDotfile()
while(TRUE)
{ int n;
char symbol[41];
char *value;
char *value, *ignore;
/* Get first MAX_LINE_LEN bytes of line, discard the rest */
line[MAX_LINE_LEN-1] = 1;
fgets(line, MAX_LINE_LEN, dotfile);
ignore = fgets(line, MAX_LINE_LEN, dotfile);
if(!line[MAX_LINE_LEN-1]) /* line longer than buffer */
while(!feof(dotfile) && fgetc(dotfile) != '\n')
;
......@@ -482,7 +482,6 @@ void ReadDotfile()
if(!strcmp(symbol, "cache-size")) { Closure->cacheMB = atoi(value); continue; }
if(!strcmp(symbol, "cd-size")) { Closure->cdSize = Closure->savedCDSize = atoll(value); continue; }
if(!strcmp(symbol, "codec-threads")) { Closure->codecThreads = atoi(value); continue; }
if(!strcmp(symbol, "confirm-deletion")){ Closure->confirmDeletion = atoi(value); continue; }
if(!strcmp(symbol, "dao")) { Closure->noTruncate = atoi(value); continue; }
if(!strcmp(symbol, "defective-dump")) { Closure->defectiveDump = atoi(value); continue; }
if(!strcmp(symbol, "defective-dir")) { if(Closure->dDumpDir) g_free(Closure->dDumpDir);
......@@ -492,10 +491,7 @@ void ReadDotfile()
if(!strcmp(symbol, "dotfile-version")) { Closure->dotFileVersion = atoi(value); continue; }
if(!strcmp(symbol, "dvd-size1")) { Closure->dvdSize1 = Closure->savedDVDSize1 = atoll(value); continue; }
if(!strcmp(symbol, "dvd-size2")) { Closure->dvdSize2 = Closure->savedDVDSize2 = atoll(value); continue; }
if(!strcmp(symbol, "ecc-target")) { Closure->eccTarget = atoi(value); continue; }
if(!strcmp(symbol, "eject")) { Closure->eject = atoi(value); continue; }
if(!strcmp(symbol, "examine-rs02")) { Closure->examineRS02 = atoi(value); continue; }
if(!strcmp(symbol, "examine-rs03")) { Closure->examineRS03 = atoi(value); continue; }
if(!strcmp(symbol, "fill-unreadable")) { Closure->fillUnreadable = atoi(value); continue; }
if(!strcmp(symbol, "ignore-fatal-sense")) { Closure->ignoreFatalSense = atoi(value); continue; }
if(!strcmp(symbol, "internal-attempts")) { Closure->internalAttempts = atoi(value); continue; }
......@@ -509,7 +505,7 @@ void ReadDotfile()
if(!strcmp(symbol, "max-read-attempts")) { Closure->maxReadAttempts = atoi(value); continue; }
if(!strcmp(symbol, "min-read-attempts")) { Closure->minReadAttempts = atoi(value); continue; }
if(!strcmp(symbol, "missing-sector-marker")) { Closure->dsmVersion = atoi(value); continue; }
if(!strcmp(symbol, "prefetch-sectors")){ Closure->prefetchSectors = atoi(value); continue; }
if(!strcmp(symbol, "query-size")) { Closure->querySize = atoi(value); continue; }
if(!strcmp(symbol, "raw-mode")) { Closure->rawMode = atoi(value); continue; }
if(!strcmp(symbol, "read-and-create")) { Closure->readAndCreate = atoi(value); continue; }
if(!strcmp(symbol, "read-medium")) { Closure->readingPasses = atoi(value); continue; }
......@@ -518,6 +514,7 @@ void ReadDotfile()
Closure->redundancy = g_strdup(value); continue; }
if(!strcmp(symbol, "reverse-cancel-ok")) { Closure->reverseCancelOK = atoi(value); continue; }
if(!strcmp(symbol, "spinup-delay")) { Closure->spinupDelay = atoi(value); continue; }
if(!strcmp(symbol, "split-files")) { Closure->splitFiles = atoi(value); continue; }
if(!strcmp(symbol, "unlink")) { Closure->unlinkImage = atoi(value); continue; }
if(!strcmp(symbol, "verbose")) { Closure->verbose = atoi(value); continue; }
if(!strcmp(symbol, "welcome-msg")) { Closure->welcomeMessage = atoi(value); continue; }
......@@ -585,7 +582,6 @@ static void update_dotfile()
g_fprintf(dotfile, "cache-size: %d\n", Closure->cacheMB);
g_fprintf(dotfile, "cd-size: %lld\n", (long long int)Closure->cdSize);
g_fprintf(dotfile, "codec-threads: %d\n", Closure->codecThreads);
g_fprintf(dotfile, "confirm-deletion: %d\n", Closure->confirmDeletion);
g_fprintf(dotfile, "dao: %d\n", Closure->noTruncate);
g_fprintf(dotfile, "defective-dump: %d\n", Closure->defectiveDump);
g_fprintf(dotfile, "defective-dir: %s\n", Closure->dDumpDir);
......@@ -593,10 +589,7 @@ static void update_dotfile()
g_fprintf(dotfile, "dotfile-version: %d\n", Closure->dotFileVersion);
g_fprintf(dotfile, "dvd-size1: %lld\n", (long long int)Closure->dvdSize1);
g_fprintf(dotfile, "dvd-size2: %lld\n", (long long int)Closure->dvdSize2);
g_fprintf(dotfile, "ecc-target: %d\n", Closure->eccTarget);
g_fprintf(dotfile, "eject: %d\n", Closure->eject);
g_fprintf(dotfile, "examine-rs02: %d\n", Closure->examineRS02);
g_fprintf(dotfile, "examine-rs03: %d\n", Closure->examineRS03);
g_fprintf(dotfile, "fill-unreadable: %d\n", Closure->fillUnreadable);
g_fprintf(dotfile, "ignore-fatal-sense: %d\n", Closure->ignoreFatalSense);
g_fprintf(dotfile, "internal-attempts: %d\n", Closure->internalAttempts);
......@@ -608,7 +601,7 @@ static void update_dotfile()
g_fprintf(dotfile, "max-read-attempts: %d\n", Closure->maxReadAttempts);
g_fprintf(dotfile, "min-read-attempts: %d\n", Closure->minReadAttempts);
g_fprintf(dotfile, "missing-sector-marker: %d\n", Closure->dsmVersion);
g_fprintf(dotfile, "prefetch-sectors: %d\n", Closure->prefetchSectors);
g_fprintf(dotfile, "query-size: %d\n", Closure->querySize);
g_fprintf(dotfile, "raw-mode: %d\n", Closure->rawMode);
g_fprintf(dotfile, "read-and-create: %d\n", Closure->readAndCreate);
g_fprintf(dotfile, "read-medium: %d\n", Closure->readingPasses);
......@@ -617,6 +610,7 @@ static void update_dotfile()
g_fprintf(dotfile, "redundancy: %s\n", Closure->redundancy);
g_fprintf(dotfile, "reverse-cancel-ok: %d\n", Closure->reverseCancelOK);
g_fprintf(dotfile, "spinup-delay: %d\n", Closure->spinupDelay);
g_fprintf(dotfile, "split-files: %d\n", Closure->splitFiles);
g_fprintf(dotfile, "unlink: %d\n", Closure->unlinkImage);
g_fprintf(dotfile, "verbose: %d\n", Closure->verbose);
g_fprintf(dotfile, "welcome-msg: %d\n\n", Closure->welcomeMessage);
......@@ -703,19 +697,17 @@ void InitClosure()
Closure->methodName = g_strdup("RS01");
Closure->dDumpDir = g_strdup(Closure->homeDir);
Closure->cacheMB = 32;
Closure->prefetchSectors = 128;
Closure->codecThreads = 1;
Closure->eccTarget = 1;
Closure->minReadAttempts = 1;
Closure->maxReadAttempts = 1;
Closure->rawMode = 0x20;
Closure->internalAttempts = -1;
Closure->sectorSkip = 16;
Closure->spinupDelay = 5;
Closure->querySize = 2;
Closure->fillUnreadable = -1;
Closure->welcomeMessage = 1;
Closure->useSCSIDriver = DRIVER_SG;
Closure->dsmVersion = 1;
Closure->useSCSIDriver = DRIVER_CDROM_DEFAULT;
/* default sizes for typical CD and DVD media */
......@@ -747,9 +739,12 @@ void InitClosure()
DefaultColors();
memset(Closure->bs, '\b', 255);
memset(Closure->sp, ' ', 255);
DefaultLogFile();
#ifdef SYS_MINGW
OpenAspi();
#endif
}
/*
......@@ -909,4 +904,8 @@ void FreeClosure()
g_free(Closure->readAdaptiveErrorMsg);
g_free(Closure);
#ifdef SYS_MINGW
CloseAspi();
#endif
}
......@@ -19,11 +19,11 @@ fi
# Set the package name and version
PACKAGE dvdisaster 0.79
PACKAGE dvdisaster 0.72
REL_MICRO=3
#REL_STATUS=patch