Compare commits

...

31 Commits

Author SHA1 Message Date
Stéphane Lesimple
fb67ee4ab5 chore: update locales & changelog 2020-09-05 18:42:56 +02:00
Stéphane Lesimple
daec1295aa fix: ensure variables are initialized before dereferencing 2020-09-05 18:42:56 +02:00
Stéphane Lesimple
9ba1374351 chore: re-enable adaptive read tests, enhance github actions 2020-09-05 18:42:56 +02:00
Stéphane Lesimple
d90cd7fa40 release patchlevel 4 2020-09-05 18:42:56 +02:00
Stéphane Lesimple
a98c795280 feat: allow adaptive reading again
The feature was disabled by the author in this version, as it missed RS03
awareness. We enable it if we find RS01, RS02 or no ECC data, and warn the
user if we find RS03, telling him that the wise choice is to cancel and
rely on linear read
2020-09-05 00:24:23 +02:00
Stéphane Lesimple
7a3391f49d fix: lift segfault when aborting adaptive read 2020-09-05 00:24:23 +02:00
Stéphane Lesimple
1a9416f7b2 feat: add --permissive-medium-type option
This option can be useful to try to work with normally unsupported media types.
Namely the Windows 10 default iso mounter (and virtual drive) is tagged DVD-DROM,
even if it mounts bare iso images. Useful for debugging (requires --debug).
2020-09-05 00:24:23 +02:00
Stéphane Lesimple
be2f7b67b9 fix: lift the limitation on the number of arguments 2020-09-05 00:24:23 +02:00
Stéphane Lesimple
dcfb23f4ee chore: update readme 2020-09-05 00:24:23 +02:00
Stéphane Lesimple
239f76c71c chore: add missing target dependency in makefile 2020-09-05 00:24:23 +02:00
Stéphane Lesimple
dc53597e8e chore: rename CLI version to NOGUI in the version tag
As CLI is already #defined, we couldn't stringify it properly
and we ended up with 1 in the version tag
2020-09-05 00:24:23 +02:00
Stéphane Lesimple
7091b5fbbe chore: update readme 2020-09-04 09:21:32 +02:00
Stéphane Lesimple
269ea45d8d chore: locales update 2020-09-04 09:21:17 +02:00
Stéphane Lesimple
7ee35f1d0a chore: use gcc -pipe to speed up the build 2020-09-04 09:21:17 +02:00
Stéphane Lesimple
0724a34af8 chore: build: finally really fix make parallelism 2020-09-04 09:21:17 +02:00
Stéphane Lesimple
898f2fcfb6 chore: move *.c *.h to src/, build in build/ 2020-09-03 09:32:13 +02:00
Stéphane Lesimple
5b82ec64bc release patchlevel3 2020-09-01 22:16:50 +02:00
Stéphane Lesimple
9fed89dbcf chore: automatically build & upload release assets 2020-09-01 22:16:02 +02:00
Stéphane Lesimple
22b2aba490 fix: windows: flavor in build.h was always UNKNOWN 2020-09-01 12:52:35 +02:00
Stéphane Lesimple
0598fad827 fix: windows: config file couldn't be written
now cfg and log file will be in the same directory than the exe (portable mode)
2020-09-01 12:52:35 +02:00
Stéphane Lesimple
cbcac368dc chore: add auto Windows CLI tests 2020-08-30 18:40:34 +02:00
Stéphane Lesimple
bd70bcef1b chore: add auto Windows CLI tests 2020-08-30 17:58:31 +02:00
Stéphane Lesimple
71b32a30a1 feat: BD-R: add --no-defect-management
Enable bigger augmented images for BD-R (around +3%).
If you know you will use a BD-R medium and want to maximize the free space
for parity data, you can skip the defect management formatting before burning,
at the expense of potential coasters. Specify this option to tell dvdisaster
to produce bigger images that will only fit on BD-R media burnt without defect
management. Some burning softwares call it "formatting" the BD-R before burning.
Note that should you need to repair such an augmented image, you'll then need to
specify this option on the command-line too.
2020-08-30 17:54:36 +02:00
Stéphane Lesimple
2d68cfb0b1 feat: add --no-bdr-defect-management to produce bigger augmented images with RS03 2020-08-30 17:06:41 +02:00
Stéphane Lesimple
c0c6747bd9 fix: reimport some missed locales 2020-08-29 22:11:30 +02:00
Stéphane Lesimple
3eecbcbdcc chore: autotest windows & linux on PR + remove 2 warnings under Linux 2020-08-29 21:44:15 +02:00
Stéphane Lesimple
49eecc0a6f chore: add a static make target 2020-08-27 19:11:12 +02:00
Stéphane Lesimple
4d2e0ba32c chore: fix make parallelism 2020-08-27 19:11:12 +02:00
Stéphane Lesimple
495a851356 fix: adjust BDXL_QL_SIZE and rollback BD_SL_SIZE to upstream version
BD_SL_SIZE was mistakenly modified in 0.79.6-pl1, we restore the
previous upstream version to avoid having several dvdisaster versions
in the field with different values set for it.

If you created an RS03 augmented image with 0.79.6-pl1, you'll still
be able to conduct a repair of the image, should it be damaged,
by using any 0.79.6 version (with or without patchlevel), using
the following additional command-line parameters:
dvdisaster -f --debug -n 12219392

BDXL_QL_SIZE (introduced in pl1) was also adjusted in this version,
To repair a damaged BD-R quadruple layer image created by pl1:
dvdisaster -f --debug -n 62500864

The values that were present in pl1 were corresponding to a BD-R
burnt without formatting it for defect management first, which enabled
more space for parity data. You can still do it if you want (read
the comment in the code introduced by this commit), but to follow
upstream design, the default number of sectors for all BD-R implies
that defect management is enabled.
2020-08-27 19:11:12 +02:00
Stéphane Lesimple
5b95870f39 chore: update README.md 2020-08-27 18:37:06 +02:00
Stéphane Lesimple
d76551ce39 chore: automatically run regression tests on pull request 2020-08-26 09:35:35 +02:00
179 changed files with 9240 additions and 8834 deletions

62
.github/workflows/make-dist.sh vendored Executable file
View File

