Compare commits
31 Commits
v0.79.6-pl
...
v0.79.6-pl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb67ee4ab5 | ||
|
|
daec1295aa | ||
|
|
9ba1374351 | ||
|
|
d90cd7fa40 | ||
|
|
a98c795280 | ||
|
|
7a3391f49d | ||
|
|
1a9416f7b2 | ||
|
|
be2f7b67b9 | ||
|
|
dcfb23f4ee | ||
|
|
239f76c71c | ||
|
|
dc53597e8e | ||
|
|
7091b5fbbe | ||
|
|
269ea45d8d | ||
|
|
7ee35f1d0a | ||
|
|
0724a34af8 | ||
|
|
898f2fcfb6 | ||
|
|
5b82ec64bc | ||
|
|
9fed89dbcf | ||
|
|
22b2aba490 | ||
|
|
0598fad827 | ||
|
|
cbcac368dc | ||
|
|
bd70bcef1b | ||
|
|
71b32a30a1 | ||
|
|
2d68cfb0b1 | ||
|
|
c0c6747bd9 | ||
|
|
3eecbcbdcc | ||
|
|
49eecc0a6f | ||
|
|
4d2e0ba32c | ||
|
|
495a851356 | ||
|
|
5b95870f39 | ||
|
|
d76551ce39 |
62
.github/workflows/make-dist.sh
vendored
Executable file
62
.github/workflows/make-dist.sh
vendored
Executable 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
210
.github/workflows/release.yml
vendored
Normal 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
187
.github/workflows/tests.yml
vendored
Normal 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
|
||||
|
||||
65
CHANGELOG
65
CHANGELOG
@@ -1,5 +1,66 @@
|
||||
# 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*
|
||||
- This is an UNOFFICIAL version, not from the original author,
|
||||
based on the latest available pre-release, 0.79.6.
|
||||
@@ -14,7 +75,7 @@
|
||||
- Added support for BDXL-QL (quadruple layer, 128GB)
|
||||
- Added support to compile a CLI-only version, without
|
||||
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
|
||||
with MSYS2)
|
||||
- All regression tests are passing on Linux 64, Win 32 and Win 64.
|
||||
|
||||
@@ -67,28 +67,33 @@ OFILES = $(CFG_OFILES)
|
||||
# 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:" $?
|
||||
@$(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
|
||||
@echo "Compiling:" build.o
|
||||
@$(CC) $(COPTS) -c build.c -o $@
|
||||
${BUILDTMP}/icon-factory.o : src/icon-factory.c src/inlined-icons.h
|
||||
@echo "Compiling:" src/icon-factory.o
|
||||
@$(CC) $(COPTS) -c src/icon-factory.c -o $@
|
||||
|
||||
# Building the dvdisaster binary
|
||||
|
||||
time-stamp:
|
||||
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
|
||||
|
||||
dvdisaster: $(ICONS) $(OFILES)
|
||||
dvdisaster: $(ICONS) $(OFILES)
|
||||
@echo "Linking : dvdisaster"
|
||||
@if test $(CFG_SYS_OPTIONS) == -DSYS_MINGW; \
|
||||
then windres -v winres.rc -O coff -o winres.o >/dev/null ; \
|
||||
$(CC) $(LOPTS) $(OFILES) $(LIBS) winres.o -o dvdisaster ; \
|
||||
then windres -v src/winres.rc -O coff -o ${BUILDTMP}/winres.o >/dev/null ; \
|
||||
$(CC) $(LOPTS) $(OFILES) $(LIBS) ${BUILDTMP}/winres.o -o dvdisaster ; \
|
||||
else $(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster ; \
|
||||
fi
|
||||
@if test -e locale/de/LC_MESSAGES/dvdisaster.mo \
|
||||
@@ -97,47 +102,43 @@ dvdisaster: $(ICONS) $(OFILES)
|
||||
else $(MAKE) --no-print-directory -C locale; \
|
||||
fi
|
||||
|
||||
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_create icons/create.png >>inlined-icons.h
|
||||
@gdk-pixbuf-csource --raw --name=dvdisaster_scan icons/scan.png >>inlined-icons.h
|
||||
@gdk-pixbuf-csource --raw --name=dvdisaster_fix icons/fix.png >>inlined-icons.h
|
||||
@gdk-pixbuf-csource --raw --name=dvdisaster_verify icons/verify.png >>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_img icons/open-img.png >>inlined-icons.h
|
||||
@gdk-pixbuf-csource --raw --name=dvdisaster_cd icons/cd.png >>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_index icons/gtk-index.png >>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_quit icons/gtk-quit.png >>inlined-icons.h
|
||||
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_stop icons/gtk-stop.png >>inlined-icons.h
|
||||
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 >src/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 >>src/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 >>src/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 >>src/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 >>src/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 >>src/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 >>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; \
|
||||
then if test -e help-dialogs.h; then rm help-dialogs.h; fi; \
|
||||
mv inlined-icons.h inlined-icons.saved; \
|
||||
mv build.h build.saved; \
|
||||
./simple-md5sum -b *.h *.c | sort -k2 >tmp.md5; \
|
||||
then if test -e src/help-dialogs.h; then rm src/help-dialogs.h; fi; \
|
||||
./simple-md5sum -b src/*.h src/*.c | grep -vF -e inlined-icons.h -e build.h | sort -k2 >tmp.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; \
|
||||
then echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \
|
||||
else echo "#define UNMODIFIED_SOURCE 1" >> help-dialogs.h; \
|
||||
then echo "#define MODIFIED_SOURCE 1" >> src/help-dialogs.h; \
|
||||
else echo "#define UNMODIFIED_SOURCE 1" >> src/help-dialogs.h; \
|
||||
fi; \
|
||||
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
|
||||
@echo "Compiling:" help-dialogs.c
|
||||
@$(CC) $(COPTS) -c help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
|
||||
@echo "Compiling:" src/help-dialogs.c
|
||||
@$(CC) $(COPTS) -c src/help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
|
||||
|
||||
$(BUILDTMP)/rs-encoder-sse2.o: rs-encoder-sse2.c
|
||||
@echo "Compiling:" rs-encoder-sse2.c
|
||||
@$(CC) $(SSE2_OPTIONS) $(COPTS) -c rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
|
||||
$(BUILDTMP)/rs-encoder-sse2.o: src/rs-encoder-sse2.c
|
||||
@echo "Compiling:" src/rs-encoder-sse2.c
|
||||
@$(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
|
||||
@echo "Compiling:" rs-encoder-altivec.c
|
||||
@$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.o
|
||||
$(BUILDTMP)/rs-encoder-altivec.o: src/rs-encoder-altivec.c
|
||||
@echo "Compiling:" src/rs-encoder-altivec.c
|
||||
@$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c src/rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.o
|
||||
|
||||
locale:
|
||||
@$(MAKE) --no-print-directory -C locale
|
||||
@@ -145,10 +146,11 @@ locale:
|
||||
untranslated:
|
||||
@$(MAKE) --no-print-directory -C locale check-untranslated
|
||||
|
||||
simple-md5sum: md5.c
|
||||
@$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(LDFLAGS) $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
|
||||
simple-md5sum: src/md5.c
|
||||
@$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM src/md5.c $(LDFLAGS) $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
|
||||
|
||||
version.tex:
|
||||
@test -d $(SRCDIR)/documentation/config || mkdir $(SRCDIR)/documentation/config
|
||||
@echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
|
||||
|
||||
manual: version.tex
|
||||
@@ -292,7 +294,7 @@ archclean: distclean
|
||||
|
||||
distclean: clean
|
||||
@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
|
||||
|
||||
# There might be a not executable simple-md5sum from a compiler run
|
||||
@@ -302,7 +304,7 @@ distclean: clean
|
||||
clean:
|
||||
@echo "Removing rebuildable files"
|
||||
@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 \*.mo -print | xargs rm -f;
|
||||
@find . -name \#\*\# -print | xargs rm -f;
|
||||
@@ -315,7 +317,7 @@ clean:
|
||||
$(MAKE) --no-print-directory simple-md5sum; \
|
||||
echo "[simple-md5sum (re-)built]"; \
|
||||
fi; \
|
||||
./simple-md5sum -b *.h *.c >fingerprints.md5 ;\
|
||||
./simple-md5sum -b src/*.h src/*.c >fingerprints.md5 ;\
|
||||
mv build.saved build.h; \
|
||||
fi
|
||||
@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)/locale clean;
|
||||
|
||||
BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3`
|
||||
arch: archclean time-stamp
|
||||
BUILD=`grep BUILD $(SRCDIR)/src/build.h | cut -d ' ' -f 3`
|
||||
arch: archclean build.h
|
||||
@cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
|
||||
|
||||
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 .. ; 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))/..
|
||||
windist:
|
||||
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
|
||||
static: dvdisaster
|
||||
$(CC) $(LOPTS) $(OFILES) $(LIBS) -pthread -static -o dvdisaster-static
|
||||
|
||||
5
INSTALL
5
INSTALL
@@ -127,6 +127,11 @@ Call the configuration script in the usual way:
|
||||
|
||||
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.
|
||||
Type "configure --help" to learn about pointing configure
|
||||
to the correct path of already installed libraries.
|
||||
|
||||
97
README.md
97
README.md
@@ -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:
|
||||
Linux, FreeBSD, NetBSD on x86, PowerPC, Sparc, and Windows.
|
||||
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.
|
||||
|
||||
Three protection codecs are supported, they're quickly detailed below. Please see the documentation/manual.pdf for more information about these, and everything else.
|
||||
|
||||
# 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.
|
||||
Please refer to the [PDF manual](documentation/user-manual/manual.pdf) for more information.
|
||||
|
||||
# Unofficial version
|
||||
|
||||
The last upstream version is dated 2017, and the official website is down.
|
||||
The original README has been left untouched in this repository.
|
||||
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](README) has been left untouched in this repository.
|
||||
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/))
|
||||
- Windows build added back (was dropped upstream a few versions before the last one)
|
||||
- A Linux CLI-only version can now be compiled, without depending on gtk
|
||||
- Regression tests confirmed working on Linux64 (normal and CLI-only), Windows32 and Windows64
|
||||
- Most Debian patches have been applied, those specific to Debian have been omitted
|
||||
- Windows build supported again, it was dropped upstream a few versions back
|
||||
- A CLI-only version, not depending on gtk (`CLI_ONLY=1 ./configure && make clean && make -j4`)
|
||||
- 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)
|
||||
|
||||
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
|
||||
(todo)
|
||||
|
||||
### Scanning a damaged CD under Windows
|
||||
|
||||

|
||||
|
||||
### Scanning a healthy BD-R (single layer) with Linux GUI
|
||||
|
||||

|
||||
|
||||
### Creating an RS03 error correction file with Linux GUI
|
||||
|
||||

|
||||
|
||||
### Verifying a BD-R image with Linux GUI
|
||||
|
||||

|
||||
|
||||
38
configure
vendored
38
configure
vendored
@@ -3,21 +3,19 @@
|
||||
# Load the shell functions needed for the rest of this script.
|
||||
|
||||
BASH_BASED_CONFIGURE=./scripts/bash-based-configure
|
||||
REQUIRED_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I."
|
||||
RECOMMENDED_CFLAGS="-DPATCHLEVEL=1 -O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-stringop-truncation"
|
||||
BASH_BASED_CONFIGURE_OPTS="--buildtmp=$(pwd)/build"
|
||||
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"
|
||||
|
||||
if [ "$CLI_ONLY" = 1 ]; then
|
||||
REQUIRED_CFLAGS="-DCLI $REQUIRED_CFLAGS"
|
||||
echo '#define FLAVOR CLI' > build.h
|
||||
else
|
||||
echo '#define FLAVOR GUI' > build.h
|
||||
fi
|
||||
|
||||
CFG_USE_CYGWIN="no" # do not change
|
||||
|
||||
if test -e $BASH_BASED_CONFIGURE; then
|
||||
source $BASH_BASED_CONFIGURE
|
||||
source $BASH_BASED_CONFIGURE $BASH_BASED_CONFIGURE_OPTS
|
||||
else
|
||||
echo "Could not find $BASH_BASED_CONFIGURE"
|
||||
echo "You're probably not in the right directory."
|
||||
@@ -78,10 +76,10 @@ PRINT_MESSAGE "\nChecking for functions and symbols..."
|
||||
CHECK_FUNCTION mmap
|
||||
|
||||
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 " * 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
|
||||
fi
|
||||
fi
|
||||
@@ -157,17 +155,17 @@ fi
|
||||
|
||||
PRINT_MESSAGE "\nCollecting source files:"
|
||||
|
||||
rm -f conftest.c method-link.c
|
||||
cfiles="method-link.c"
|
||||
rm -f src/conftest.c src/method-link.c
|
||||
cfiles="src/method-link.c"
|
||||
ofiles="$BUILDTMP/method-link.o"
|
||||
|
||||
for cfile in *.c; do
|
||||
for cfile in src/*.c; do
|
||||
if [ "$CLI_ONLY" = 1 ]; then
|
||||
grep -q 'DVDISASTER_GUI_FILE' "$cfile" && continue
|
||||
fi
|
||||
cfile_prefix=`echo $cfile | sed -e 's/\.c//'`
|
||||
cfiles="$cfiles $cfile"
|
||||
ofiles="$ofiles $BUILDTMP/$cfile_prefix.o"
|
||||
ofiles="$ofiles $BUILDTMP/$(basename $cfile_prefix.o)"
|
||||
echo -n " $cfile_prefix"
|
||||
done
|
||||
|
||||
@@ -175,37 +173,37 @@ echo
|
||||
echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config
|
||||
echo "CFG_OFILES = $ofiles" >> Makefile.config
|
||||
if [ "$CLI_ONLY" != 1 ]; then
|
||||
echo "ICONS = inlined-icons.h" >> Makefile.config
|
||||
echo "ICONS = src/inlined-icons.h" >> Makefile.config
|
||||
fi
|
||||
|
||||
# Create the method wrapper
|
||||
|
||||
PRINT_MESSAGE "\nCollecting methods:"
|
||||
|
||||
cat >> method-link.c <<EOF
|
||||
cat >> src/method-link.c <<EOF
|
||||
/* Automatically generated wrapper for registering the methods */
|
||||
|
||||
void BindMethods(void)
|
||||
{
|
||||
EOF
|
||||
|
||||
for method in ecc-*.c; do
|
||||
method_name=`echo $method | sed -e 's/\.c//' -e 's/ecc-//'`
|
||||
for method in src/ecc-*.c; do
|
||||
method_name=`echo $(basename $method) | sed -e 's/\.c//' -e 's/ecc-//'`
|
||||
method_prefix="$method_prefix $method_name"
|
||||
echo -n " $method_name"
|
||||
done
|
||||
|
||||
for method in $method_prefix; do
|
||||
echo " void register_${method}(void);" >> method-link.c
|
||||
echo " void register_${method}(void);" >> src/method-link.c
|
||||
done
|
||||
|
||||
echo >> method-link.c
|
||||
echo >> src/method-link.c
|
||||
|
||||
for method in $method_prefix; do
|
||||
echo " register_${method}();" >> method-link.c
|
||||
echo " register_${method}();" >> src/method-link.c
|
||||
done
|
||||
|
||||
echo "}" >> method-link.c
|
||||
echo "}" >> src/method-link.c
|
||||
echo
|
||||
|
||||
# Okay, hopefully we've got everything together now.
|
||||
|
||||
@@ -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
|
||||
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 [\| \-\-no-progress \|]
|
||||
.RB [\| \-\-old-ds-marker \|]
|
||||
.RB [\| \-\-no-bdr-defect-management \|]
|
||||
.RB [\| \-\-prefetch-sectors
|
||||
.IR n \|]
|
||||
.RB [\| \-\-raw-mode
|
||||
@@ -225,6 +226,21 @@ RS02 images:
|
||||
\-n BDXL3 augments image suitable for three layered BDXL media.
|
||||
.RE
|
||||
.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.
|
||||
.RE
|
||||
.RS
|
||||
@@ -240,9 +256,22 @@ RS03 images:
|
||||
.RS
|
||||
Setting the redundancy is not possible due to constraints in the format.
|
||||
The codec will automatically choose the size of the smallest fitting medium.
|
||||
However, see --no-bdr-defect-management below.
|
||||
.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
|
||||
.B \-m, \-\-method n
|
||||
lists/selects error correction methods (default: RS01).
|
||||
|
||||
Binary file not shown.
166
fingerprints.md5
166
fingerprints.md5
@@ -1,83 +1,83 @@
|
||||
b064d001e5e4ed8221eb9f10d784cf45 *dvdisaster.h
|
||||
79abb986b900ec06a73256876ba0d65c *galois-inlines.h
|
||||
14eb94f981903fcffe2ccb33aa2cb9db *md5.h
|
||||
f2d723717ca5f450ee8cc0b556f5506a *read-linear.h
|
||||
100127beaecc24b28b2b80d76bbf68c8 *rs01-includes.h
|
||||
5b39a23de01c988d562d70ed68682ab7 *rs02-includes.h
|
||||
4407ce43eae55b19409be9980432c94f *rs03-includes.h
|
||||
2a5980c706c67bec479e4532ab9a7093 *scsi-layer.h
|
||||
c779a2908542c6a519ed7cdfc4e5e073 *udf.h
|
||||
8f86a75f83a3bc9b6ce54cce037b3c75 *bitmap.c
|
||||
5230bd572fc8ef1857063c885c00463a *build.c
|
||||
7b59033ebffd6d8230efaf6834b2f942 *cacheprobe.c
|
||||
bfb6d7ed2a921ce18dc0339774f72f41 *closure.c
|
||||
e5bd212395758ae0b7e97d70c7a2df55 *crc32.c
|
||||
7f5951182421a0366782b191a0b4ba82 *crcbuf.c
|
||||
abb7c9decfd43935c943bc0dd1bab0d5 *curve.c
|
||||
f96a3e006fc5d1c5d181e5056377c9ce *debug.c
|
||||
6f8843d1cccc55506771ab02168b2df3 *ds-marker.c
|
||||
19d0f85d035115f3bd8d4472e6379058 *dvdisaster.c
|
||||
1c8136affed485adaf60e7904d9930a4 *ecc-rs01.c
|
||||
7b301352a60c18c25f84c8cc7a36fd48 *ecc-rs02.c
|
||||
91aa71f03dc9dade2e97dc59d7ec38f0 *ecc-rs03.c
|
||||
39900d26ddcbb7c7e2a9198de14bace1 *endian.c
|
||||
3f6e9dffb9de733dcccc916ca38292ca *galois.c
|
||||
abc8a8d55248eab5416c45104a033171 *help-dialogs.c
|
||||
547bf9a9d005419a0ed601317aeb4e14 *heuristic-lec.c
|
||||
746666ade12c2db41ce9af6f55e4c13c *icon-factory.c
|
||||
b3db603f77fd2735a6e8b1c568f7bdac *image.c
|
||||
fe9de426f96e6d206d1482a24f589253 *large-io.c
|
||||
abed1a50b9751387dc1e3cbc84a61fba *l-ec.c
|
||||
6960647dc7fc5ce8a2727326946aaff1 *logfile.c
|
||||
92e81646ef4e8618ded5d82db6a6163a *maintenance.c
|
||||
3c3eebc43fc7aff3865022207e06153b *main-window.c
|
||||
913554f7e994e212f6a52b769eef24bb *md5.c
|
||||
8f0acf2f7d98a55d05a4721d97741c7c *medium-info.c
|
||||
ce145372a25e0fb96070d460da7bdbb4 *memtrack.c
|
||||
66cdf82b59fd973e3060d163b6887a20 *menubar.c
|
||||
5006b2db93b210be3fb630e8d9463239 *method.c
|
||||
17183bad35db217e2c352178844ceda3 *method-link.c
|
||||
2af6685017c247de7458e9c4d39b6ed5 *misc.c
|
||||
6523662e8e5aa2daf38a7e8c07ce1180 *preferences.c
|
||||
5e7b077020e063951cc72ea57f5f046a *print-sense.c
|
||||
cdde449dd2a8f64b560ff18a36f86234 *random.c
|
||||
28f42d264cd18bb2e0ccdd8e15a0172e *raw-editor.c
|
||||
1d416f611a175ba15be27f7f5686dd98 *raw-sector-cache.c
|
||||
7f281312b3a65666f7eebaadb62e7f6e *read-adaptive.c
|
||||
ccdc572bb24d20ae6fb53f360318b492 *read-adaptive-window.c
|
||||
af7a757cad586d3766a3eaad382c6737 *read-linear.c
|
||||
47dc58effd96f2b23182a4595ca36171 *read-linear-window.c
|
||||
edc0e564573d595c1196c4dc0e70e659 *recover-raw.c
|
||||
ea4d6894e717d4957cde686f88d7bdfd *rs01-common.c
|
||||
aa9d409ee4eeaa7ba92d731cf32ee727 *rs01-create.c
|
||||
ab15d7470a2fe950ebb33134018f044f *rs01-fix.c
|
||||
cb3722894665baf9c4ff4c26ff79737b *rs01-verify.c
|
||||
5cdecc33da1579733f0545944c4069ab *rs01-window.c
|
||||
b33a0982df485b4e52e56fc1c61285ae *rs02-common.c
|
||||
a1025fcc9455219937bae5bfadf0abf5 *rs02-create.c
|
||||
f466c8296a37ea88b64aec9c870d6d75 *rs02-fix.c
|
||||
369ec37d67674ffd2627f0373a566f0c *rs02-recognize.c
|
||||
8cc283e60a73493ac6ba60a2f4af1754 *rs02-verify.c
|
||||
eccac3ed74b32508b27de0e0d363c6b1 *rs02-window.c
|
||||
9a9b966171f1b375cf3381b545a1c6d4 *rs03-common.c
|
||||
2502514702687a2a252feace096d20f4 *rs03-create.c
|
||||
19676ef95e635206c19dfe12b957e4b2 *rs03-fix.c
|
||||
b012df78d2c546c87f6dd75769515409 *rs03-preferences.c
|
||||
7d6101e6a95aeb45d6cd03ffe8891b96 *rs03-recognize.c
|
||||
b7a6a6c64b4034380c581a5499940db4 *rs03-verify.c
|
||||
1d2b071943c121bf0c47a2e047317262 *rs03-window.c
|
||||
a2e1e28a609af85d9b83f01339b33a62 *rs-decoder.c
|
||||
3882a92849cd23e64c81262be6e52650 *rs-encoder-altivec.c
|
||||
1fc6cad3af2461e7974bf49e8f1bf5e9 *rs-encoder.c
|
||||
f7f3e2708f0c389ed53c0f1083567a55 *rs-encoder-sse2.c
|
||||
2e099a3d88f25f81420b96fe9bd62f44 *scsi-freebsd.c
|
||||
cd58a45387267fe0728f439d7bb2045d *scsi-layer.c
|
||||
b1b6bd57433eedab3a4f35389a182d14 *scsi-linux.c
|
||||
7064327dc15a2d88e5375176d4c64132 *scsi-netbsd.c
|
||||
3c0e100cdd499b1c23ac5e12b1fd6694 *scsi-simulated.c
|
||||
be42d574e6340845d984c21dc902af1a *scsi-unknown.c
|
||||
85aa8093f41c36ce791363e94f488dec *show-manual.c
|
||||
6099911dd508701b0b8b5d09105faf95 *smart-lec.c
|
||||
10f3e2b054fe3c1ac69c738b97f1beaa *spiral.c
|
||||
dec5fbde631058d48866cc1d77446d37 *udf.c
|
||||
6741fc5457e9c2026451403f2d45096c *welcome-window.c
|
||||
b064d001e5e4ed8221eb9f10d784cf45 *src/dvdisaster.h
|
||||
79abb986b900ec06a73256876ba0d65c *src/galois-inlines.h
|
||||
14eb94f981903fcffe2ccb33aa2cb9db *src/md5.h
|
||||
f2d723717ca5f450ee8cc0b556f5506a *src/read-linear.h
|
||||
100127beaecc24b28b2b80d76bbf68c8 *src/rs01-includes.h
|
||||
5b39a23de01c988d562d70ed68682ab7 *src/rs02-includes.h
|
||||
4407ce43eae55b19409be9980432c94f *src/rs03-includes.h
|
||||
2a5980c706c67bec479e4532ab9a7093 *src/scsi-layer.h
|
||||
c779a2908542c6a519ed7cdfc4e5e073 *src/udf.h
|
||||
8f86a75f83a3bc9b6ce54cce037b3c75 *src/bitmap.c
|
||||
5230bd572fc8ef1857063c885c00463a *src/build.c
|
||||
7b59033ebffd6d8230efaf6834b2f942 *src/cacheprobe.c
|
||||
bfb6d7ed2a921ce18dc0339774f72f41 *src/closure.c
|
||||
e5bd212395758ae0b7e97d70c7a2df55 *src/crc32.c
|
||||
7f5951182421a0366782b191a0b4ba82 *src/crcbuf.c
|
||||
abb7c9decfd43935c943bc0dd1bab0d5 *src/curve.c
|
||||
f96a3e006fc5d1c5d181e5056377c9ce *src/debug.c
|
||||
6f8843d1cccc55506771ab02168b2df3 *src/ds-marker.c
|
||||
19d0f85d035115f3bd8d4472e6379058 *src/dvdisaster.c
|
||||
1c8136affed485adaf60e7904d9930a4 *src/ecc-rs01.c
|
||||
7b301352a60c18c25f84c8cc7a36fd48 *src/ecc-rs02.c
|
||||
91aa71f03dc9dade2e97dc59d7ec38f0 *src/ecc-rs03.c
|
||||
39900d26ddcbb7c7e2a9198de14bace1 *src/endian.c
|
||||
3f6e9dffb9de733dcccc916ca38292ca *src/galois.c
|
||||
abc8a8d55248eab5416c45104a033171 *src/help-dialogs.c
|
||||
547bf9a9d005419a0ed601317aeb4e14 *src/heuristic-lec.c
|
||||
746666ade12c2db41ce9af6f55e4c13c *src/icon-factory.c
|
||||
b3db603f77fd2735a6e8b1c568f7bdac *src/image.c
|
||||
fe9de426f96e6d206d1482a24f589253 *src/large-io.c
|
||||
abed1a50b9751387dc1e3cbc84a61fba *src/l-ec.c
|
||||
6960647dc7fc5ce8a2727326946aaff1 *src/logfile.c
|
||||
92e81646ef4e8618ded5d82db6a6163a *src/maintenance.c
|
||||
3c3eebc43fc7aff3865022207e06153b *src/main-window.c
|
||||
913554f7e994e212f6a52b769eef24bb *src/md5.c
|
||||
8f0acf2f7d98a55d05a4721d97741c7c *src/medium-info.c
|
||||
ce145372a25e0fb96070d460da7bdbb4 *src/memtrack.c
|
||||
66cdf82b59fd973e3060d163b6887a20 *src/menubar.c
|
||||
5006b2db93b210be3fb630e8d9463239 *src/method.c
|
||||
17183bad35db217e2c352178844ceda3 *src/method-link.c
|
||||
2af6685017c247de7458e9c4d39b6ed5 *src/misc.c
|
||||
6523662e8e5aa2daf38a7e8c07ce1180 *src/preferences.c
|
||||
5e7b077020e063951cc72ea57f5f046a *src/print-sense.c
|
||||
cdde449dd2a8f64b560ff18a36f86234 *src/random.c
|
||||
28f42d264cd18bb2e0ccdd8e15a0172e *src/raw-editor.c
|
||||
1d416f611a175ba15be27f7f5686dd98 *src/raw-sector-cache.c
|
||||
7f281312b3a65666f7eebaadb62e7f6e *src/read-adaptive.c
|
||||
ccdc572bb24d20ae6fb53f360318b492 *src/read-adaptive-window.c
|
||||
af7a757cad586d3766a3eaad382c6737 *src/read-linear.c
|
||||
47dc58effd96f2b23182a4595ca36171 *src/read-linear-window.c
|
||||
edc0e564573d595c1196c4dc0e70e659 *src/recover-raw.c
|
||||
ea4d6894e717d4957cde686f88d7bdfd *src/rs01-common.c
|
||||
aa9d409ee4eeaa7ba92d731cf32ee727 *src/rs01-create.c
|
||||
ab15d7470a2fe950ebb33134018f044f *src/rs01-fix.c
|
||||
cb3722894665baf9c4ff4c26ff79737b *src/rs01-verify.c
|
||||
5cdecc33da1579733f0545944c4069ab *src/rs01-window.c
|
||||
b33a0982df485b4e52e56fc1c61285ae *src/rs02-common.c
|
||||
a1025fcc9455219937bae5bfadf0abf5 *src/rs02-create.c
|
||||
f466c8296a37ea88b64aec9c870d6d75 *src/rs02-fix.c
|
||||
369ec37d67674ffd2627f0373a566f0c *src/rs02-recognize.c
|
||||
8cc283e60a73493ac6ba60a2f4af1754 *src/rs02-verify.c
|
||||
eccac3ed74b32508b27de0e0d363c6b1 *src/rs02-window.c
|
||||
9a9b966171f1b375cf3381b545a1c6d4 *src/rs03-common.c
|
||||
2502514702687a2a252feace096d20f4 *src/rs03-create.c
|
||||
19676ef95e635206c19dfe12b957e4b2 *src/rs03-fix.c
|
||||
b012df78d2c546c87f6dd75769515409 *src/rs03-preferences.c
|
||||
7d6101e6a95aeb45d6cd03ffe8891b96 *src/rs03-recognize.c
|
||||
b7a6a6c64b4034380c581a5499940db4 *src/rs03-verify.c
|
||||
1d2b071943c121bf0c47a2e047317262 *src/rs03-window.c
|
||||
a2e1e28a609af85d9b83f01339b33a62 *src/rs-decoder.c
|
||||
3882a92849cd23e64c81262be6e52650 *src/rs-encoder-altivec.c
|
||||
1fc6cad3af2461e7974bf49e8f1bf5e9 *src/rs-encoder.c
|
||||
f7f3e2708f0c389ed53c0f1083567a55 *src/rs-encoder-sse2.c
|
||||
2e099a3d88f25f81420b96fe9bd62f44 *src/scsi-freebsd.c
|
||||
cd58a45387267fe0728f439d7bb2045d *src/scsi-layer.c
|
||||
b1b6bd57433eedab3a4f35389a182d14 *src/scsi-linux.c
|
||||
7064327dc15a2d88e5375176d4c64132 *src/scsi-netbsd.c
|
||||
3c0e100cdd499b1c23ac5e12b1fd6694 *src/scsi-simulated.c
|
||||
be42d574e6340845d984c21dc902af1a *src/scsi-unknown.c
|
||||
85aa8093f41c36ce791363e94f488dec *src/show-manual.c
|
||||
6099911dd508701b0b8b5d09105faf95 *src/smart-lec.c
|
||||
10f3e2b054fe3c1ac69c738b97f1beaa *src/spiral.c
|
||||
dec5fbde631058d48866cc1d77446d37 *src/udf.c
|
||||
6741fc5457e9c2026451403f2d45096c *src/welcome-window.c
|
||||
|
||||
@@ -7,7 +7,7 @@ cat > Makefile <<EOF
|
||||
|
||||
EOF
|
||||
|
||||
for i in ../*.c; do
|
||||
for i in ../src/*.c; do
|
||||
cfiles="$cfiles $i"
|
||||
nopath=`echo $i | sed -e 's/..\///'`
|
||||
cfiles2="$cfiles2 $nopath"
|
||||
@@ -34,7 +34,7 @@ messages.pot: \$(CFILES)
|
||||
@cd ..; xgettext --no-wrap -cTRANSLATORS: -o locale/messages.pot -k_ -k_utf \$(CFILES_NP)
|
||||
|
||||
clean:
|
||||
rm -f messages.pot
|
||||
@rm -f messages.pot
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
2935
locale/cs.po
2935
locale/cs.po
File diff suppressed because it is too large
Load Diff
3283
locale/de.po
3283
locale/de.po
File diff suppressed because it is too large
Load Diff
2444
locale/it.po
2444
locale/it.po
File diff suppressed because it is too large
Load Diff
2690
locale/pt_BR.po
2690
locale/pt_BR.po
File diff suppressed because it is too large
Load Diff
2738
locale/ru.po
2738
locale/ru.po
File diff suppressed because it is too large
Load Diff
2470
locale/sv.po
2470
locale/sv.po
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@ ISODIR=/var/tmp/regtest
|
||||
if ! test -d $ISODIR; then
|
||||
echo "$ISODIR does not exist."
|
||||
echo "Please create it manually, or edit common.bash"
|
||||
exit 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOGDIR="/dev/shm"
|
||||
@@ -28,6 +28,8 @@ if ! $MD5SUM $RNDSEQ >/dev/null 2>&1; then
|
||||
MD5SUM=../simple-md5sum
|
||||
fi
|
||||
|
||||
nbfailed=0
|
||||
|
||||
# Assemble sed expressions for removal of variable output contents
|
||||
|
||||
SED_REMOVE_ISO_DIR="([a-zA-Z]:/[a-zA-Z0-9/]+)?${ISODIR}/"
|
||||
@@ -44,12 +46,13 @@ fi
|
||||
# Usage
|
||||
|
||||
if test "$1" == "--help" || test "$1" == "-h"; then
|
||||
echo "Usage: $0 [gui] [all|cont <test case>]"
|
||||
exit 0;
|
||||
echo "Usage: $0 [gui] [all|[cont|only] <test case>]"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
doall="no"
|
||||
cont_at="false"
|
||||
only_this_one="false"
|
||||
gui_mode="false"
|
||||
|
||||
param=($*)
|
||||
@@ -59,6 +62,7 @@ case "${param[0]}" in
|
||||
gui_mode="true"
|
||||
param[0]="${param[1]}"
|
||||
param[1]="${param[2]}"
|
||||
param[2]="${param[3]}"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -69,6 +73,9 @@ case "${param[0]}" in
|
||||
cont)
|
||||
cont_at="${param[1]}"
|
||||
;;
|
||||
only)
|
||||
only_this_one="${param[1]}"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Sanity check
|
||||
@@ -78,7 +85,7 @@ if test -x $NEWVER; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "missing."
|
||||
exit 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Helper functions
|
||||
@@ -118,9 +125,19 @@ function try()
|
||||
cont_at="false"
|
||||
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)
|
||||
|
||||
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
|
||||
if test -n "$TMPISO" && test -f "$TMPISO"; then
|
||||
rm -f $TMPISO
|
||||
@@ -136,10 +153,16 @@ function try()
|
||||
REGTEST_SECTION="Test"
|
||||
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
|
||||
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
|
||||
fi
|
||||
}
|
||||
@@ -216,27 +239,37 @@ function run_regtest()
|
||||
|
||||
filter=cat
|
||||
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
|
||||
sed -i -re "s=device $NON_EXISTENT_DEVICE\.=/dev/sdz: No such file or directory=" $NEWLOG
|
||||
fi
|
||||
|
||||
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}
|
||||
|
||||
if test "$interactive_diff" == "yes"; then
|
||||
echo
|
||||
echo ">> The diff can also be seen with: vimdiff $REFLOG $NEWLOG"
|
||||
read -n 1 -p ">> Press 'a' to accept this diff; any other key to fail this test:" -e answer
|
||||
if test "$answer" == "a"; then
|
||||
cp $REFLOG $LOGDIR
|
||||
head -n 2 $LOGDIR/${CODEC_PREFIX}_${testsymbol} >$REFLOG
|
||||
sed -e "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG >>$REFLOG
|
||||
pass="skip"
|
||||
else
|
||||
pass="false"
|
||||
fi
|
||||
while true; do
|
||||
read -n 1 -p ">> Press 'a' to accept this diff; 'v' to vimdiff; any other key to fail this test:" -e answer
|
||||
if test "$answer" == "a"; then
|
||||
cp $REFLOG $LOGDIR
|
||||
head -n 2 $LOGDIR/${CODEC_PREFIX}_${testsymbol} >$REFLOG
|
||||
sed -e "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG >>$REFLOG
|
||||
pass="skip"
|
||||
elif test "$answer" == "v"; then
|
||||
vimdiff $REFLOG $NEWLOG
|
||||
continue
|
||||
else
|
||||
pass="false"
|
||||
fi
|
||||
break
|
||||
done
|
||||
else
|
||||
pass="false"
|
||||
fi
|
||||
@@ -253,7 +286,7 @@ function run_regtest()
|
||||
xterm_pid=$!
|
||||
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
|
||||
fi
|
||||
|
||||
@@ -265,8 +298,11 @@ function run_regtest()
|
||||
if test ${image_md5} != "ignore"; then
|
||||
md5=$($MD5SUM ${testiso} | cut -d\ -f 1)
|
||||
if test "$image_md5" != "$md5"; then
|
||||
echo "BAD; md5 sum mismatch in image file:"
|
||||
printf "%b\r%b\n" "BAD; md5 sum mismatch in image file:" "[\e[31m✘\e[0m]"
|
||||
if [ "$REGTEST_NO_UTF8" = 1 ]; then
|
||||
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 "... generated image: $md5"
|
||||
pass="false"
|
||||
@@ -276,7 +312,7 @@ function run_regtest()
|
||||
if test ${ecc_md5} != "ignore"; then
|
||||
md5=$($MD5SUM ${testecc} | cut -d\ -f 1)
|
||||
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:"
|
||||
else
|
||||
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
|
||||
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)
|
||||
;;
|
||||
|
||||
*)
|
||||
nbfailed=$((nbfailed + 1))
|
||||
[ $nbfailed -ge 256 ] && nbfailed=255
|
||||
echo "test symbol for config: $testsymbol"
|
||||
if test "$fail_on_bad" == "yes"; then
|
||||
next=$(grep -A 1 ${CODEC_PREFIX}_$testsymbol config.txt | tail -n 1 | cut -d\ -f 1)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Global toggles
|
||||
|
||||
FAIL_ON_BAD yes
|
||||
FAIL_ON_BAD no
|
||||
SPAWN_LOG_WINDOW no
|
||||
INTERACTIVE_DIFF yes
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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.
|
||||
|
||||
*
|
||||
|
||||
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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.
|
||||
Creating new rs01-tmp.iso image.
|
||||
Repairable: 0.0% (correctable: 0; now reading [0..20999], size 21000)
|
||||
|
||||
@@ -86,7 +86,7 @@ try_sector: trying sector 20850
|
||||
try_sector: no cookie, skipping current modulo
|
||||
RS02Recognize: skipping exhaustive RS02 search
|
||||
...trying RS03
|
||||
RS03Recognize: medium sim-cd
|
||||
RS03RecognizeImage: medium sim-cd
|
||||
FindRS03HeaderInImage: medium sim-cd
|
||||
RS03RecognizeImage: skipping exhaustive RS03 search
|
||||
...no augmented image detected.
|
||||
|
||||
@@ -86,7 +86,7 @@ try_sector: trying sector 20850
|
||||
try_sector: no cookie, skipping current modulo
|
||||
RS02Recognize: skipping exhaustive RS02 search
|
||||
...trying RS03
|
||||
RS03Recognize: medium sim-cd
|
||||
RS03RecognizeImage: medium sim-cd
|
||||
FindRS03HeaderInImage: medium sim-cd
|
||||
RS03RecognizeImage: skipping exhaustive RS03 search
|
||||
...no augmented image detected.
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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.
|
||||
* Warning: Medium contains 44 sectors more as recorded in the .ecc file
|
||||
* (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
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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.
|
||||
* Warning: Medium contains 44 sectors less as recorded in the .ecc file
|
||||
* (Medium: 20956 sectors; expected from .ecc file: 21000 sectors).
|
||||
|
||||
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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.
|
||||
* Warning: Medium contains 2 sectors more as recorded in the .ecc file
|
||||
* (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
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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!
|
||||
* Proceeding could trigger incorrect behaviour.
|
||||
* 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
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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.
|
||||
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.
|
||||
|
||||
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
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
||||
Using READ CD.
|
||||
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.
|
||||
|
||||
*
|
||||
|
||||
@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
|
||||
Opening rs02-tmp.iso: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -16,7 +16,7 @@ Completing image rs02-tmp.iso. Only missing sectors will be read.
|
||||
Opening rs02-tmp.iso: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -16,7 +16,7 @@ All sectors successfully read.
|
||||
Opening rs02-tmp.iso: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 39809 medium sectors.
|
||||
Image size is now: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 39810 medium sectors.
|
||||
Image size is now: 30000 medium sectors and 56 bytes.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34933 sectors).
|
||||
|
||||
@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34932 medium sectors.
|
||||
Image size is now: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34933 medium sectors.
|
||||
Image size is now: 30000 medium sectors and 56 bytes.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34933 sectors).
|
||||
|
||||
@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34935 medium sectors.
|
||||
Image size is now: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34935 medium sectors.
|
||||
Image size is now: 30000 medium sectors and 137 bytes.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34933 sectors).
|
||||
|
||||
@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
|
||||
Opening rs02-tmp.iso: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
|
||||
*
|
||||
|
||||
@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
|
||||
Opening rs02-tmp.iso: 30000 medium sectors and 137 bytes.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34933 sectors).
|
||||
|
||||
@@ -17,7 +17,7 @@ All sectors successfully read. Checksums match.
|
||||
Opening rs02-tmp.iso: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -20,7 +20,7 @@ Opening rs02-tmp.iso: 49935 medium sectors.
|
||||
Image size is now: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -17,7 +17,7 @@ All sectors successfully read. Checksums match.
|
||||
Opening rs02-tmp.iso: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -20,7 +20,7 @@ Opening rs02-tmp.iso: 36975 medium sectors.
|
||||
Image size is now: 30000 medium sectors.
|
||||
Augmenting image with Method RS02:
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 68 MiB (34932 sectors).
|
||||
|
||||
@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
|
||||
|
||||
Opening rs03i-tmp.iso: 21000 medium sectors.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -249,7 +249,7 @@ ndata = 216
|
||||
nroots = 39 (18.1%)
|
||||
|
||||
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.
|
||||
CrcBufValid: NOT complete
|
||||
Cache allocation: 110592K+12288K+9984K=129M (data+parity+descrambling)
|
||||
|
||||
@@ -250,7 +250,7 @@ ndata = 216
|
||||
nroots = 39 (18.1%)
|
||||
|
||||
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.
|
||||
CrcBufValid: buffer VALID
|
||||
CrcBuf present, augmented image: using data MD5 sum
|
||||
|
||||
@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29835 medium sectors.
|
||||
* Truncating image to data part (21000 sectors).
|
||||
Image size is now: 21000 medium sectors.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29835 medium sectors.
|
||||
* Truncating image to data part (21001 sectors).
|
||||
Image size is now: 21000 medium sectors and 56 bytes.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29887 medium sectors.
|
||||
* Truncating image to data part (21000 sectors).
|
||||
Image size is now: 21000 medium sectors.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24927 medium sectors.
|
||||
* Truncating image to data part (21001 sectors).
|
||||
Image size is now: 21000 medium sectors and 56 bytes.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24990 medium sectors.
|
||||
* Truncating image to data part (21000 sectors).
|
||||
Image size is now: 21000 medium sectors.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24990 medium sectors.
|
||||
* Truncating image to data part (21001 sectors).
|
||||
Image size is now: 21000 medium sectors and 56 bytes.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
|
||||
|
||||
Opening rs03i-tmp.iso: 21000 medium sectors.
|
||||
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.
|
||||
|
||||
*
|
||||
|
||||
@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
|
||||
|
||||
Opening rs03i-tmp.iso: 21000 medium sectors and 56 bytes.
|
||||
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.
|
||||
Image has been augmented with error correction data.
|
||||
New image size is 48 MiB (24990 sectors).
|
||||
|
||||
@@ -252,7 +252,7 @@ ndata = 216
|
||||
nroots = 39 (18.1%)
|
||||
|
||||
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.
|
||||
CrcBufValid: buffer VALID
|
||||
CrcBuf present, augmented image: using data MD5 sum
|
||||
|
||||
@@ -209,7 +209,7 @@ ndata = 216
|
||||
nroots = 39 (18.1%)
|
||||
|
||||
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.
|
||||
CrcBufValid: buffer VALID
|
||||
CrcBuf present, augmented image: using data MD5 sum
|
||||
|
||||
@@ -266,7 +266,7 @@ ndata = 216
|
||||
nroots = 39 (18.1%)
|
||||
|
||||
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.
|
||||
CrcBufValid: buffer VALID
|
||||
CrcBuf present, augmented image: using data MD5 sum
|
||||
|
||||
@@ -263,7 +263,7 @@ ndata = 216
|
||||
nroots = 39 (18.1%)
|
||||
|
||||
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.
|
||||
CrcBufValid: buffer VALID
|
||||
CrcBuf present, augmented image: using data MD5 sum
|
||||
|
||||
@@ -441,7 +441,7 @@ fi
|
||||
# Tests whether CRC and ECC information is taken from the read process,
|
||||
# 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
|
||||
|
||||
$NEWVER --debug -i$TMPISO --random-image $((ISOSIZE-777)) --random-seed 1337 >>$LOGFILE 2>&1
|
||||
@@ -1478,9 +1478,6 @@ fi
|
||||
|
||||
REGTEST_SECTION="Reading tests (adaptive)"
|
||||
|
||||
echo "Currently not enabled!"
|
||||
exit 0
|
||||
|
||||
# Read good image with error correction data available
|
||||
|
||||
if try "reading good image" adaptive_good; then
|
||||
|
||||
@@ -730,7 +730,7 @@ fi
|
||||
|
||||
# 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
|
||||
|
||||
cp $ISO_PLUS137 $TMPISO
|
||||
@@ -743,7 +743,7 @@ fi
|
||||
# error in the zero-padded area following the 137 bytes.
|
||||
# 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
|
||||
|
||||
cp $ISO_PLUS137 $TMPISO
|
||||
@@ -1775,9 +1775,6 @@ fi
|
||||
|
||||
REGTEST_SECTION="Reading tests (adaptive)"
|
||||
|
||||
echo "Currently not enabled!"
|
||||
exit 0
|
||||
|
||||
# Read complete / optimal image
|
||||
|
||||
if try "reading good image" adaptive_good; then
|
||||
|
||||
@@ -6,4 +6,5 @@ for i in rs*.bash; do
|
||||
allfailed=$((allfailed + ret))
|
||||
done
|
||||
echo Failed $allfailed tests
|
||||
[ $allfailed -ge 256 ] && allfailed=255
|
||||
exit $allfailed
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
build=$(grep BUILDNUM $1 2>/dev/null | cut -d\ -f3)
|
||||
build=$((build+1))
|
||||
flavor=$(grep FLAVOR $1 2>/dev/null | cut -d\ -f3)
|
||||
if [ -z "$flavor" ]; then
|
||||
flavor=UNKNOWN
|
||||
fi
|
||||
echo "#define FLAVOR $flavor" >$1
|
||||
cat >$1 <<EOF
|
||||
#ifdef CLI
|
||||
#define FLAVOR NOGUI
|
||||
#else
|
||||
#define FLAVOR GUI
|
||||
#endif
|
||||
#define STRINGIFY(x) #x
|
||||
#define TOSTRING(x) STRINGIFY(x)
|
||||
EOF
|
||||
echo "#define BUILDNUM $build" >>$1
|
||||
if git describe >/dev/null 2>/dev/null; then
|
||||
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
|
||||
echo "#define BUILD \"$gitver-speed47.build$build\"" >$1
|
||||
echo "#define BUILD TOSTRING(FLAVOR) \"-speed47.build$build\"" >>$1
|
||||
fi
|
||||
date=$(date +"%d.%m.%y (%A, %H:%M)")
|
||||
echo "#define BDATE \"$date\"" >>$1
|
||||
|
||||
@@ -28,6 +28,33 @@
|
||||
#define Verbose(format, ...)
|
||||
#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
|
||||
***/
|
||||
@@ -36,9 +63,9 @@ static void get_base_dirs()
|
||||
{
|
||||
/*** Unless completely disabled through a configure option, the
|
||||
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))
|
||||
{ Closure->binDir = g_strdup(SRCDIR);
|
||||
Closure->docDir = g_strdup_printf("%s/documentation",SRCDIR);
|
||||
@@ -50,26 +77,40 @@ static void get_base_dirs()
|
||||
/*** Otherwise try the installation directory.
|
||||
On Unices this is a hardcoded directory. */
|
||||
|
||||
#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
|
||||
defined(SYS_NETBSD) || defined(SYS_HURD) || defined(SYS_UNKNOWN)
|
||||
#ifndef SYS_MINGW
|
||||
if(DirStat(BINDIR))
|
||||
Closure->binDir = g_strdup(BINDIR);
|
||||
|
||||
if(DirStat(DOCDIR))
|
||||
Closure->docDir = g_strdup(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
|
||||
|
||||
|
||||
/*** The location of the dotfile depends on the operating system.
|
||||
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:
|
||||
#endif /* WITH_EMBEDDED_SRC_PATH_YES */
|
||||
|
||||
#ifndef SYS_MINGW
|
||||
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 */
|
||||
#ifndef SYS_MINGW
|
||||
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"
|
||||
"- Homedir: %s\n"
|
||||
@@ -425,7 +466,7 @@ GlobalClosure *Closure;
|
||||
int exitCode = EXIT_SUCCESS;
|
||||
|
||||
void InitClosure()
|
||||
{ int v1,v2,v3,dots=0;
|
||||
{ int v1=0,v2=0,v3=0,dots=0;
|
||||
char *v,version[strlen(VERSION)+1];
|
||||
|
||||
Closure = g_malloc0(sizeof(GlobalClosure));
|
||||
@@ -506,6 +547,8 @@ void InitClosure()
|
||||
Closure->welcomeMessage = 1;
|
||||
Closure->useSCSIDriver = DRIVER_SG;
|
||||
Closure->dsmVersion = 1;
|
||||
Closure->noBdrDefectManagement = FALSE;
|
||||
Closure->ignoreRS03header = FALSE;
|
||||
|
||||
/* default sizes for typical CD and DVD media */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user