@@ -0,0 +1,62 @@
#!/bin/bash
set -e
set -x
github_ref="$1"
if [ -n "$GITHUB_EVENT_PATH" ] && [ -f "$GITHUB_EVENT_PATH" ]; then
if command -v jq >/dev/null; then
upload_url=$(jq -r '.release.upload_url' < $GITHUB_EVENT_PATH)
echo "Upload URL is $upload_url"
echo "::set-output name=upload_url::$upload_url"
fi
else
echo "This should only be run from GitHub Actions"
exit 1
fi
case "$MSYSTEM" in
MINGW64) os=win64; exe=.exe;;
MINGW32) os=win32; exe=.exe;;
*) os=linux64; exe='';;
esac
./dvdisaster$exe --version
if ./dvdisaster$exe --version | grep -q NOGUI; then
GUI=0
suffix="$os-cli-only"
else
GUI=1
suffix=$os-static
fi
archive=dvdisaster-$(echo "$github_ref" | grep -Eo '[^/]+$')-$suffix.zip
echo "Archive name is $archive"
echo "::set-output name=archive::$archive"
mkdir -p dist/locale
cp -vr locale/*/ dist/locale/
if [ "$os" != "linux64" ]; then
if [ "$GUI" = 1 ]; then
mkdir -p dist/share/themes
cp -vr $MINGW_PREFIX/share/themes/MS-Windows dist/share/themes/
cp -vr $MINGW_PREFIX/lib/gtk-2.0 dist/lib/
rm -rf dist/lib/gtk-2.0/include
fi
mkdir -p dist/lib
ntldd -R dvdisaster
for i in $(ntldd -R dvdisaster | awk '/mingw/ {print $3}' | tr \\\\ / | grep -Eo '[^/]+$')
do
test -e $MINGW_PREFIX/bin/$i && cp -va $MINGW_PREFIX/bin/$i dist/
done
find dist -type f -name "*.a" -delete
fi
man -t documentation/dvdisaster.en.1 | ps2pdf - dist/dvdisaster.pdf
cp dvdisaster documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dist/
if command -v zip >/dev/null; then
mv dist ${archive/.zip/}
zip -9r $archive ${archive/.zip/}
mv ${archive/.zip/} dist
fi
echo "dist done ($archive)"

210
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,210 @@
name: autobuild
on:
release:
types: [published]
jobs:
win64-gui:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-gtk2 mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ghostscript mingw-w64-x86_64-jq mingw-w64-x86_64-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty -e NOGUI && exit 1
file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
win32-gui:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-gtk2 mingw-w64-i686-glib2 mingw-w64-i686-gcc mingw-w64-i686-ghostscript mingw-w64-i686-jq mingw-w64-i686-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty -e NOGUI && exit 1
file dvdisaster.exe | grep -q '386, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
win64-cli:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ghostscript mingw-w64-x86_64-jq mingw-w64-x86_64-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty && exit 1
./dvdisaster.exe --version | grep -q NOGUI
file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
win32-cli:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-glib2 mingw-w64-i686-gcc mingw-w64-i686-ghostscript mingw-w64-i686-jq mingw-w64-i686-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty && exit 1
./dvdisaster.exe --version | grep -q NOGUI
file dvdisaster.exe | grep -q '386, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
linux64-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install prerequisites
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man jq
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc) && make static && mv -f dvdisaster-static dvdisaster
- name: check executable
run: |
./dvdisaster --version && ./dvdisaster --version | grep -q dirty || true
file dvdisaster && file dvdisaster | grep -q 'ELF 64' && file dvdisaster | grep -q 'statically linked'
- name: build dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip

187
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,187 @@
name: non-regression tests
on: [pull_request]
jobs:
win64-gui:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-gtk2 mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ghostscript mingw-w64-x86_64-jq mingw-w64-x86_64-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty -e NOGUI && exit 1
file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: regression tests
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
win32-gui:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-gtk2 mingw-w64-i686-glib2 mingw-w64-i686-gcc mingw-w64-i686-ghostscript mingw-w64-i686-jq mingw-w64-i686-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty -e NOGUI && exit 1
file dvdisaster.exe | grep -q '386, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: regression tests
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
win64-cli:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ghostscript mingw-w64-x86_64-jq mingw-w64-x86_64-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty && exit 1
./dvdisaster.exe --version | grep -q NOGUI
file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: regression tests
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
win32-cli:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-glib2 mingw-w64-i686-gcc mingw-w64-i686-ghostscript mingw-w64-i686-jq mingw-w64-i686-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version
file dvdisaster.exe
./dvdisaster.exe --version | grep -q -e dirty && exit 1
./dvdisaster.exe --version | grep -q NOGUI
file dvdisaster.exe | grep -q '386, for MS Windows'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
id: dist
- name: check executability of dist from cmd.exe
shell: cmd
run: |
cd dist
dvdisaster.exe --version
- name: regression tests
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
linux64-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install prerequisites
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man jq
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster --version
- name: check executable
run: file dvdisaster && file dvdisaster | grep -q 'ELF 64'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
- name: regression tests
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
linux64-gui:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install prerequisites
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man jq libgtk2.0-dev
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster --version
- name: check executable
run: file dvdisaster && file dvdisaster | grep -q 'ELF 64'
- name: prepare dist
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
- name: regression tests
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh

View File

@@ -1,5 +1,66 @@
# dvdisaster changelog -*-text-*- # dvdisaster changelog -*-text-*-
0.79.6.patchlevel-4 04-09-2020 *UNOFFICIAL*
- feat: allow adaptive reading again*
- feat: add --permissive-medium-type option
- fix: lift the limitation on the number of cmdline args
- fix: lift segfault when aborting adaptive read
- fix: ensure variables are initialized before dereferencing
- chore: re-enable adaptive read regtests
- chore: move *.c *.h to src/, and build in build/
- chore: build: finally really fix make parallelism
- chore: use gcc -pipe to speed up the build
- chore: rename CLI version to NOGUI in the version tag
- chore: add missing target dependency in Makefile
- chore: update readme
- chore: locales update
*:The original author disabled adaptive reading
specifically in 0.79.6 (see changelog below), as it
doesn't handle RS03 correctly yet. In this patchlevel
we enable it again for media without (detected) ECC data,
and for media protected with RS01 or RS02. If we detect RS03,
we tell the user the behaviour is unpredictable/undefined,
and recommend using linear reading instead.
0.79.6.patchlevel-3 01-09-2020 *UNOFFICIAL*
- fix: windows: flavor in build version was always 'UNKNOWN'
- fix: windows: the config & log files were not written properly
0.79.6.patchlevel-2 30-08-2020 *UNOFFICIAL*
- fix: Adjust BDXL_QL_SIZE and rollback BD_SL_SIZE to upstream version*
- feat: add --no-bdr-defect-management to produce bigger augmented images with RS03
- chore: remove 2 compiler warnings under Linux
- chore: automatically run regtests under Win32, Win64, Linux64 (regular and CLI-only) on pull requests
- chore: add a Linux CLI-only static make target
- chore: fix make parallelism
- chore: use tags to describe the build
*:BD_SL_SIZE was mistakenly modified in 0.79.6-pl1, we restore the
previous upstream value to avoid having several dvdisaster versions
in the field with different values set for it.
If you created an RS03 augmented image with 0.79.6-pl1, you'll still
be able to conduct a repair of the image, should it be damaged,
by using any 0.79.6 version (with or without patchlevel), using
the following additional command-line parameters:
dvdisaster -f --debug -n 12219392
On the patchlevel versions, this is equivalent to saying:
dvdisaster -f --no-bdr-defect-management
BDXL_QL_SIZE (introduced in pl1) was also adjusted in this version,
To repair a damaged BD-R quadruple layer image created by pl1:
dvdisaster -f --debug -n 62500864
On the patchlevel versions, this is equivalent to saying:
dvdisaster -f --no-bdr-defect-management
The values that were present in pl1 were corresponding to a BD-R
burnt without formatting it for defect management first, which enabled
more space for parity data. You can still do it if you want, with
--no-bdr-defect-management (see manpage), but to follow upstream,
the default number of sectors for all BD-R implies that defect
management is enabled.
0.79.6.patchlevel-1 20-08-2020 *UNOFFICIAL* 0.79.6.patchlevel-1 20-08-2020 *UNOFFICIAL*
- This is an UNOFFICIAL version, not from the original author, - This is an UNOFFICIAL version, not from the original author,
based on the latest available pre-release, 0.79.6. based on the latest available pre-release, 0.79.6.
@@ -14,7 +75,7 @@
- Added support for BDXL-QL (quadruple layer, 128GB) - Added support for BDXL-QL (quadruple layer, 128GB)
- Added support to compile a CLI-only version, without - Added support to compile a CLI-only version, without
the GTK dependency (only glib2), compile with: the GTK dependency (only glib2), compile with:
$ CLI_ONLY=1 ./configure && make clean all $ CLI_ONLY=1 ./configure && make clean && make -j4
- Added support to compile a Windows version under MingW (tested - Added support to compile a Windows version under MingW (tested
with MSYS2) with MSYS2)
- All regression tests are passing on Linux 64, Win 32 and Win 64. - All regression tests are passing on Linux 64, Win 32 and Win 64.

View File

@@ -67,28 +67,33 @@ OFILES = $(CFG_OFILES)
# Compilation related # Compilation related
###################################################################### ######################################################################
.PHONY : all help show locale time-stamp .PHONY : all help show locale
${BUILDTMP}/%.o : %.c all: dvdisaster
src/build.h:
@echo "Updating:" src/build.h
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/src/build.h
${BUILDTMP}/%.o : src/%.c
@echo "Compiling:" $? @echo "Compiling:" $?
@$(CC) $(COPTS) -c $? -o $@ @$(CC) $(COPTS) -c $? -o $@
all: time-stamp dvdisaster ${BUILDTMP}/build.o : src/build.c src/build.h
@echo "Compiling:" src/build.o
@$(CC) $(COPTS) -c src/build.c -o $@
${BUILDTMP}/build.o : build.c build.h ${BUILDTMP}/icon-factory.o : src/icon-factory.c src/inlined-icons.h
@echo "Compiling:" build.o @echo "Compiling:" src/icon-factory.o
@$(CC) $(COPTS) -c build.c -o $@ @$(CC) $(COPTS) -c src/icon-factory.c -o $@
# Building the dvdisaster binary # Building the dvdisaster binary
time-stamp: dvdisaster: $(ICONS) $(OFILES)
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
dvdisaster: $(ICONS) $(OFILES)
@echo "Linking : dvdisaster" @echo "Linking : dvdisaster"
@if test $(CFG_SYS_OPTIONS) == -DSYS_MINGW; \ @if test $(CFG_SYS_OPTIONS) == -DSYS_MINGW; \
then windres -v winres.rc -O coff -o winres.o >/dev/null ; \ then windres -v src/winres.rc -O coff -o ${BUILDTMP}/winres.o >/dev/null ; \
$(CC) $(LOPTS) $(OFILES) $(LIBS) winres.o -o dvdisaster ; \ $(CC) $(LOPTS) $(OFILES) $(LIBS) ${BUILDTMP}/winres.o -o dvdisaster ; \
else $(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster ; \ else $(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster ; \
fi fi
@if test -e locale/de/LC_MESSAGES/dvdisaster.mo \ @if test -e locale/de/LC_MESSAGES/dvdisaster.mo \
@@ -97,47 +102,43 @@ dvdisaster: $(ICONS) $(OFILES)
else $(MAKE) --no-print-directory -C locale; \ else $(MAKE) --no-print-directory -C locale; \
fi fi
inlined-icons.h: icons/read.png icons/create.png icons/scan.png icons/fix.png icons/verify.png src/inlined-icons.h: icons/read.png icons/create.png icons/scan.png icons/fix.png icons/verify.png
@gdk-pixbuf-csource --raw --name=dvdisaster_read icons/read.png >inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_read icons/read.png >src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_create icons/create.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_create icons/create.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_scan icons/scan.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_scan icons/scan.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_fix icons/fix.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_fix icons/fix.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_verify icons/verify.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_verify icons/verify.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_open_ecc icons/open-ecc.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_open_ecc icons/open-ecc.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_open_img icons/open-img.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_open_img icons/open-img.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_cd icons/cd.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_cd icons/cd.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_help icons/gtk-help.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_help icons/gtk-help.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_index icons/gtk-index.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_index icons/gtk-index.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_preferences icons/gtk-preferences.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_preferences icons/gtk-preferences.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_quit icons/gtk-quit.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_quit icons/gtk-quit.png >>src/inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_stop icons/gtk-stop.png >>inlined-icons.h @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_stop icons/gtk-stop.png >>src/inlined-icons.h
$(BUILDTMP)/help-dialogs.o: help-dialogs.c simple-md5sum $(BUILDTMP)/help-dialogs.o: src/help-dialogs.c simple-md5sum
@if test -e fingerprints.md5; \ @if test -e fingerprints.md5; \
then if test -e help-dialogs.h; then rm help-dialogs.h; fi; \ then if test -e src/help-dialogs.h; then rm src/help-dialogs.h; fi; \
mv inlined-icons.h inlined-icons.saved; \ ./simple-md5sum -b src/*.h src/*.c | grep -vF -e inlined-icons.h -e build.h | sort -k2 >tmp.md5; \
mv build.h build.saved; \
./simple-md5sum -b *.h *.c | sort -k2 >tmp.md5; \
sort -k2 < fingerprints.md5 >tmp2.md5; \ sort -k2 < fingerprints.md5 >tmp2.md5; \
mv inlined-icons.saved inlined-icons.h; \
mv build.saved build.h; \
if ! cmp tmp2.md5 tmp.md5 >/dev/null; \ if ! cmp tmp2.md5 tmp.md5 >/dev/null; \
then echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \ then echo "#define MODIFIED_SOURCE 1" >> src/help-dialogs.h; \
else echo "#define UNMODIFIED_SOURCE 1" >> help-dialogs.h; \ else echo "#define UNMODIFIED_SOURCE 1" >> src/help-dialogs.h; \
fi; \ fi; \
rm tmp.md5 tmp2.md5; \ rm tmp.md5 tmp2.md5; \
else echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \ else echo "#define MODIFIED_SOURCE 1" >> src/help-dialogs.h; \
fi fi
@echo "Compiling:" help-dialogs.c @echo "Compiling:" src/help-dialogs.c
@$(CC) $(COPTS) -c help-dialogs.c -o $(BUILDTMP)/help-dialogs.o @$(CC) $(COPTS) -c src/help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
$(BUILDTMP)/rs-encoder-sse2.o: rs-encoder-sse2.c $(BUILDTMP)/rs-encoder-sse2.o: src/rs-encoder-sse2.c
@echo "Compiling:" rs-encoder-sse2.c @echo "Compiling:" src/rs-encoder-sse2.c
@$(CC) $(SSE2_OPTIONS) $(COPTS) -c rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o @$(CC) $(SSE2_OPTIONS) $(COPTS) -c src/rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
$(BUILDTMP)/rs-encoder-altivec.o: rs-encoder-altivec.c $(BUILDTMP)/rs-encoder-altivec.o: src/rs-encoder-altivec.c
@echo "Compiling:" rs-encoder-altivec.c @echo "Compiling:" src/rs-encoder-altivec.c
@$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.o @$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c src/rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.o
locale: locale:
@$(MAKE) --no-print-directory -C locale @$(MAKE) --no-print-directory -C locale
@@ -145,10 +146,11 @@ locale:
untranslated: untranslated:
@$(MAKE) --no-print-directory -C locale check-untranslated @$(MAKE) --no-print-directory -C locale check-untranslated
simple-md5sum: md5.c simple-md5sum: src/md5.c
@$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(LDFLAGS) $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum @$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM src/md5.c $(LDFLAGS) $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
version.tex: version.tex:
@test -d $(SRCDIR)/documentation/config || mkdir $(SRCDIR)/documentation/config
@echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex @echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
manual: version.tex manual: version.tex
@@ -292,7 +294,7 @@ archclean: distclean
distclean: clean distclean: clean
@echo "Removing configuration files" @echo "Removing configuration files"
@rm -f configure.log Makefile.config GNUmakefile locale/Makefile @rm -f configure.log Makefile.config src/build.h GNUmakefile locale/Makefile
@for i in locale/?? locale/??_??; do rm -rf $$i; done @for i in locale/?? locale/??_??; do rm -rf $$i; done
# There might be a not executable simple-md5sum from a compiler run # There might be a not executable simple-md5sum from a compiler run
@@ -302,7 +304,7 @@ distclean: clean
clean: clean:
@echo "Removing rebuildable files" @echo "Removing rebuildable files"
@rm -rf *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core @rm -rf *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
@rm -f inlined-icons.h help-dialogs.h @rm -f src/inlined-icons.h src/help-dialogs.h
@find . -name \*\~ -print | xargs rm -f; @find . -name \*\~ -print | xargs rm -f;
@find . -name \*.mo -print | xargs rm -f; @find . -name \*.mo -print | xargs rm -f;
@find . -name \#\*\# -print | xargs rm -f; @find . -name \#\*\# -print | xargs rm -f;
@@ -315,7 +317,7 @@ clean:
$(MAKE) --no-print-directory simple-md5sum; \ $(MAKE) --no-print-directory simple-md5sum; \
echo "[simple-md5sum (re-)built]"; \ echo "[simple-md5sum (re-)built]"; \
fi; \ fi; \
./simple-md5sum -b *.h *.c >fingerprints.md5 ;\ ./simple-md5sum -b src/*.h src/*.c >fingerprints.md5 ;\
mv build.saved build.h; \ mv build.saved build.h; \
fi fi
@rm -f simple-md5sum @rm -f simple-md5sum
@@ -323,8 +325,8 @@ clean:
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean; @$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
@$(MAKE) --no-print-directory -C $(SRCDIR)/locale clean; @$(MAKE) --no-print-directory -C $(SRCDIR)/locale clean;
BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3` BUILD=`grep BUILD $(SRCDIR)/src/build.h | cut -d ' ' -f 3`
arch: archclean time-stamp arch: archclean build.h
@cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME) @cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
INSTALL: documentation/install.template INSTALL: documentation/install.template
@@ -334,14 +336,5 @@ srcdist: INSTALL distclean manual manualclean
@cd .. ; tar -c -j -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME) @cd .. ; tar -c -j -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
@cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2 @cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2
MINGWROOT = $(shell dirname $(CC))/.. static: dvdisaster
windist: $(CC) $(LOPTS) $(OFILES) $(LIBS) -pthread -static -o dvdisaster-static
rm -rf dist
mkdir -p dist/lib dist/locale dist/share/themes
for i in libatk-1.0-*.dll libbrotlicommon.dll libbrotlidec.dll libbz2-*.dll libcairo-*.dll libdatrie-*.dll libexpat-*.dll libffi-*.dll libfontconfig-*.dll libfreetype-*.dll libfribidi-*.dll libgcc_s_*.dll libgdk_pixbuf-2.0-*.dll libgdk-win32-2.0-*.dll libgio-2.0-*.dll libglib-2.0-*.dll libgmodule-2.0-*.dll libgobject-2.0-*.dll libgraphite2.dll libgtk-win32-2.0-*.dll libharfbuzz-*.dll libiconv-*.dll libintl-*.dll libpango-1.0-*.dll libpangocairo-1.0-*.dll libpangoft2-1.0-*.dll libpangowin32-1.0-*.dll libpcre-*.dll libpixman-1-*.dll libpng16-*.dll libssp-*.dll libstdc++-*.dll libthai-*.dll libwinpthread-*.dll zlib1.dll; \
do cp -v $(MINGWROOT)/bin/$$i dist/ ; done
cp -v dvdisaster.exe dist/
cp -vr locale/*/ dist/locale/
cp -vr $(MINGWROOT)/share/themes/MS-Windows dist/share/themes/
cp -vr $(MINGWROOT)/lib/gtk-2.0 dist/lib/
find dist -type f -name "*.a" -delete

View File

@@ -127,6 +127,11 @@ Call the configuration script in the usual way:
user@host> ./configure user@host> ./configure
If you want to build a CLI-only version, which doesn't depend
on the gtk2 libraries, you can run instead:
user@host> CLI_ONLY=1 ./configure
The script will possibly print some errors about missing libraries. The script will possibly print some errors about missing libraries.
Type "configure --help" to learn about pointing configure Type "configure --help" to learn about pointing configure
to the correct path of already installed libraries. to the correct path of already installed libraries.

View File

@@ -1,53 +1,66 @@
# dvdisaster provides additional ECC protection for optical media # What is dvdisaster?
It can loosely be compared to *par2* files, but the protection works at the *iso* level instead of working at the file level. This way, even if metadata from the optical media filesystem is damaged, dvdisaster can still work flawlessly. **dvdisaster** provides additional [ECC](https://en.m.wikipedia.org/wiki/Error_correction_code) protection for optical media. If a medium gets damaged, dvdisaster can recover it as long as the amount of damage is smaller than the amount of ECC data you added to protect it.
This version of dvdisaster supports the following platforms: It can loosely be compared to [.par2](https://en.m.wikipedia.org/wiki/Parchive) files, but the protection works at the *iso* level instead of working at the file level. This way, even if metadata from the optical medium filesystem is damaged, dvdisaster can still work flawlessly.
Linux, FreeBSD, NetBSD on x86, PowerPC, Sparc, and Windows.
Three protection codecs are supported, they're quickly detailed below. Please see the documentation/manual.pdf for more information about these, and everything else. Please refer to the [PDF manual](documentation/user-manual/manual.pdf) for more information.
# The codecs
## RS01
RS01 creates error correction files which are stored separately from the image they
belong to. The artefact is an **ecc** file, which must be stored on another media than the one we're protecting.
## RS02
RS02 creates error correction data which is added to the medium to protect, we call this *augmenting* the image we're protecting. Damaged sectors in the error correction information reduce the data recovering capacity, but do not make recovery impossible - a second medium for keeping or protecting the error correction
information is not required.
## RS03
RS03 is a further development of RS01 and RS02. It can create both error correction files and
augmented images, with the following added features:
- RS03 can distribute work over multiple processor cores and is therefore much faster than
RS01/RS02 on modern hardware.
- RS03 error correction files are - contrary to RS01 - robust against damage. This should
not delude you into careless handling of your error correction files though - the disadvan-
tages of reading at the filesystem level are still valid.
- RS03 augmented images do not require so-called master blocks holding important in-
formation. This makes RS03 a bit more robust, but also more restrictive: The augmented
image must completely fill the medium now while the size of augmented images can be
freely chosen in RS02.
The changes for parallel computation and higher robustness make RS03 a bit less space efficient,
e.g. RS03 error correction data has slighly less error correction capacity than its RS01/RS02
counterparts on images with equal size.
# Unofficial version # Unofficial version
The last upstream version is dated 2017, and the official website is down. The last upstream version by Carsten Gnörlich is dated 2017, and could be found on the [official](https://web.archive.org/web/20180428070843/http://dvdisaster.net/en/index.html) [website](https://web.archive.org/web/20180509154525/http://dvdisaster.org/en/index.html) which is [now](http://www.dvdisaster.net) [down](http://www.dvdisaster.org). The original source code [repository](https://sourceforge.net/projects/dvdisaster/files/dvdisaster) doesn't have it, but [Debian sources](https://sources.debian.org/src/dvdisaster/) does, thanks to the maintainer there.
The original README has been left untouched in this repository. The original [README](README) has been left untouched in this repository.
This version is built on top of the latest upstream version, with the following notable enhancements: This version is built on top of the latest upstream version, with the following notable enhancements:
- Most Debian patches have been applied (The Debian version source code can be found [here](https://sources.debian.org/src/dvdisaster/)) - Most Debian patches have been applied, those specific to Debian have been omitted
- Windows build added back (was dropped upstream a few versions before the last one) - Windows build supported again, it was dropped upstream a few versions back
- A Linux CLI-only version can now be compiled, without depending on gtk - A CLI-only version, not depending on gtk (`CLI_ONLY=1 ./configure && make clean && make -j4`)
- Regression tests confirmed working on Linux64 (normal and CLI-only), Windows32 and Windows64 - Regression tests confirmed working on Linux64, Windows32 and Windows64, for normal and CLI-only builds
- Added pre-defined sizes for BD-R Triple Layer (100GB), BD-R Quadruple Layer (128GB) - Added pre-defined sizes for BD-R Triple Layer (100GB), BD-R Quadruple Layer (128GB)
For more information please refer to the [CHANGELOG](CHANGELOG).
## 3 available protection modes ("codecs")
**RS01** creates error correction files which are stored separately from the image they belong to.
The artefact is an **ecc** file, which must be stored on another media than the one we're protecting.
**RS02** creates error correction data which is added to the medium to protect, we call this *augmenting* the image we're protecting. Damaged sectors in the error correction information reduce the data recovering capacity, but do not make recovery impossible - a second medium for keeping or protecting the error correction
information is not required.
**RS03** is a further development of RS01 and RS02. It can create both error correction files and
augmented images, with the following added features:
- RS03 can use multiple CPU cores and is therefore much faster than RS01/RS02 on modern hardware.
- RS03 error correction files are - contrary to RS01, and to a lesser extent RS02 - robust against damage.
- RS03 is more robust, but also more restrictive: The augmented image must completely fill the medium now while the size of augmented images can be freely chosen in RS02.
The changes for parallel computation and higher robustness make RS03 a bit less space efficient,
e.g. RS03 error correction data has slighly less error correction capacity than its RS01/RS02 counterparts on images with equal size.
# Rationale
Even if the optical media era is sunsetting now, and has been for a few years, it's still of some value for off-site backups. In any case, we still have media in our hands that we want to be able to repair, should it be damaged, during the next years/decades. Repairing is actually pretty much the very reason of dvdisaster existence (as long as parity data has been added, of course).
The idea of this unofficial version is to ensure dvdisaster doesn't get hard to find, use or compile, should upstream development never resume (we hope it does!).
This is also why precompiled Windows binaries and a precompiled static CLI-only Linux version are available here.
# Compiling
See the [INSTALL](INSTALL) file. The [workflow file](.github/workflows/release.yml) that is used to automatically build binaries for each release can also help.
# Screenshots # Screenshots
(todo)
### Scanning a damaged CD under Windows
![dvdisaster_damaged_cd](https://user-images.githubusercontent.com/218502/91434313-edaaf880-e864-11ea-8e41-7b58a1e97a70.PNG)
### Scanning a healthy BD-R (single layer) with Linux GUI
![dvdisaster_bdr_read](https://user-images.githubusercontent.com/218502/91436728-fbfb1380-e868-11ea-8444-04ebc60809d8.PNG)
### Creating an RS03 error correction file with Linux GUI
![dvdisaster_bdr_create](https://user-images.githubusercontent.com/218502/91436740-00273100-e869-11ea-837a-af0d0733fe87.PNG)
### Verifying a BD-R image with Linux GUI
![dvdisaster_bdr_verify](https://user-images.githubusercontent.com/218502/91436731-fc93aa00-e868-11ea-93e6-b8c277620df7.PNG)

38
configure vendored
View File

@@ -3,21 +3,19 @@
# Load the shell functions needed for the rest of this script. # Load the shell functions needed for the rest of this script.
BASH_BASED_CONFIGURE=./scripts/bash-based-configure BASH_BASED_CONFIGURE=./scripts/bash-based-configure
REQUIRED_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I." BASH_BASED_CONFIGURE_OPTS="--buildtmp=$(pwd)/build"
RECOMMENDED_CFLAGS="-DPATCHLEVEL=1 -O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-stringop-truncation" REQUIRED_CFLAGS="-DPATCHLEVEL=4 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -pipe"
RECOMMENDED_CFLAGS="-O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-stringop-truncation"
DEBUG_CFLAGS="-ggdb -Wall" DEBUG_CFLAGS="-ggdb -Wall"
if [ "$CLI_ONLY" = 1 ]; then if [ "$CLI_ONLY" = 1 ]; then
REQUIRED_CFLAGS="-DCLI $REQUIRED_CFLAGS" REQUIRED_CFLAGS="-DCLI $REQUIRED_CFLAGS"
echo '#define FLAVOR CLI' > build.h
else
echo '#define FLAVOR GUI' > build.h
fi fi
CFG_USE_CYGWIN="no" # do not change CFG_USE_CYGWIN="no" # do not change
if test -e $BASH_BASED_CONFIGURE; then if test -e $BASH_BASED_CONFIGURE; then
source $BASH_BASED_CONFIGURE source $BASH_BASED_CONFIGURE $BASH_BASED_CONFIGURE_OPTS
else else
echo "Could not find $BASH_BASED_CONFIGURE" echo "Could not find $BASH_BASED_CONFIGURE"
echo "You're probably not in the right directory." echo "You're probably not in the right directory."
@@ -78,10 +76,10 @@ PRINT_MESSAGE "\nChecking for functions and symbols..."
CHECK_FUNCTION mmap CHECK_FUNCTION mmap
if ! CHECK_FUNCTION getopt_long ; then if ! CHECK_FUNCTION getopt_long ; then
if ! test -e getopt.h || ! test -e getopt.c ; then if ! test -e src/getopt.h || ! test -e src/getopt.c ; then
echo " * getopt_long is missing. You can provide one by simply" echo " * getopt_long is missing. You can provide one by simply"
echo " * copying getopt.c, getopt1.c and getopt.h from the GNU" echo " * copying getopt.c, getopt1.c and getopt.h from the GNU"
echo " * C library into this directory." echo " * C library into the src/ directory."
exit 1 exit 1
fi fi
fi fi
@@ -157,17 +155,17 @@ fi
PRINT_MESSAGE "\nCollecting source files:" PRINT_MESSAGE "\nCollecting source files:"
rm -f conftest.c method-link.c rm -f src/conftest.c src/method-link.c
cfiles="method-link.c" cfiles="src/method-link.c"
ofiles="$BUILDTMP/method-link.o" ofiles="$BUILDTMP/method-link.o"
for cfile in *.c; do for cfile in src/*.c; do
if [ "$CLI_ONLY" = 1 ]; then if [ "$CLI_ONLY" = 1 ]; then
grep -q 'DVDISASTER_GUI_FILE' "$cfile" && continue grep -q 'DVDISASTER_GUI_FILE' "$cfile" && continue
fi fi
cfile_prefix=`echo $cfile | sed -e 's/\.c//'` cfile_prefix=`echo $cfile | sed -e 's/\.c//'`
cfiles="$cfiles $cfile" cfiles="$cfiles $cfile"
ofiles="$ofiles $BUILDTMP/$cfile_prefix.o" ofiles="$ofiles $BUILDTMP/$(basename $cfile_prefix.o)"
echo -n " $cfile_prefix" echo -n " $cfile_prefix"
done done
@@ -175,37 +173,37 @@ echo
echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config
echo "CFG_OFILES = $ofiles" >> Makefile.config echo "CFG_OFILES = $ofiles" >> Makefile.config
if [ "$CLI_ONLY" != 1 ]; then if [ "$CLI_ONLY" != 1 ]; then
echo "ICONS = inlined-icons.h" >> Makefile.config echo "ICONS = src/inlined-icons.h" >> Makefile.config
fi fi
# Create the method wrapper # Create the method wrapper
PRINT_MESSAGE "\nCollecting methods:" PRINT_MESSAGE "\nCollecting methods:"
cat >> method-link.c <<EOF cat >> src/method-link.c <<EOF
/* Automatically generated wrapper for registering the methods */ /* Automatically generated wrapper for registering the methods */
void BindMethods(void) void BindMethods(void)
{ {
EOF EOF
for method in ecc-*.c; do for method in src/ecc-*.c; do
method_name=`echo $method | sed -e 's/\.c//' -e 's/ecc-//'` method_name=`echo $(basename $method) | sed -e 's/\.c//' -e 's/ecc-//'`
method_prefix="$method_prefix $method_name" method_prefix="$method_prefix $method_name"
echo -n " $method_name" echo -n " $method_name"
done done
for method in $method_prefix; do for method in $method_prefix; do
echo " void register_${method}(void);" >> method-link.c echo " void register_${method}(void);" >> src/method-link.c
done done
echo >> method-link.c echo >> src/method-link.c
for method in $method_prefix; do for method in $method_prefix; do
echo " register_${method}();" >> method-link.c echo " register_${method}();" >> src/method-link.c
done done
echo "}" >> method-link.c echo "}" >> src/method-link.c
echo echo
# Okay, hopefully we've got everything together now. # Okay, hopefully we've got everything together now.

View File

@@ -1,4 +1,4 @@
.TH DVDISASTER 1 "2010-02-06" "0.80" "protection for optical media" .TH DVDISASTER 1 "2020-08-30" "0.80" "protection for optical media"
.SH NAME .SH NAME
DVDISASTER \- data loss/scratch/aging protection for optical media DVDISASTER \- data loss/scratch/aging protection for optical media
@@ -50,6 +50,7 @@ DVDISASTER \- data loss/scratch/aging protection for optical media
.RB [\| \-\-medium-info \|] .RB [\| \-\-medium-info \|]
.RB [\| \-\-no-progress \|] .RB [\| \-\-no-progress \|]
.RB [\| \-\-old-ds-marker \|] .RB [\| \-\-old-ds-marker \|]
.RB [\| \-\-no-bdr-defect-management \|]
.RB [\| \-\-prefetch-sectors .RB [\| \-\-prefetch-sectors
.IR n \|] .IR n \|]
.RB [\| \-\-raw-mode .RB [\| \-\-raw-mode
@@ -225,6 +226,21 @@ RS02 images:
\-n BDXL3 augments image suitable for three layered BDXL media. \-n BDXL3 augments image suitable for three layered BDXL media.
.RE .RE
.RS .RS
\-n BDXL4 augments image suitable for quadruple layered BDXL media.
.RE
.RS
\-n BDNODM\ \ \ \ augments image suitable for BD media burnt without defect management.
.RE
.RS
\-n BD2NODM\ \ augments image suitable for two layered BD media burnt without defect management.
.RE
.RS
\-n BDXL3NODM augments image suitable for three layered BDXL media burnt without defect management.
.RE
.RS
\-n BDXL4NODM augments image suitable for quadruple layered BDXL media burnt without defect management.
.RE
.RS
\-n x\ \ \ \ \ augments image using approx. x sectors in total. \-n x\ \ \ \ \ augments image using approx. x sectors in total.
.RE .RE
.RS .RS
@@ -240,9 +256,22 @@ RS03 images:
.RS .RS
Setting the redundancy is not possible due to constraints in the format. Setting the redundancy is not possible due to constraints in the format.
The codec will automatically choose the size of the smallest fitting medium. The codec will automatically choose the size of the smallest fitting medium.
However, see --no-bdr-defect-management below.
.RE .RE
.RE .RE
.TP
.B \-\-no-bdr-defect-management
Enable bigger augmented images for BD-R (around +3%).
If you know you will use a BD-R medium and want to maximize the free space
for parity data, you can skip the defect management formatting before burning,
at the expense of potential coasters. Specify this option to tell dvdisaster
to produce bigger images that will only fit on BD-R media burnt without defect
management. Some burning softwares call it "formatting" the BD-R before burning.
Note that should you need to repair such an augmented image, you'll then need to
specify this option on the command-line too.
.RE
.TP .TP
.B \-m, \-\-method n .B \-m, \-\-method n
lists/selects error correction methods (default: RS01). lists/selects error correction methods (default: RS01).

Binary file not shown.

View File

@@ -1,83 +1,83 @@
b064d001e5e4ed8221eb9f10d784cf45 *dvdisaster.h b064d001e5e4ed8221eb9f10d784cf45 *src/dvdisaster.h
79abb986b900ec06a73256876ba0d65c *galois-inlines.h 79abb986b900ec06a73256876ba0d65c *src/galois-inlines.h
14eb94f981903fcffe2ccb33aa2cb9db *md5.h 14eb94f981903fcffe2ccb33aa2cb9db *src/md5.h
f2d723717ca5f450ee8cc0b556f5506a *read-linear.h f2d723717ca5f450ee8cc0b556f5506a *src/read-linear.h
100127beaecc24b28b2b80d76bbf68c8 *rs01-includes.h 100127beaecc24b28b2b80d76bbf68c8 *src/rs01-includes.h
5b39a23de01c988d562d70ed68682ab7 *rs02-includes.h 5b39a23de01c988d562d70ed68682ab7 *src/rs02-includes.h
4407ce43eae55b19409be9980432c94f *rs03-includes.h 4407ce43eae55b19409be9980432c94f *src/rs03-includes.h
2a5980c706c67bec479e4532ab9a7093 *scsi-layer.h 2a5980c706c67bec479e4532ab9a7093 *src/scsi-layer.h
c779a2908542c6a519ed7cdfc4e5e073 *udf.h c779a2908542c6a519ed7cdfc4e5e073 *src/udf.h
8f86a75f83a3bc9b6ce54cce037b3c75 *bitmap.c 8f86a75f83a3bc9b6ce54cce037b3c75 *src/bitmap.c
5230bd572fc8ef1857063c885c00463a *build.c 5230bd572fc8ef1857063c885c00463a *src/build.c
7b59033ebffd6d8230efaf6834b2f942 *cacheprobe.c 7b59033ebffd6d8230efaf6834b2f942 *src/cacheprobe.c
bfb6d7ed2a921ce18dc0339774f72f41 *closure.c bfb6d7ed2a921ce18dc0339774f72f41 *src/closure.c
e5bd212395758ae0b7e97d70c7a2df55 *crc32.c e5bd212395758ae0b7e97d70c7a2df55 *src/crc32.c
7f5951182421a0366782b191a0b4ba82 *crcbuf.c 7f5951182421a0366782b191a0b4ba82 *src/crcbuf.c
abb7c9decfd43935c943bc0dd1bab0d5 *curve.c abb7c9decfd43935c943bc0dd1bab0d5 *src/curve.c
f96a3e006fc5d1c5d181e5056377c9ce *debug.c f96a3e006fc5d1c5d181e5056377c9ce *src/debug.c
6f8843d1cccc55506771ab02168b2df3 *ds-marker.c 6f8843d1cccc55506771ab02168b2df3 *src/ds-marker.c
19d0f85d035115f3bd8d4472e6379058 *dvdisaster.c 19d0f85d035115f3bd8d4472e6379058 *src/dvdisaster.c
1c8136affed485adaf60e7904d9930a4 *ecc-rs01.c 1c8136affed485adaf60e7904d9930a4 *src/ecc-rs01.c
7b301352a60c18c25f84c8cc7a36fd48 *ecc-rs02.c 7b301352a60c18c25f84c8cc7a36fd48 *src/ecc-rs02.c
91aa71f03dc9dade2e97dc59d7ec38f0 *ecc-rs03.c 91aa71f03dc9dade2e97dc59d7ec38f0 *src/ecc-rs03.c
39900d26ddcbb7c7e2a9198de14bace1 *endian.c 39900d26ddcbb7c7e2a9198de14bace1 *src/endian.c
3f6e9dffb9de733dcccc916ca38292ca *galois.c 3f6e9dffb9de733dcccc916ca38292ca *src/galois.c
abc8a8d55248eab5416c45104a033171 *help-dialogs.c abc8a8d55248eab5416c45104a033171 *src/help-dialogs.c
547bf9a9d005419a0ed601317aeb4e14 *heuristic-lec.c 547bf9a9d005419a0ed601317aeb4e14 *src/heuristic-lec.c
746666ade12c2db41ce9af6f55e4c13c *icon-factory.c 746666ade12c2db41ce9af6f55e4c13c *src/icon-factory.c
b3db603f77fd2735a6e8b1c568f7bdac *image.c b3db603f77fd2735a6e8b1c568f7bdac *src/image.c
fe9de426f96e6d206d1482a24f589253 *large-io.c fe9de426f96e6d206d1482a24f589253 *src/large-io.c
abed1a50b9751387dc1e3cbc84a61fba *l-ec.c abed1a50b9751387dc1e3cbc84a61fba *src/l-ec.c
6960647dc7fc5ce8a2727326946aaff1 *logfile.c 6960647dc7fc5ce8a2727326946aaff1 *src/logfile.c
92e81646ef4e8618ded5d82db6a6163a *maintenance.c 92e81646ef4e8618ded5d82db6a6163a *src/maintenance.c
3c3eebc43fc7aff3865022207e06153b *main-window.c 3c3eebc43fc7aff3865022207e06153b *src/main-window.c
913554f7e994e212f6a52b769eef24bb *md5.c 913554f7e994e212f6a52b769eef24bb *src/md5.c
8f0acf2f7d98a55d05a4721d97741c7c *medium-info.c 8f0acf2f7d98a55d05a4721d97741c7c *src/medium-info.c
ce145372a25e0fb96070d460da7bdbb4 *memtrack.c ce145372a25e0fb96070d460da7bdbb4 *src/memtrack.c
66cdf82b59fd973e3060d163b6887a20 *menubar.c 66cdf82b59fd973e3060d163b6887a20 *src/menubar.c
5006b2db93b210be3fb630e8d9463239 *method.c 5006b2db93b210be3fb630e8d9463239 *src/method.c
17183bad35db217e2c352178844ceda3 *method-link.c 17183bad35db217e2c352178844ceda3 *src/method-link.c
2af6685017c247de7458e9c4d39b6ed5 *misc.c 2af6685017c247de7458e9c4d39b6ed5 *src/misc.c
6523662e8e5aa2daf38a7e8c07ce1180 *preferences.c 6523662e8e5aa2daf38a7e8c07ce1180 *src/preferences.c
5e7b077020e063951cc72ea57f5f046a *print-sense.c 5e7b077020e063951cc72ea57f5f046a *src/print-sense.c
cdde449dd2a8f64b560ff18a36f86234 *random.c cdde449dd2a8f64b560ff18a36f86234 *src/random.c
28f42d264cd18bb2e0ccdd8e15a0172e *raw-editor.c 28f42d264cd18bb2e0ccdd8e15a0172e *src/raw-editor.c
1d416f611a175ba15be27f7f5686dd98 *raw-sector-cache.c 1d416f611a175ba15be27f7f5686dd98 *src/raw-sector-cache.c
7f281312b3a65666f7eebaadb62e7f6e *read-adaptive.c 7f281312b3a65666f7eebaadb62e7f6e *src/read-adaptive.c
ccdc572bb24d20ae6fb53f360318b492 *read-adaptive-window.c ccdc572bb24d20ae6fb53f360318b492 *src/read-adaptive-window.c
af7a757cad586d3766a3eaad382c6737 *read-linear.c af7a757cad586d3766a3eaad382c6737 *src/read-linear.c
47dc58effd96f2b23182a4595ca36171 *read-linear-window.c 47dc58effd96f2b23182a4595ca36171 *src/read-linear-window.c
edc0e564573d595c1196c4dc0e70e659 *recover-raw.c edc0e564573d595c1196c4dc0e70e659 *src/recover-raw.c
ea4d6894e717d4957cde686f88d7bdfd *rs01-common.c ea4d6894e717d4957cde686f88d7bdfd *src/rs01-common.c
aa9d409ee4eeaa7ba92d731cf32ee727 *rs01-create.c aa9d409ee4eeaa7ba92d731cf32ee727 *src/rs01-create.c
ab15d7470a2fe950ebb33134018f044f *rs01-fix.c ab15d7470a2fe950ebb33134018f044f *src/rs01-fix.c
cb3722894665baf9c4ff4c26ff79737b *rs01-verify.c cb3722894665baf9c4ff4c26ff79737b *src/rs01-verify.c
5cdecc33da1579733f0545944c4069ab *rs01-window.c 5cdecc33da1579733f0545944c4069ab *src/rs01-window.c
b33a0982df485b4e52e56fc1c61285ae *rs02-common.c b33a0982df485b4e52e56fc1c61285ae *src/rs02-common.c
a1025fcc9455219937bae5bfadf0abf5 *rs02-create.c a1025fcc9455219937bae5bfadf0abf5 *src/rs02-create.c
f466c8296a37ea88b64aec9c870d6d75 *rs02-fix.c f466c8296a37ea88b64aec9c870d6d75 *src/rs02-fix.c
369ec37d67674ffd2627f0373a566f0c *rs02-recognize.c 369ec37d67674ffd2627f0373a566f0c *src/rs02-recognize.c
8cc283e60a73493ac6ba60a2f4af1754 *rs02-verify.c 8cc283e60a73493ac6ba60a2f4af1754 *src/rs02-verify.c
eccac3ed74b32508b27de0e0d363c6b1 *rs02-window.c eccac3ed74b32508b27de0e0d363c6b1 *src/rs02-window.c
9a9b966171f1b375cf3381b545a1c6d4 *rs03-common.c 9a9b966171f1b375cf3381b545a1c6d4 *src/rs03-common.c
2502514702687a2a252feace096d20f4 *rs03-create.c 2502514702687a2a252feace096d20f4 *src/rs03-create.c
19676ef95e635206c19dfe12b957e4b2 *rs03-fix.c 19676ef95e635206c19dfe12b957e4b2 *src/rs03-fix.c
b012df78d2c546c87f6dd75769515409 *rs03-preferences.c b012df78d2c546c87f6dd75769515409 *src/rs03-preferences.c
7d6101e6a95aeb45d6cd03ffe8891b96 *rs03-recognize.c 7d6101e6a95aeb45d6cd03ffe8891b96 *src/rs03-recognize.c
b7a6a6c64b4034380c581a5499940db4 *rs03-verify.c b7a6a6c64b4034380c581a5499940db4 *src/rs03-verify.c
1d2b071943c121bf0c47a2e047317262 *rs03-window.c 1d2b071943c121bf0c47a2e047317262 *src/rs03-window.c
a2e1e28a609af85d9b83f01339b33a62 *rs-decoder.c a2e1e28a609af85d9b83f01339b33a62 *src/rs-decoder.c
3882a92849cd23e64c81262be6e52650 *rs-encoder-altivec.c 3882a92849cd23e64c81262be6e52650 *src/rs-encoder-altivec.c
1fc6cad3af2461e7974bf49e8f1bf5e9 *rs-encoder.c 1fc6cad3af2461e7974bf49e8f1bf5e9 *src/rs-encoder.c
f7f3e2708f0c389ed53c0f1083567a55 *rs-encoder-sse2.c f7f3e2708f0c389ed53c0f1083567a55 *src/rs-encoder-sse2.c
2e099a3d88f25f81420b96fe9bd62f44 *scsi-freebsd.c 2e099a3d88f25f81420b96fe9bd62f44 *src/scsi-freebsd.c
cd58a45387267fe0728f439d7bb2045d *scsi-layer.c cd58a45387267fe0728f439d7bb2045d *src/scsi-layer.c
b1b6bd57433eedab3a4f35389a182d14 *scsi-linux.c b1b6bd57433eedab3a4f35389a182d14 *src/scsi-linux.c
7064327dc15a2d88e5375176d4c64132 *scsi-netbsd.c 7064327dc15a2d88e5375176d4c64132 *src/scsi-netbsd.c
3c0e100cdd499b1c23ac5e12b1fd6694 *scsi-simulated.c 3c0e100cdd499b1c23ac5e12b1fd6694 *src/scsi-simulated.c
be42d574e6340845d984c21dc902af1a *scsi-unknown.c be42d574e6340845d984c21dc902af1a *src/scsi-unknown.c
85aa8093f41c36ce791363e94f488dec *show-manual.c 85aa8093f41c36ce791363e94f488dec *src/show-manual.c
6099911dd508701b0b8b5d09105faf95 *smart-lec.c 6099911dd508701b0b8b5d09105faf95 *src/smart-lec.c
10f3e2b054fe3c1ac69c738b97f1beaa *spiral.c 10f3e2b054fe3c1ac69c738b97f1beaa *src/spiral.c
dec5fbde631058d48866cc1d77446d37 *udf.c dec5fbde631058d48866cc1d77446d37 *src/udf.c
6741fc5457e9c2026451403f2d45096c *welcome-window.c 6741fc5457e9c2026451403f2d45096c *src/welcome-window.c

View File

@@ -7,7 +7,7 @@ cat > Makefile <<EOF
EOF EOF
for i in ../*.c; do for i in ../src/*.c; do
cfiles="$cfiles $i" cfiles="$cfiles $i"
nopath=`echo $i | sed -e 's/..\///'` nopath=`echo $i | sed -e 's/..\///'`
cfiles2="$cfiles2 $nopath" cfiles2="$cfiles2 $nopath"
@@ -34,7 +34,7 @@ messages.pot: \$(CFILES)
@cd ..; xgettext --no-wrap -cTRANSLATORS: -o locale/messages.pot -k_ -k_utf \$(CFILES_NP) @cd ..; xgettext --no-wrap -cTRANSLATORS: -o locale/messages.pot -k_ -k_utf \$(CFILES_NP)
clean: clean:
rm -f messages.pot @rm -f messages.pot
EOF EOF

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,7 @@ ISODIR=/var/tmp/regtest
if ! test -d $ISODIR; then if ! test -d $ISODIR; then
echo "$ISODIR does not exist." echo "$ISODIR does not exist."
echo "Please create it manually, or edit common.bash" echo "Please create it manually, or edit common.bash"
exit 0 exit 1
fi fi
LOGDIR="/dev/shm" LOGDIR="/dev/shm"
@@ -28,6 +28,8 @@ if ! $MD5SUM $RNDSEQ >/dev/null 2>&1; then
MD5SUM=../simple-md5sum MD5SUM=../simple-md5sum
fi fi
nbfailed=0
# Assemble sed expressions for removal of variable output contents # Assemble sed expressions for removal of variable output contents
SED_REMOVE_ISO_DIR="([a-zA-Z]:/[a-zA-Z0-9/]+)?${ISODIR}/" SED_REMOVE_ISO_DIR="([a-zA-Z]:/[a-zA-Z0-9/]+)?${ISODIR}/"
@@ -44,12 +46,13 @@ fi
# Usage # Usage
if test "$1" == "--help" || test "$1" == "-h"; then if test "$1" == "--help" || test "$1" == "-h"; then
echo "Usage: $0 [gui] [all|cont <test case>]" echo "Usage: $0 [gui] [all|[cont|only] <test case>]"
exit 0; exit 1;
fi fi
doall="no" doall="no"
cont_at="false" cont_at="false"
only_this_one="false"
gui_mode="false" gui_mode="false"
param=($*) param=($*)
@@ -59,6 +62,7 @@ case "${param[0]}" in
gui_mode="true" gui_mode="true"
param[0]="${param[1]}" param[0]="${param[1]}"
param[1]="${param[2]}" param[1]="${param[2]}"
param[2]="${param[3]}"
;; ;;
esac esac
@@ -69,6 +73,9 @@ case "${param[0]}" in
cont) cont)
cont_at="${param[1]}" cont_at="${param[1]}"
;; ;;
only)
only_this_one="${param[1]}"
;;
esac esac
# Sanity check # Sanity check
@@ -78,7 +85,7 @@ if test -x $NEWVER; then
echo "OK" echo "OK"
else else
echo "missing." echo "missing."
exit 0 exit 1
fi fi
### Helper functions ### Helper functions
@@ -118,9 +125,19 @@ function try()
cont_at="false" cont_at="false"
fi fi
if test "$only_this_one" != "false"; then
if test "$only_this_one" != "${CODEC_PREFIX}_$2"; then
return 1
elif test "$only_this_one" == "done_please_exit"; then
exit $nbfailed
else
only_this_one="done_please_exit"
fi
fi
doit=$(echo $doit | cut -d\ -f 2) doit=$(echo $doit | cut -d\ -f 2)
if test $doall = "yes" || test $doit = "yes"; then if test $doall = "yes" || test $doit = "yes" || test $only_this_one != "false"; then
# Clean up temporary files # Clean up temporary files
if test -n "$TMPISO" && test -f "$TMPISO"; then if test -n "$TMPISO" && test -f "$TMPISO"; then
rm -f $TMPISO rm -f $TMPISO
@@ -136,10 +153,16 @@ function try()
REGTEST_SECTION="Test" REGTEST_SECTION="Test"
fi fi
echo -n "[ ] ${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - " if [ "$REGTEST_NO_UTF8" != 1 ]; then
echo -n "[ ] "
fi
echo -n "${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - "
return 0 return 0
else else
echo "[-] ${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - SKIPPED ($doit, ${CODEC_PREFIX}_$2)" if [ "$REGTEST_NO_UTF8" != 1 ]; then
echo -n "[-] "
fi
echo "${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - SKIPPED ($doit, ${CODEC_PREFIX}_$2)"
return 1 return 1
fi fi
} }
@@ -216,27 +239,37 @@ function run_regtest()
filter=cat filter=cat
echo "$options" | grep -qw SORTED && filter=sort echo "$options" | grep -qw SORTED && filter=sort
if [ "${CODEC_PREFIX}_${testsymbol}" = RS01_scan_no_device ] || [ "${CODEC_PREFIX}_${testsymbol}" = RS01_read_no_device ]; then if [ "${CODEC_PREFIX}_${testsymbol}" = RS01_scan_no_device ] || \
[ "${CODEC_PREFIX}_${testsymbol}" = RS01_read_no_device ] || \
[ "${CODEC_PREFIX}_${testsymbol}" = RS01_adaptive_no_device ]; then
# for Windows # for Windows
sed -i -re "s=device $NON_EXISTENT_DEVICE\.=/dev/sdz: No such file or directory=" $NEWLOG sed -i -re "s=device $NON_EXISTENT_DEVICE\.=/dev/sdz: No such file or directory=" $NEWLOG
fi fi
if ! diff <(tail -n +3 $REFLOG | $filter) <(sed -re "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG | $filter) >${DIFFLOG}; then if ! diff <(tail -n +3 $REFLOG | $filter) <(sed -re "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG | $filter) >${DIFFLOG}; then
printf "%b\r%b\n" "BAD; diffs found (<expected; >created):" "[\e[31m✘\e[0m]" if [ "$REGTEST_NO_UTF8" = 1 ]; then
echo "BAD; diffs found (<expected; >created):"
else
printf "%b\r%b\n" "BAD; diffs found (<expected; >created):" "[\e[31m✘\e[0m]"
fi
cat ${DIFFLOG} cat ${DIFFLOG}
if test "$interactive_diff" == "yes"; then if test "$interactive_diff" == "yes"; then
echo while true; do
echo ">> The diff can also be seen with: vimdiff $REFLOG $NEWLOG" read -n 1 -p ">> Press 'a' to accept this diff; 'v' to vimdiff; any other key to fail this test:" -e answer
read -n 1 -p ">> Press 'a' to accept this diff; any other key to fail this test:" -e answer if test "$answer" == "a"; then
if test "$answer" == "a"; then cp $REFLOG $LOGDIR
cp $REFLOG $LOGDIR head -n 2 $LOGDIR/${CODEC_PREFIX}_${testsymbol} >$REFLOG
head -n 2 $LOGDIR/${CODEC_PREFIX}_${testsymbol} >$REFLOG sed -e "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG >>$REFLOG
sed -e "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG >>$REFLOG pass="skip"
pass="skip" elif test "$answer" == "v"; then
else vimdiff $REFLOG $NEWLOG
pass="false" continue
fi else
pass="false"
fi
break
done
else else
pass="false" pass="false"
fi fi
@@ -253,7 +286,7 @@ function run_regtest()
xterm_pid=$! xterm_pid=$!
fi fi
LANG=en_EN.UTF-8 $NEWVER --regtest $extra_args --resource-file $LOGDIR/.dvdisaster-regtest >>$NEWLOG 2>&1 LANG=en_EN.UTF-8 timeout 15 $NEWVER --regtest $extra_args --resource-file $LOGDIR/.dvdisaster-regtest >>$NEWLOG 2>&1
rm -f $LOGDIR/.dvdisaster-regtest rm -f $LOGDIR/.dvdisaster-regtest
fi fi
@@ -265,8 +298,11 @@ function run_regtest()
if test ${image_md5} != "ignore"; then if test ${image_md5} != "ignore"; then
md5=$($MD5SUM ${testiso} | cut -d\ -f 1) md5=$($MD5SUM ${testiso} | cut -d\ -f 1)
if test "$image_md5" != "$md5"; then if test "$image_md5" != "$md5"; then
echo "BAD; md5 sum mismatch in image file:" if [ "$REGTEST_NO_UTF8" = 1 ]; then
printf "%b\r%b\n" "BAD; md5 sum mismatch in image file:" "[\e[31m✘\e[0m]" echo "BAD; md5 sum mismatch in image file:"
else
printf "%b\r%b\n" "BAD; md5 sum mismatch in image file:" "[\e[31m✘\e[0m]"
fi
echo "... expected image: $image_md5" echo "... expected image: $image_md5"
echo "... generated image: $md5" echo "... generated image: $md5"
pass="false" pass="false"
@@ -276,7 +312,7 @@ function run_regtest()
if test ${ecc_md5} != "ignore"; then if test ${ecc_md5} != "ignore"; then
md5=$($MD5SUM ${testecc} | cut -d\ -f 1) md5=$($MD5SUM ${testecc} | cut -d\ -f 1)
if test "$ecc_md5" != "$md5"; then if test "$ecc_md5" != "$md5"; then
if [ "$pass" = false ]; then if [ "$pass" = false ] || [ "$REGTEST_NO_UTF8" = 1 ]; then
echo "BAD; md5 sum mismatch in ecc file:" echo "BAD; md5 sum mismatch in ecc file:"
else else
printf "%b\r%b\n" "BAD; md5 sum mismatch in ecc file:" "[\e[31m✘\e[0m]" printf "%b\r%b\n" "BAD; md5 sum mismatch in ecc file:" "[\e[31m✘\e[0m]"
@@ -289,13 +325,19 @@ function run_regtest()
case "${pass}" in case "${pass}" in
true) true)
printf "%b\r%b\n" "GOOD" "[\e[32m✓\e[0m]" if [ "$REGTEST_NO_UTF8" = 1 ]; then
echo GOOD
else
printf "%b\r%b\n" "GOOD" "[\e[32m✓\e[0m]"
fi
;; ;;
skip) skip)
;; ;;
*) *)
nbfailed=$((nbfailed + 1))
[ $nbfailed -ge 256 ] && nbfailed=255
echo "test symbol for config: $testsymbol" echo "test symbol for config: $testsymbol"
if test "$fail_on_bad" == "yes"; then if test "$fail_on_bad" == "yes"; then
next=$(grep -A 1 ${CODEC_PREFIX}_$testsymbol config.txt | tail -n 1 | cut -d\ -f 1) next=$(grep -A 1 ${CODEC_PREFIX}_$testsymbol config.txt | tail -n 1 | cut -d\ -f 1)

View File

@@ -1,6 +1,6 @@
# Global toggles # Global toggles
FAIL_ON_BAD yes FAIL_ON_BAD no
SPAWN_LOG_WINDOW no SPAWN_LOG_WINDOW no
INTERACTIVE_DIFF yes INTERACTIVE_DIFF yes

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006. Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
RS01-type ECC found
Adaptive reading: Trying to collect enough data for error correction. Adaptive reading: Trying to collect enough data for error correction.
* *

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006. Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
RS01-type ECC found
Adaptive reading: Trying to collect enough data for error correction. Adaptive reading: Trying to collect enough data for error correction.
Creating new rs01-tmp.iso image. Creating new rs01-tmp.iso image.
Repairable: 0.0% (correctable: 0; now reading [0..20999], size 21000) Repairable: 0.0% (correctable: 0; now reading [0..20999], size 21000)

View File

@@ -86,7 +86,7 @@ try_sector: trying sector 20850
try_sector: no cookie, skipping current modulo try_sector: no cookie, skipping current modulo
RS02Recognize: skipping exhaustive RS02 search RS02Recognize: skipping exhaustive RS02 search
...trying RS03 ...trying RS03
RS03Recognize: medium sim-cd RS03RecognizeImage: medium sim-cd
FindRS03HeaderInImage: medium sim-cd FindRS03HeaderInImage: medium sim-cd
RS03RecognizeImage: skipping exhaustive RS03 search RS03RecognizeImage: skipping exhaustive RS03 search
...no augmented image detected. ...no augmented image detected.

View File

@@ -86,7 +86,7 @@ try_sector: trying sector 20850
try_sector: no cookie, skipping current modulo try_sector: no cookie, skipping current modulo
RS02Recognize: skipping exhaustive RS02 search RS02Recognize: skipping exhaustive RS02 search
...trying RS03 ...trying RS03
RS03Recognize: medium sim-cd RS03RecognizeImage: medium sim-cd
FindRS03HeaderInImage: medium sim-cd FindRS03HeaderInImage: medium sim-cd
RS03RecognizeImage: skipping exhaustive RS03 search RS03RecognizeImage: skipping exhaustive RS03 search
...no augmented image detected. ...no augmented image detected.

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 21044 sectors, created 16-07-2006. Medium "Random Image": CD-R mode 1, 21044 sectors, created 16-07-2006.
RS01-type ECC found
Adaptive reading: Trying to collect enough data for error correction. Adaptive reading: Trying to collect enough data for error correction.
* Warning: Medium contains 44 sectors more as recorded in the .ecc file * Warning: Medium contains 44 sectors more as recorded in the .ecc file
* (Medium: 21044 sectors; expected from .ecc file: 21000 sectors). * (Medium: 21044 sectors; expected from .ecc file: 21000 sectors).

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 20956 sectors, created 16-07-2006. Medium "Random Image": CD-R mode 1, 20956 sectors, created 16-07-2006.
RS01-type ECC found
Adaptive reading: Trying to collect enough data for error correction. Adaptive reading: Trying to collect enough data for error correction.
* Warning: Medium contains 44 sectors less as recorded in the .ecc file * Warning: Medium contains 44 sectors less as recorded in the .ecc file
* (Medium: 20956 sectors; expected from .ecc file: 21000 sectors). * (Medium: 20956 sectors; expected from .ecc file: 21000 sectors).

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 21002 sectors, created 16-07-2006. Medium "Random Image": CD-R mode 1, 21002 sectors, created 16-07-2006.
RS01-type ECC found
Adaptive reading: Trying to collect enough data for error correction. Adaptive reading: Trying to collect enough data for error correction.
* Warning: Medium contains 2 sectors more as recorded in the .ecc file * Warning: Medium contains 2 sectors more as recorded in the .ecc file
* (Medium: 21002 sectors; expected from .ecc file: 21000 sectors). * (Medium: 21002 sectors; expected from .ecc file: 21000 sectors).

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006. Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006.
RS02-type ECC found
* Warning: This image requires dvdisaster-99.99! * Warning: This image requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour. * Proceeding could trigger incorrect behaviour.
* Please visit http://www.dvdisaster.org for an upgrade. * Please visit http://www.dvdisaster.org for an upgrade.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006. Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006.
RS02-type ECC found
Adaptive reading: Trying to collect enough data for error correction. Adaptive reading: Trying to collect enough data for error correction.
Creating new rs02-tmp.iso image. Creating new rs02-tmp.iso image.
Repairable: 0.2% (missing: 34932; now reading [0..34931], size 34932)Repairable: 0.3% (missing: 34900; now reading [0..34931], size 34932)Repairable: 0.4% (missing: 34868; now reading [0..34931], size 34932)Repairable: 0.5% (missing: 34820; now reading [0..34931], size 34932)Repairable: 0.6% (missing: 34788; now reading [0..34931], size 34932)Repairable: 0.7% (missing: 34756; now reading [0..34931], size 34932)Repairable: 0.8% (missing: 34724; now reading [0..34931], size 34932)Repairable: 0.9% (missing: 34692; now reading [0..34931], size 34932)Repairable: 1.0% (missing: 34644; now reading [0..34931], size 34932)Repairable: 1.1% (missing: 34612; now reading [0..34931], size 34932)Repairable: 1.2% (missing: 34580; now reading [0..34931], size 34932)Repairable: 1.3% (missing: 34548; now reading [0..34931], size 34932)Repairable: 1.4% (missing: 34516; now reading [0..34931], size 34932)Repairable: 1.5% (missing: 34484; now reading [0..34931], size 34932)Repairable: 1.6% (missing: 34436; now reading [0..34931], size 34932)Repairable: 1.7% (missing: 34404; now reading [0..34931], size 34932)Repairable: 1.8% (missing: 34372; now reading [0..34931], size 34932)Repairable: 1.9% (missing: 34340; now reading [0..34931], size 34932)Repairable: 2.0% (missing: 34308; now reading [0..34931], size 34932)Repairable: 2.1% (missing: 34260; now reading [0..34931], size 34932)Repairable: 2.2% (missing: 34228; now reading [0..34931], size 34932)Repairable: 2.3% (missing: 34196; now reading [0..34931], size 34932)Repairable: 2.4% (missing: 34164; now reading [0..34931], size 34932)Repairable: 2.5% (missing: 34132; now reading [0..34931], size 34932)Repairable: 2.6% (missing: 34084; now reading [0..34931], size 34932)Repairable: 2.7% (missing: 34052; now reading [0..34931], size 34932)Repairable: 2.8% (missing: 34020; now reading [0..34931], size 34932)Repairable: 2.9% (missing: 33988; now reading [0..34931], size 34932)Repairable: 3.0% (missing: 33956; now reading [0..34931], size 34932)Sector 992, try 1: Medium Error; Unrecovered read error. Repairable: 0.2% (missing: 34932; now reading [0..34931], size 34932)Repairable: 0.3% (missing: 34900; now reading [0..34931], size 34932)Repairable: 0.4% (missing: 34868; now reading [0..34931], size 34932)Repairable: 0.5% (missing: 34820; now reading [0..34931], size 34932)Repairable: 0.6% (missing: 34788; now reading [0..34931], size 34932)Repairable: 0.7% (missing: 34756; now reading [0..34931], size 34932)Repairable: 0.8% (missing: 34724; now reading [0..34931], size 34932)Repairable: 0.9% (missing: 34692; now reading [0..34931], size 34932)Repairable: 1.0% (missing: 34644; now reading [0..34931], size 34932)Repairable: 1.1% (missing: 34612; now reading [0..34931], size 34932)Repairable: 1.2% (missing: 34580; now reading [0..34931], size 34932)Repairable: 1.3% (missing: 34548; now reading [0..34931], size 34932)Repairable: 1.4% (missing: 34516; now reading [0..34931], size 34932)Repairable: 1.5% (missing: 34484; now reading [0..34931], size 34932)Repairable: 1.6% (missing: 34436; now reading [0..34931], size 34932)Repairable: 1.7% (missing: 34404; now reading [0..34931], size 34932)Repairable: 1.8% (missing: 34372; now reading [0..34931], size 34932)Repairable: 1.9% (missing: 34340; now reading [0..34931], size 34932)Repairable: 2.0% (missing: 34308; now reading [0..34931], size 34932)Repairable: 2.1% (missing: 34260; now reading [0..34931], size 34932)Repairable: 2.2% (missing: 34228; now reading [0..34931], size 34932)Repairable: 2.3% (missing: 34196; now reading [0..34931], size 34932)Repairable: 2.4% (missing: 34164; now reading [0..34931], size 34932)Repairable: 2.5% (missing: 34132; now reading [0..34931], size 34932)Repairable: 2.6% (missing: 34084; now reading [0..34931], size 34932)Repairable: 2.7% (missing: 34052; now reading [0..34931], size 34932)Repairable: 2.8% (missing: 34020; now reading [0..34931], size 34932)Repairable: 2.9% (missing: 33988; now reading [0..34931], size 34932)Repairable: 3.0% (missing: 33956; now reading [0..34931], size 34932)Sector 992, try 1: Medium Error; Unrecovered read error.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
Using READ CD. Using READ CD.
Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006. Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006.
RS01-type ECC found
Adaptive reading: Trying to collect enough data for error correction. Adaptive reading: Trying to collect enough data for error correction.
* *

View File

@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
Opening rs02-tmp.iso: 30000 medium sectors. Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -16,7 +16,7 @@ Completing image rs02-tmp.iso. Only missing sectors will be read.
Opening rs02-tmp.iso: 30000 medium sectors. Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -16,7 +16,7 @@ All sectors successfully read.
Opening rs02-tmp.iso: 30000 medium sectors. Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 39809 medium sectors.
Image size is now: 30000 medium sectors. Image size is now: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 39810 medium sectors.
Image size is now: 30000 medium sectors and 56 bytes. Image size is now: 30000 medium sectors and 56 bytes.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors). New image size is 68 MiB (34933 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34932 medium sectors.
Image size is now: 30000 medium sectors. Image size is now: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34933 medium sectors.
Image size is now: 30000 medium sectors and 56 bytes. Image size is now: 30000 medium sectors and 56 bytes.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors). New image size is 68 MiB (34933 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34935 medium sectors.
Image size is now: 30000 medium sectors. Image size is now: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34935 medium sectors.
Image size is now: 30000 medium sectors and 137 bytes. Image size is now: 30000 medium sectors and 137 bytes.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors). New image size is 68 MiB (34933 sectors).

View File

@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
Opening rs02-tmp.iso: 30000 medium sectors. Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
* *

View File

@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
Opening rs02-tmp.iso: 30000 medium sectors and 137 bytes. Opening rs02-tmp.iso: 30000 medium sectors and 137 bytes.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors). New image size is 68 MiB (34933 sectors).

View File

@@ -17,7 +17,7 @@ All sectors successfully read. Checksums match.
Opening rs02-tmp.iso: 30000 medium sectors. Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -20,7 +20,7 @@ Opening rs02-tmp.iso: 49935 medium sectors.
Image size is now: 30000 medium sectors. Image size is now: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -17,7 +17,7 @@ All sectors successfully read. Checksums match.
Opening rs02-tmp.iso: 30000 medium sectors. Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -20,7 +20,7 @@ Opening rs02-tmp.iso: 36975 medium sectors.
Image size is now: 30000 medium sectors. Image size is now: 30000 medium sectors.
Augmenting image with Method RS02: Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy). 58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors). New image size is 68 MiB (34932 sectors).

View File

@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
Opening rs03i-tmp.iso: 21000 medium sectors. Opening rs03i-tmp.iso: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -249,7 +249,7 @@ ndata = 216
nroots = 39 (18.1%) nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
CrcBufValid: NOT complete CrcBufValid: NOT complete
Cache allocation: 110592K+12288K+9984K=129M (data+parity+descrambling) Cache allocation: 110592K+12288K+9984K=129M (data+parity+descrambling)

View File

@@ -250,7 +250,7 @@ ndata = 216
nroots = 39 (18.1%) nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
CrcBufValid: buffer VALID CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum CrcBuf present, augmented image: using data MD5 sum

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29835 medium sectors.
* Truncating image to data part (21000 sectors). * Truncating image to data part (21000 sectors).
Image size is now: 21000 medium sectors. Image size is now: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29835 medium sectors.
* Truncating image to data part (21001 sectors). * Truncating image to data part (21001 sectors).
Image size is now: 21000 medium sectors and 56 bytes. Image size is now: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29887 medium sectors.
* Truncating image to data part (21000 sectors). * Truncating image to data part (21000 sectors).
Image size is now: 21000 medium sectors. Image size is now: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24927 medium sectors.
* Truncating image to data part (21001 sectors). * Truncating image to data part (21001 sectors).
Image size is now: 21000 medium sectors and 56 bytes. Image size is now: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24990 medium sectors.
* Truncating image to data part (21000 sectors). * Truncating image to data part (21000 sectors).
Image size is now: 21000 medium sectors. Image size is now: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24990 medium sectors.
* Truncating image to data part (21001 sectors). * Truncating image to data part (21001 sectors).
Image size is now: 21000 medium sectors and 56 bytes. Image size is now: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
Opening rs03i-tmp.iso: 21000 medium sectors. Opening rs03i-tmp.iso: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
* *

View File

@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
Opening rs03i-tmp.iso: 21000 medium sectors and 56 bytes. Opening rs03i-tmp.iso: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
Image has been augmented with error correction data. Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors). New image size is 48 MiB (24990 sectors).

View File

@@ -252,7 +252,7 @@ ndata = 216
nroots = 39 (18.1%) nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
CrcBufValid: buffer VALID CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum CrcBuf present, augmented image: using data MD5 sum

View File

@@ -209,7 +209,7 @@ ndata = 216
nroots = 39 (18.1%) nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
CrcBufValid: buffer VALID CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum CrcBuf present, augmented image: using data MD5 sum

View File

@@ -266,7 +266,7 @@ ndata = 216
nroots = 39 (18.1%) nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
CrcBufValid: buffer VALID CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum CrcBuf present, augmented image: using data MD5 sum

View File

@@ -263,7 +263,7 @@ ndata = 216
nroots = 39 (18.1%) nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy). 41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give * Warning: Using redundancies below 20% may not give
* the expected data loss protection. * the expected data loss protection.
CrcBufValid: buffer VALID CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum CrcBuf present, augmented image: using data MD5 sum

View File

@@ -441,7 +441,7 @@ fi
# Tests whether CRC and ECC information is taken from the read process, # Tests whether CRC and ECC information is taken from the read process,
# not the wrong ecc file. # not the wrong ecc file.
if false && try "read image with wrong ecc (RS01) and create new ecc" ecc_recreate_after_read_wrong_rs01; then if try "read image with wrong ecc (RS01) and create new ecc" ecc_recreate_after_read_wrong_rs01; then
cp $MASTERISO $SIMISO cp $MASTERISO $SIMISO
$NEWVER --debug -i$TMPISO --random-image $((ISOSIZE-777)) --random-seed 1337 >>$LOGFILE 2>&1 $NEWVER --debug -i$TMPISO --random-image $((ISOSIZE-777)) --random-seed 1337 >>$LOGFILE 2>&1
@@ -1478,9 +1478,6 @@ fi
REGTEST_SECTION="Reading tests (adaptive)" REGTEST_SECTION="Reading tests (adaptive)"
echo "Currently not enabled!"
exit 0
# Read good image with error correction data available # Read good image with error correction data available
if try "reading good image" adaptive_good; then if try "reading good image" adaptive_good; then

View File

@@ -730,7 +730,7 @@ fi
# Fix image containing 137 extra bytes # Fix image containing 137 extra bytes
if false && try "trying to fix image with 137 extra bytes" fix_image_plus137; then if try "trying to fix image with 137 extra bytes" fix_image_plus137; then
# Test possibly broken on upstream 0.79.6, forcefully ignoring # Test possibly broken on upstream 0.79.6, forcefully ignoring
cp $ISO_PLUS137 $TMPISO cp $ISO_PLUS137 $TMPISO
@@ -743,7 +743,7 @@ fi
# error in the zero-padded area following the 137 bytes. # error in the zero-padded area following the 137 bytes.
# Both shall be corrected. # Both shall be corrected.
if false && try "trying to fix image with error in 137 extra bytes" fix_image_error_in_plus137; then if try "trying to fix image with error in 137 extra bytes" fix_image_error_in_plus137; then
# Test possibly broken on upstream 0.79.6, forcefully ignoring # Test possibly broken on upstream 0.79.6, forcefully ignoring
cp $ISO_PLUS137 $TMPISO cp $ISO_PLUS137 $TMPISO
@@ -1775,9 +1775,6 @@ fi
REGTEST_SECTION="Reading tests (adaptive)" REGTEST_SECTION="Reading tests (adaptive)"
echo "Currently not enabled!"
exit 0
# Read complete / optimal image # Read complete / optimal image
if try "reading good image" adaptive_good; then if try "reading good image" adaptive_good; then

View File

@@ -6,4 +6,5 @@ for i in rs*.bash; do
allfailed=$((allfailed + ret)) allfailed=$((allfailed + ret))
done done
echo Failed $allfailed tests echo Failed $allfailed tests
[ $allfailed -ge 256 ] && allfailed=255
exit $allfailed exit $allfailed

View File

@@ -1,17 +1,21 @@
#!/usr/bin/env bash #!/usr/bin/env bash
build=$(grep BUILDNUM $1 2>/dev/null | cut -d\ -f3) build=$(grep BUILDNUM $1 2>/dev/null | cut -d\ -f3)
build=$((build+1)) build=$((build+1))
flavor=$(grep FLAVOR $1 2>/dev/null | cut -d\ -f3) cat >$1 <<EOF
if [ -z "$flavor" ]; then #ifdef CLI
flavor=UNKNOWN #define FLAVOR NOGUI
fi #else
echo "#define FLAVOR $flavor" >$1 #define FLAVOR GUI
#endif
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
EOF
echo "#define BUILDNUM $build" >>$1 echo "#define BUILDNUM $build" >>$1
if git describe >/dev/null 2>/dev/null; then if git describe >/dev/null 2>/dev/null; then
gitver=$(git describe --tags --dirty) gitver=$(git describe --tags --dirty)
echo "#define BUILD \"$gitver-$flavor-speed47.build$build\"" >>$1 echo "#define BUILD \"$gitver-\" TOSTRING(FLAVOR) \"-speed47.build$build\"" >>$1
else else
echo "#define BUILD \"$gitver-speed47.build$build\"" >$1 echo "#define BUILD TOSTRING(FLAVOR) \"-speed47.build$build\"" >>$1
fi fi
date=$(date +"%d.%m.%y (%A, %H:%M)") date=$(date +"%d.%m.%y (%A, %H:%M)")
echo "#define BDATE \"$date\"" >>$1 echo "#define BDATE \"$date\"" >>$1

View File

@@ -28,6 +28,33 @@
#define Verbose(format, ...) #define Verbose(format, ...)
#endif #endif
#ifdef SYS_MINGW
#include <windows.h>
/* safety margin in case we're getting UTF path names */
#define WIN_MAX_PATH (4*MAX_PATH)
/*
* Find the place of our executable
* (Windows only)
*/
static char* get_exe_path()
{ char path[WIN_MAX_PATH];
int n = GetModuleFileNameA(NULL, path, WIN_MAX_PATH);
if(n>0 && n<WIN_MAX_PATH-1)
{ char *backslash = strrchr(path, '\\');
if(backslash) *backslash=0;
return g_strdup(path);
}
return g_strdup(".");
}
#endif
/*** /***
*** Locate the binary and documentation directory *** Locate the binary and documentation directory
***/ ***/
@@ -36,9 +63,9 @@ static void get_base_dirs()
{ {
/*** Unless completely disabled through a configure option, the /*** Unless completely disabled through a configure option, the
source directory is supposed to hold the most recent files, source directory is supposed to hold the most recent files,
so try this first. */ so try this first (never under Windows). */
#ifdef WITH_EMBEDDED_SRC_PATH_YES #if defined(WITH_EMBEDDED_SRC_PATH_YES) && !defined(SYS_MINGW)
if(DirStat(SRCDIR)) if(DirStat(SRCDIR))
{ Closure->binDir = g_strdup(SRCDIR); { Closure->binDir = g_strdup(SRCDIR);
Closure->docDir = g_strdup_printf("%s/documentation",SRCDIR); Closure->docDir = g_strdup_printf("%s/documentation",SRCDIR);
@@ -50,26 +77,40 @@ static void get_base_dirs()
/*** Otherwise try the installation directory. /*** Otherwise try the installation directory.
On Unices this is a hardcoded directory. */ On Unices this is a hardcoded directory. */
#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \ #ifndef SYS_MINGW
defined(SYS_NETBSD) || defined(SYS_HURD) || defined(SYS_UNKNOWN)
if(DirStat(BINDIR)) if(DirStat(BINDIR))
Closure->binDir = g_strdup(BINDIR); Closure->binDir = g_strdup(BINDIR);
if(DirStat(DOCDIR)) if(DirStat(DOCDIR))
Closure->docDir = g_strdup(DOCDIR); Closure->docDir = g_strdup(DOCDIR);
Verbose("Using hardcoded BINDIR = %s, DOCDIR = %s\n", BINDIR, DOCDIR); Verbose("Using hardcoded BINDIR = %s, DOCDIR = %s\n", BINDIR, DOCDIR);
#else
Closure->binDir = get_exe_path();
/* We'll just put the 2 PDF in the same dir, portable mode */
Closure->docDir = g_strdup(Closure->binDir);
Verbose("Using path from get_exe_path() = %s\n", Closure->binDir);
#endif #endif
/*** The location of the dotfile depends on the operating system. /*** The location of the dotfile depends on the operating system.
Under Unix the users home directory is used. */ Under Unix the users home directory is used. */
#ifdef WITH_EMBEDDED_SRC_PATH_YES #if defined(WITH_EMBEDDED_SRC_PATH_YES) && !defined(SYS_MINGW)
find_dotfile: find_dotfile:
#endif /* WITH_EMBEDDED_SRC_PATH_YES */ #endif /* WITH_EMBEDDED_SRC_PATH_YES */
#ifndef SYS_MINGW
Closure->homeDir = g_strdup(g_getenv("HOME")); Closure->homeDir = g_strdup(g_getenv("HOME"));
#else
Closure->homeDir = g_strdup(Closure->binDir); /* portable mode */
#endif
if(!Closure->dotFile) /* may have been set by the --resource-file option */ if(!Closure->dotFile) /* may have been set by the --resource-file option */
#ifndef SYS_MINGW
Closure->dotFile = g_strdup_printf("%s/.dvdisaster", Closure->homeDir); Closure->dotFile = g_strdup_printf("%s/.dvdisaster", Closure->homeDir);
#else
/* Windows doesn't really love dotfiles */
Closure->dotFile = g_strdup_printf("%s/dvdisaster.cfg", Closure->homeDir);
#endif
Verbose("\nUsing file locations:\n" Verbose("\nUsing file locations:\n"
"- Homedir: %s\n" "- Homedir: %s\n"
@@ -425,7 +466,7 @@ GlobalClosure *Closure;
int exitCode = EXIT_SUCCESS; int exitCode = EXIT_SUCCESS;
void InitClosure() void InitClosure()
{ int v1,v2,v3,dots=0; { int v1=0,v2=0,v3=0,dots=0;
char *v,version[strlen(VERSION)+1]; char *v,version[strlen(VERSION)+1];
Closure = g_malloc0(sizeof(GlobalClosure)); Closure = g_malloc0(sizeof(GlobalClosure));
@@ -506,6 +547,8 @@ void InitClosure()
Closure->welcomeMessage = 1; Closure->welcomeMessage = 1;
Closure->useSCSIDriver = DRIVER_SG; Closure->useSCSIDriver = DRIVER_SG;
Closure->dsmVersion = 1; Closure->dsmVersion = 1;
Closure->noBdrDefectManagement = FALSE;
Closure->ignoreRS03header = FALSE;
/* default sizes for typical CD and DVD media */ /* default sizes for typical CD and DVD media */

Some files were not shown because too many files have changed in this diff Show More