Compare commits
216 Commits
v0.79.6-pl
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec679e3762 | ||
|
|
b20421e639 | ||
|
|
627dcd111e | ||
|
|
4e9949bd38 | ||
|
|
4a7d375475 | ||
|
|
fb4e70bfca | ||
|
|
8a354dbb4f | ||
|
|
3ed8d281c4 | ||
|
|
9e6b43d2cf | ||
|
|
b89b7d0e50 | ||
|
|
4456b67a24 | ||
|
|
49cf87bb31 | ||
|
|
117fcb1ee9 | ||
|
|
7c72e749ca | ||
|
|
f03dc63571 | ||
|
|
f1debb4002 | ||
|
|
935aa50038 | ||
|
|
235a6243d2 | ||
|
|
aa00ac9e3e | ||
|
|
76f79adeed | ||
|
|
903228e4b0 | ||
|
|
02e1d35db8 | ||
|
|
bbf60ee3e6 | ||
|
|
dc0e03073d | ||
|
|
da612c8a3a | ||
|
|
e4753752d3 | ||
|
|
e5f1eb1bd0 | ||
|
|
4f8a5479ac | ||
|
|
4c57e2ab2b | ||
|
|
30ff03d053 | ||
|
|
d826d01de2 | ||
|
|
0d0180167e | ||
|
|
dc23ed54b1 | ||
|
|
51089b2902 | ||
|
|
63ff359b03 | ||
|
|
3538a6bc7b | ||
|
|
697b116374 | ||
|
|
3757f9c9a8 | ||
|
|
b7840d13c1 | ||
|
|
fdc09176d9 | ||
|
|
0392e443f5 | ||
|
|
7e416990cd | ||
|
|
93be13b0ee | ||
|
|
222429df10 | ||
|
|
5ea0011dce | ||
|
|
cc9f4dd817 | ||
|
|
7732231bb5 | ||
|
|
e5bc7faa73 | ||
|
|
3a37673b3f | ||
|
|
0d7a8cc22b | ||
|
|
0b5b9c9f9e | ||
|
|
061026af8a | ||
|
|
2b5fca0e4f | ||
|
|
24570f86d1 | ||
|
|
9f583b1ffb | ||
|
|
d66ee15738 | ||
|
|
6c88a55600 | ||
|
|
e75d73c74a | ||
|
|
a7e1a5591e | ||
|
|
64f31a8e5d | ||
|
|
d01aae080e | ||
|
|
967d8e0b4c | ||
|
|
ce64c57c49 | ||
|
|
5da5fa54dc | ||
|
|
6dc80bb542 | ||
|
|
8c0765a1b6 | ||
|
|
640d72098d | ||
|
|
57b55b2527 | ||
|
|
a00dee7240 | ||
|
|
f3226aaf68 | ||
|
|
d9f9094a56 | ||
|
|
923fe44e4a | ||
|
|
fb7198c1e9 | ||
|
|
58a35bc565 | ||
|
|
c4c0fcec81 | ||
|
|
bb6c9222fb | ||
|
|
956131c3f3 | ||
|
|
ed8d9cfd66 | ||
|
|
73218aebd2 | ||
|
|
9effa298cd | ||
|
|
2cd769a958 | ||
|
|
b227732274 | ||
|
|
e68a8e79d0 | ||
|
|
e9b44a04f0 | ||
|
|
eadbf54aae | ||
|
|
3967ff3cae | ||
|
|
f8678eb3be | ||
|
|
ea92170fd1 | ||
|
|
8504386fb1 | ||
|
|
8469a933e4 | ||
|
|
ad3285507b | ||
|
|
2bb0774538 | ||
|
|
2cee2215af | ||
|
|
8c567549c1 | ||
|
|
9bbd268aa4 | ||
|
|
3be61f4b7b | ||
|
|
c7b0f5b592 | ||
|
|
c0bde64a54 | ||
|
|
c19e7ea100 | ||
|
|
063ad92460 | ||
|
|
aa9065f0c0 | ||
|
|
0bfca9a9fc | ||
|
|
71668f3296 | ||
|
|
3d1bf4677e | ||
|
|
c32080d7d6 | ||
|
|
42bb0a120b | ||
|
|
8d24545c88 | ||
|
|
16ea27d791 | ||
|
|
a7c5268f37 | ||
|
|
45ff2c5fda | ||
|
|
1338598abb | ||
|
|
1577a7c18d | ||
|
|
36ef8517fd | ||
|
|
64c0361179 | ||
|
|
eeb9f0705d | ||
|
|
f38969c7c8 | ||
|
|
be6970f5df | ||
|
|
cb3d628f12 | ||
|
|
62ec64d18f | ||
|
|
981226eec2 | ||
|
|
06b367e1cd | ||
|
|
3d3a65d8c2 | ||
|
|
50ff1c0403 | ||
|
|
65976868cf | ||
|
|
62b602030a | ||
|
|
db4d3af31d | ||
|
|
244111e7db | ||
|
|
eb4c232059 | ||
|
|
1382e19eb5 | ||
|
|
8d088fc6e4 | ||
|
|
a8eb4acf08 | ||
|
|
90b5ab6443 | ||
|
|
eac7884373 | ||
|
|
8d080d69c5 | ||
|
|
70342e3174 | ||
|
|
d7a1936536 | ||
|
|
3147aa3ce8 | ||
|
|
ab057244b4 | ||
|
|
275decd40e | ||
|
|
9264713614 | ||
|
|
d0fd46c97c | ||
|
|
451bdf9a7e | ||
|
|
58b558ea7e | ||
|
|
6444ff67c5 | ||
|
|
bd9777a531 | ||
|
|
464f2b8bfa | ||
|
|
af178e89bc | ||
|
|
8710519821 | ||
|
|
36fa2db965 | ||
|
|
442af06f7a | ||
|
|
d8773e5ee6 | ||
|
|
5063106418 | ||
|
|
430fc71932 | ||
|
|
c336d039a9 | ||
|
|
fd4f8424f7 | ||
|
|
cc4547810f | ||
|
|
f5fa3d9952 | ||
|
|
dac6f14af0 | ||
|
|
fef782b246 | ||
|
|
9916ce74bc | ||
|
|
355427b6e0 | ||
|
|
da44e81561 | ||
|
|
9e5ba80e29 | ||
|
|
c72b85bb9a | ||
|
|
97a4df2f21 | ||
|
|
f68efb758e | ||
|
|
66cf0d25ee | ||
|
|
e8eb7824aa | ||
|
|
a3aedbd4a2 | ||
|
|
83acea4684 | ||
|
|
3bd06abbda | ||
|
|
901e87dfcd | ||
|
|
4518992908 | ||
|
|
802e095cfb | ||
|
|
8332b845a7 | ||
|
|
c0de13c027 | ||
|
|
b03bd5d076 | ||
|
|
290097c9b3 | ||
|
|
305f773bd3 | ||
|
|
fc18da7043 | ||
|
|
396c73f5c8 | ||
|
|
93c6a7a887 | ||
|
|
53ddb9a51b | ||
|
|
0521f5271e | ||
|
|
3844c156e5 | ||
|
|
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 |
64
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# For most projects, this workflow file will not need changing; you simply need
|
||||||
|
# to commit it to your repository.
|
||||||
|
#
|
||||||
|
# You may wish to alter this file to override the set of languages analyzed,
|
||||||
|
# or to provide custom queries or build logic.
|
||||||
|
#
|
||||||
|
# ******** NOTE ********
|
||||||
|
# We have attempted to detect the languages in your repository. Please check
|
||||||
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
|
# supported CodeQL languages.
|
||||||
|
#
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on: [push,pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'cpp' ]
|
||||||
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||||
|
# Use only 'java' to analyze code written in Java, Kotlin or both
|
||||||
|
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
||||||
|
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v2
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
|
# By default, queries listed here will override any specified in a config file.
|
||||||
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
|
||||||
|
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||||
|
# queries: security-extended,security-and-quality
|
||||||
|
|
||||||
|
|
||||||
|
- name: Build app
|
||||||
|
run: |
|
||||||
|
sudo apt-get update && sudo apt-get install -y libglib2.0-dev ghostscript man jq libgtk-3-dev
|
||||||
|
./configure --with-werror
|
||||||
|
nproc && make -j$(nproc)
|
||||||
|
env:
|
||||||
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v2
|
||||||
|
with:
|
||||||
|
category: "/language:${{matrix.language}}"
|
||||||
103
.github/workflows/make-dist.sh
vendored
Executable file
@@ -0,0 +1,103 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
github_ref="$1"
|
||||||
|
|
||||||
|
case "$MSYSTEM" in
|
||||||
|
MINGW64) os=win64; suf=$os-portable; exe=.exe;;
|
||||||
|
MINGW32) os=win32; suf=$os-portable; exe=.exe;;
|
||||||
|
*) os=linux64; suf=$os-static; exe='';;
|
||||||
|
esac
|
||||||
|
|
||||||
|
./dvdisaster$exe --version
|
||||||
|
|
||||||
|
if ./dvdisaster$exe --version | grep -q NOGUI; then
|
||||||
|
GUI=0
|
||||||
|
suffix=$suf-cli-only
|
||||||
|
else
|
||||||
|
GUI=1
|
||||||
|
suffix=$suf
|
||||||
|
fi
|
||||||
|
|
||||||
|
archive=dvdisaster-$(echo "$github_ref" | grep -Eo '[^/]+$')-$suffix.zip
|
||||||
|
[ -n "$GITHUB_OUTPUT" ] && echo "archive=$archive" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "!> Appimage is <$archive>"
|
||||||
|
|
||||||
|
echo "!> Copying locales"
|
||||||
|
mkdir -p dist/locale
|
||||||
|
cp -va locale/*/ dist/locale/
|
||||||
|
|
||||||
|
# WINDOWS 32/64
|
||||||
|
if [ "$os" != "linux64" ]; then
|
||||||
|
lookup_dependencies="dvdisaster"
|
||||||
|
if [ "$GUI" = 1 ]; then
|
||||||
|
echo "!> Copying glib2 schemas..."
|
||||||
|
mkdir -p dist/share/glib-2.0
|
||||||
|
cp -va "$MINGW_PREFIX/share/glib-2.0/schemas" dist/share/glib-2.0/
|
||||||
|
echo "!> Copying default icons..."
|
||||||
|
mkdir -p dist/share/
|
||||||
|
cp -va "$MINGW_PREFIX/share/icons" dist/share/
|
||||||
|
loaders_cache="$(find "$MINGW_PREFIX/lib/gdk-pixbuf-2.0/" -name loaders.cache | head -n1)"
|
||||||
|
pixbuf_dir="$(dirname "$loaders_cache")"
|
||||||
|
echo "!> Absolute pixbuf directory is $pixbuf_dir"
|
||||||
|
pixbuf_dir_relative=$(echo "$pixbuf_dir" | sed -re "s=$MINGW_PREFIX/==")
|
||||||
|
echo "!> Relative pixbuf directory is $pixbuf_dir_relative"
|
||||||
|
mkdir -p "dist/$pixbuf_dir_relative/loaders"
|
||||||
|
cp -va "$loaders_cache" "dist/$pixbuf_dir_relative/"
|
||||||
|
lookup_dependencies="$lookup_dependencies $(\ls -1 "$pixbuf_dir"/loaders/*.dll)"
|
||||||
|
fi
|
||||||
|
echo "!> Will look for dependencies of $lookup_dependencies"
|
||||||
|
|
||||||
|
for binary in $lookup_dependencies
|
||||||
|
do
|
||||||
|
if [ "$binary" != "dvdisaster" ]; then
|
||||||
|
echo "!> Copying pixbuf loader lib $binary to dist/$pixbuf_dir_relative/loaders..."
|
||||||
|
cp -va "$binary" "dist/$pixbuf_dir_relative/loaders/"
|
||||||
|
fi
|
||||||
|
echo "!> Looking for dependencies of $binary..."
|
||||||
|
# ntldd -R $binary
|
||||||
|
for i in $(ntldd -R "$binary" | awk '/mingw/ {print $3}' | tr \\\\ / | grep -Eo '[^/]+$')
|
||||||
|
do
|
||||||
|
src="$MINGW_PREFIX/bin/$i"
|
||||||
|
echo -n "!>> Inspecting $src... "
|
||||||
|
if [ -e "$src" ]; then
|
||||||
|
echo "found, copying"
|
||||||
|
cp -va "$src" dist/
|
||||||
|
else
|
||||||
|
echo "not found, skipping"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "!> Remove .a files if any"
|
||||||
|
find dist -type f -name "*.a" -print -delete
|
||||||
|
|
||||||
|
echo "!> Copy and rename text files"
|
||||||
|
for file in CHANGELOG TODO COPYING CREDITS.* TODO
|
||||||
|
do
|
||||||
|
cp -va "$file" "dist/$file.txt"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "!> Copy other files"
|
||||||
|
for file in dvdisaster.exe documentation/user-manual/manual.pdf
|
||||||
|
do
|
||||||
|
cp -va "$file" dist/
|
||||||
|
done
|
||||||
|
# /WINDOWS
|
||||||
|
else
|
||||||
|
# Linux
|
||||||
|
echo "!> Copying text, man and pdf files"
|
||||||
|
cp -va CHANGELOG TODO COPYING CREDITS.* dvdisaster documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dist/
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "!> Building pdf from man"
|
||||||
|
man -t documentation/dvdisaster.en.1 | ps2pdf - dist/dvdisaster.pdf
|
||||||
|
|
||||||
|
echo "!> Building dist zip"
|
||||||
|
if command -v zip >/dev/null; then
|
||||||
|
mv -v dist "${archive/.zip/}"
|
||||||
|
zip -9r "$archive" "${archive/.zip/}"
|
||||||
|
mv -v "${archive/.zip/}" dist
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "!> Dist done ($archive)"
|
||||||
51
.github/workflows/make-mac-app.sh
vendored
Executable file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
github_ref="$1"
|
||||||
|
|
||||||
|
if ./dvdisaster --version | grep -q NOGUI; then
|
||||||
|
suffix="-cli-only"
|
||||||
|
else
|
||||||
|
suffix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
archive="dvdisaster-$(echo "$github_ref" | grep -Eo '[^/]+$')-macos$suffix.dmg"
|
||||||
|
[ -n "$GITHUB_OUTPUT" ] && echo "archive=$archive" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "mac dmg is <$archive>"
|
||||||
|
|
||||||
|
mkdir -p dist
|
||||||
|
|
||||||
|
# Create directory structure for the macOS application bundle
|
||||||
|
mkdir -p dvdisaster.app/Contents/{MacOS,Resources}
|
||||||
|
|
||||||
|
# Copy the main executable to the appropriate location
|
||||||
|
cp dvdisaster dvdisaster.app/Contents/MacOS
|
||||||
|
|
||||||
|
# Use dylibbundler to bundle dynamic libraries into the application bundle
|
||||||
|
dylibbundler -od -cd -b -x dvdisaster.app/Contents/MacOS/dvdisaster -d 'dvdisaster.app/Contents/libs/'
|
||||||
|
|
||||||
|
# Copy the Info.plist file to define application metadata
|
||||||
|
cp macinst/Info.plist dvdisaster.app/Contents/
|
||||||
|
|
||||||
|
# Create a directory for documentation resources
|
||||||
|
mkdir dvdisaster.app/Contents/Resources/documentation
|
||||||
|
|
||||||
|
# Copy documentation files to the documentation directory
|
||||||
|
cp CHANGELOG TODO COPYING CREDITS.* documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dvdisaster.app/Contents/Resources/documentation
|
||||||
|
|
||||||
|
# Copy localization files to the locale directory
|
||||||
|
find locale/* -maxdepth 0 -type d -exec cp -r {} dvdisaster.app/Contents/Resources/locale/ \;
|
||||||
|
|
||||||
|
# Copy the application icon to the resources directory
|
||||||
|
cp macinst/dvdisaster.icns dvdisaster.app/Contents/Resources/
|
||||||
|
|
||||||
|
# Make the main executable executable
|
||||||
|
chmod +x dvdisaster.app/Contents/MacOS/dvdisaster
|
||||||
|
|
||||||
|
# Move the application bundle to the 'dist' directory
|
||||||
|
mv dvdisaster.app dist
|
||||||
|
|
||||||
|
create-dmg "$archive" dist
|
||||||
|
|
||||||
|
echo "dist done ($archive)"
|
||||||
340
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
name: autobuild
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
- 'dev'
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
mac:
|
||||||
|
runs-on: macos-13
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ui: [cli, gui]
|
||||||
|
include:
|
||||||
|
- ui: cli
|
||||||
|
clionly: --with-gui=no
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: install prerequisites
|
||||||
|
env:
|
||||||
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
||||||
|
run: brew install ghostscript glib gdk-pixbuf dylibbundler create-dmg
|
||||||
|
- name: install prerequisites (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
env:
|
||||||
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
||||||
|
run: brew install gtk+3
|
||||||
|
- name: configure
|
||||||
|
run: |
|
||||||
|
set +x
|
||||||
|
./configure ${{ matrix.clionly }} --with-werror
|
||||||
|
- name: make
|
||||||
|
run: |
|
||||||
|
cat Makefile.config
|
||||||
|
make -j$(sysctl -n hw.ncpu || 2)
|
||||||
|
- name: check executability
|
||||||
|
run: ./dvdisaster --version
|
||||||
|
- name: check executable (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
if ./dvdisaster --version | grep NOGUI; then exit 1; fi
|
||||||
|
- name: check executable (CLI)
|
||||||
|
if: matrix.ui == 'cli'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
./dvdisaster --version | grep NOGUI
|
||||||
|
- name: build dist
|
||||||
|
run: ./.github/workflows/make-mac-app.sh ${{ github.ref }}
|
||||||
|
id: dist
|
||||||
|
- name: Tag for Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
run: |
|
||||||
|
git tag -f latest
|
||||||
|
git push -f origin latest
|
||||||
|
- name: Upload to Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
name: "Continuous Build"
|
||||||
|
tag_name: latest
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Tag for Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
run: |
|
||||||
|
git tag -f devel
|
||||||
|
git push -f origin devel
|
||||||
|
- name: Upload to Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
draft: true
|
||||||
|
name: "Dev Build"
|
||||||
|
tag_name: devel
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Upload to Draft Release
|
||||||
|
if: github.ref_type == 'tag'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
draft: true
|
||||||
|
name: ${{ github.ref_name }}
|
||||||
|
tag_name: ${{ github.ref_name }}
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
|
||||||
|
win:
|
||||||
|
runs-on: windows-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [x86_64, i686]
|
||||||
|
ui: [cli, gui]
|
||||||
|
include:
|
||||||
|
- arch: x86_64
|
||||||
|
msystem: MINGW64
|
||||||
|
grep: x86-64
|
||||||
|
- arch: i686
|
||||||
|
msystem: MINGW32
|
||||||
|
grep: 386
|
||||||
|
- ui: cli
|
||||||
|
clionly: --with-gui=no
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: msys2 {0}
|
||||||
|
steps:
|
||||||
|
- uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.msystem }}
|
||||||
|
update: false
|
||||||
|
install: git diffutils make pkg-config mingw-w64-${{ matrix.arch }}-glib2 mingw-w64-${{ matrix.arch }}-gcc mingw-w64-${{ matrix.arch }}-ghostscript mingw-w64-${{ matrix.arch }}-ntldd-git man zip
|
||||||
|
- name: install GUI prereqs
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: pacman -S --noconfirm mingw-w64-${{ matrix.arch }}-gtk3 mingw-w64-${{ matrix.arch }}-librsvg
|
||||||
|
- name: git config
|
||||||
|
run: git config --global core.autocrlf input
|
||||||
|
shell: bash
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: configure
|
||||||
|
run: ./configure ${{ matrix.clionly }}
|
||||||
|
- name: make
|
||||||
|
run: nproc && make -j$(nproc)
|
||||||
|
- name: check executable
|
||||||
|
run: |
|
||||||
|
./dvdisaster.exe --version
|
||||||
|
file dvdisaster.exe
|
||||||
|
if ./dvdisaster.exe --version | grep dirty; then exit 1; fi
|
||||||
|
file dvdisaster.exe | grep -q '${{ matrix.grep }}'
|
||||||
|
file dvdisaster.exe | grep -q 'for MS Windows'
|
||||||
|
- name: check executable (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: if ./dvdisaster.exe --version | grep NOGUI; then exit 1; fi
|
||||||
|
- name: check executable (CLI)
|
||||||
|
if: matrix.ui == 'cli'
|
||||||
|
run: ./dvdisaster.exe --version | grep NOGUI
|
||||||
|
- 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: Tag for Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
run: |
|
||||||
|
git tag -f latest
|
||||||
|
git push -f origin latest
|
||||||
|
- name: Upload to Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
name: "Continuous Build"
|
||||||
|
tag_name: latest
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Tag for Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
run: |
|
||||||
|
git tag -f devel
|
||||||
|
git push -f origin devel
|
||||||
|
- name: Upload to Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
draft: true
|
||||||
|
name: "Dev Build"
|
||||||
|
tag_name: devel
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Upload to Draft Release
|
||||||
|
if: github.ref_type == 'tag'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
draft: true
|
||||||
|
name: ${{ github.ref_name }}
|
||||||
|
tag_name: ${{ github.ref_name }}
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
|
||||||
|
linux64-cli:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: install prerequisites
|
||||||
|
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man
|
||||||
|
- name: configure
|
||||||
|
run: ./configure --with-gui=no
|
||||||
|
- 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: Tag for Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
run: |
|
||||||
|
git tag -f latest
|
||||||
|
git push -f origin latest
|
||||||
|
- name: Upload to Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
name: "Continuous Build"
|
||||||
|
tag_name: latest
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Tag for Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
run: |
|
||||||
|
git tag -f devel
|
||||||
|
git push -f origin devel
|
||||||
|
- name: Upload to Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
draft: true
|
||||||
|
name: "Dev Build"
|
||||||
|
tag_name: devel
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Upload to Draft Release
|
||||||
|
if: github.ref_type == 'tag'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
draft: true
|
||||||
|
name: ${{ github.ref_name }}
|
||||||
|
tag_name: ${{ github.ref_name }}
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
|
||||||
|
linux64-appimage:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: install prerequisites on host
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y fuse
|
||||||
|
- name: docker
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/dist
|
||||||
|
docker run --device /dev/fuse --privileged --name uu -d -v $PWD:/dvdisaster -v /tmp/dist:/dist ubuntu:18.04 sleep 1800
|
||||||
|
- name: install prerequisites in docker
|
||||||
|
run: docker exec uu sh -c 'apt update && apt install -y ghostscript man fuse file make gcc pkg-config libglib2.0-dev libgtk-3-dev glib-networking libgdk-pixbuf2.0-dev'
|
||||||
|
- name: configure in docker
|
||||||
|
run: docker exec uu sh -c 'cd /dvdisaster && ./configure --prefix=/usr'
|
||||||
|
- name: make in docker
|
||||||
|
run: docker exec uu sh -c 'make -C /dvdisaster -j$(nproc) && make -C /dvdisaster'
|
||||||
|
- name: make install in docker
|
||||||
|
run: docker exec uu sh -c 'cd /dvdisaster && touch documentation/user-manual/manual.pdf && make install DESTDIR=/dist'
|
||||||
|
- name: copy gtk3 and gio stuff to dist in docker
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
docker exec uu sh -c 'install -d /dist/usr/lib/gtk-3.0 && cp -va $(pkg-config --variable=libdir gtk+-3.0)/gtk-3.0/* /dist/usr/lib/gtk-3.0'
|
||||||
|
docker exec uu sh -c 'install -d /dist/usr/lib/gio/modules && cp -va $(dirname $(dpkg -L glib-networking | grep -F /libgiolibproxy.so | head -n1))/* /dist/usr/lib/gio/modules/'
|
||||||
|
docker exec uu sh -c 'gio-querymodules /dist/usr/lib/gio/modules'
|
||||||
|
docker exec uu sh -c 'install -d /dist/usr/lib/gdk-pixbuf2 && timeout 10 cp -va $(dirname $(find /usr/lib -name "libpixbufloader-*.so" | head -n1))/../* /dist/usr/lib/gdk-pixbuf2/'
|
||||||
|
docker exec uu sh -c 'gdk-pixbuf-query-loaders > /dist/usr/lib/gdk-pixbuf2/loaders.cache'
|
||||||
|
IM_BASEPATH=$(dirname $(cd /tmp/dist; find . -name immodules.cache))/immodules
|
||||||
|
sudo sed -i -re 's=^"/.+/immodules/(.+)="'$IM_BASEPATH'/\1=' $(find /tmp/dist/ -name immodules.cache)
|
||||||
|
PIX_BASEPATH=$(dirname $(cd /tmp/dist; find . -name loaders.cache))/
|
||||||
|
sudo sed -i -re 's=^"/.+/loaders/(.+)="'$PIX_BASEPATH'/loaders/\1=' $(find /tmp/dist/ -name loaders.cache)
|
||||||
|
- name: build appimage in docker with linuxdeploy
|
||||||
|
run: |
|
||||||
|
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
||||||
|
chmod 755 linuxdeploy-x86_64.AppImage
|
||||||
|
docker exec -e LINUXDEPLOY_OUTPUT_VERSION=$(echo "${{ github.ref }}" | grep -Eo '[^/]+$') -e ARCH=x86_64 uu sh -c 'cd /dvdisaster && ./linuxdeploy-x86_64.AppImage -d contrib/dvdisaster.desktop -i contrib/dvdisaster64.png -i contrib/dvdisaster48.png -i contrib/dvdisaster32.png -i contrib/dvdisaster16.png --icon-filename dvdisaster --custom-apprun=contrib/AppRun.sh --appdir /dist/ --output appimage'
|
||||||
|
- name: fix perms
|
||||||
|
run: docker exec uu sh -c "chown -R $UID /dist /dvdisaster/*.AppImage"
|
||||||
|
- name: patch libgio and apply glib workaround by repackaging with appimagetool
|
||||||
|
env:
|
||||||
|
ARCH: x86_64
|
||||||
|
run: |
|
||||||
|
wget -q https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||||
|
chmod 755 appimagetool-x86_64.AppImage
|
||||||
|
exe=$(ls -1 dvdisaster*.AppImage)
|
||||||
|
chmod 755 $exe
|
||||||
|
./$exe --appimage-extract
|
||||||
|
rm -vf $exe
|
||||||
|
sed -i -re "s=gio/modules=:::::::::::=g" squashfs-root/usr/lib/libgio*.so*
|
||||||
|
env LINUXDEPLOY_OUTPUT_VERSION=$(echo "${{ github.ref }}" | grep -Eo '[^/]+$') ./appimagetool-x86_64.AppImage -v squashfs-root
|
||||||
|
mv -v dvdisaster*AppImage $exe
|
||||||
|
chmod 755 $exe
|
||||||
|
- name: test appimage
|
||||||
|
id: dist
|
||||||
|
run: |
|
||||||
|
chmod 755 dvdisaster*.AppImage && ./dvdisaster*.AppImage --version
|
||||||
|
archive=$(ls -1 dvdisaster*.AppImage)
|
||||||
|
echo "archive=$archive" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "appimage is <$archive>"
|
||||||
|
- name: Tag for Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
run: |
|
||||||
|
git tag -f latest
|
||||||
|
git push -f origin latest
|
||||||
|
- name: Upload to Continuous Build
|
||||||
|
if: github.ref_name == 'master'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
name: "Continuous Build"
|
||||||
|
tag_name: latest
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Tag for Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
run: |
|
||||||
|
git tag -f devel
|
||||||
|
git push -f origin devel
|
||||||
|
- name: Upload to Dev Build
|
||||||
|
if: github.ref_name == 'dev'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
prerelease: true
|
||||||
|
draft: true
|
||||||
|
name: "Dev Build"
|
||||||
|
tag_name: devel
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
|
- name: Upload to Draft Release
|
||||||
|
if: github.ref_type == 'tag'
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
draft: true
|
||||||
|
name: ${{ github.ref_name }}
|
||||||
|
tag_name: ${{ github.ref_name }}
|
||||||
|
files: ${{ steps.dist.outputs.archive }}
|
||||||
174
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
name: non-regression tests
|
||||||
|
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
mac:
|
||||||
|
runs-on: macos-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ui: [cli, gui]
|
||||||
|
printf: [fmtdbg, normal]
|
||||||
|
include:
|
||||||
|
- ui: cli
|
||||||
|
clionly: --with-gui=no
|
||||||
|
- printf: fmtdbg
|
||||||
|
debugprintf: --with-debug-printf-format
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: install prerequisites
|
||||||
|
env:
|
||||||
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
||||||
|
run: brew install ghostscript
|
||||||
|
- name: install prerequisites (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
env:
|
||||||
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
||||||
|
run: brew install gtk+3
|
||||||
|
- name: configure
|
||||||
|
run: |
|
||||||
|
set +x
|
||||||
|
./configure ${{ matrix.clionly }} ${{ matrix.debugprintf }} --with-werror
|
||||||
|
- name: make
|
||||||
|
run: |
|
||||||
|
cat Makefile.config
|
||||||
|
echo xxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
grep -i icon GNUmakefile
|
||||||
|
make -j$(sysctl -n hw.ncpu || 2)
|
||||||
|
- name: check executability
|
||||||
|
run: ./dvdisaster --version
|
||||||
|
- name: check executable (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
if ./dvdisaster --version | grep NOGUI; then exit 1; fi
|
||||||
|
- name: check executable (CLI)
|
||||||
|
if: matrix.ui == 'cli'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
./dvdisaster --version | grep NOGUI
|
||||||
|
- name: prepare dist
|
||||||
|
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
||||||
|
- name: regression tests
|
||||||
|
if: matrix.printf == 'normal'
|
||||||
|
env:
|
||||||
|
REGTEST_NO_UTF8: 1
|
||||||
|
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
|
||||||
|
win:
|
||||||
|
runs-on: windows-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [x86_64, i686]
|
||||||
|
ui: [cli, gui]
|
||||||
|
printf: [fmtdbg, normal]
|
||||||
|
include:
|
||||||
|
- arch: x86_64
|
||||||
|
msystem: MINGW64
|
||||||
|
grep: x86-64
|
||||||
|
- arch: i686
|
||||||
|
msystem: MINGW32
|
||||||
|
grep: 386
|
||||||
|
- ui: cli
|
||||||
|
clionly: --with-gui=no
|
||||||
|
- printf: fmtdbg
|
||||||
|
debugprintf: --with-debug-printf-format
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: msys2 {0}
|
||||||
|
steps:
|
||||||
|
- uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.msystem }}
|
||||||
|
update: false
|
||||||
|
install: git diffutils make pkg-config mingw-w64-${{ matrix.arch }}-glib2 mingw-w64-${{ matrix.arch }}-gcc mingw-w64-${{ matrix.arch }}-ghostscript mingw-w64-${{ matrix.arch }}-ntldd-git man zip
|
||||||
|
- name: install GUI prereqs
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: pacman -S --noconfirm mingw-w64-${{ matrix.arch }}-gtk3
|
||||||
|
- name: git config
|
||||||
|
run: git config --global core.autocrlf input
|
||||||
|
shell: bash
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: configure
|
||||||
|
run: |
|
||||||
|
echo running ./configure ${{ matrix.clionly }} ${{ matrix.debugprintf }} --with-werror
|
||||||
|
./configure ${{ matrix.clionly }} ${{ matrix.debugprintf }} --with-werror
|
||||||
|
- name: make
|
||||||
|
run: nproc && make -j$(nproc)
|
||||||
|
- name: check executable
|
||||||
|
run: |
|
||||||
|
./dvdisaster.exe --version
|
||||||
|
file dvdisaster.exe
|
||||||
|
if ./dvdisaster.exe --version | grep dirty; then exit 1; fi
|
||||||
|
file dvdisaster.exe | grep -q '${{ matrix.grep }}'
|
||||||
|
file dvdisaster.exe | grep -q 'for MS Windows'
|
||||||
|
- name: check executable (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: |
|
||||||
|
./dvdisaster.exe --version
|
||||||
|
if ./dvdisaster.exe --version | grep NOGUI; then exit 1; fi
|
||||||
|
- name: check executable (CLI)
|
||||||
|
if: matrix.ui == 'cli'
|
||||||
|
run: |
|
||||||
|
./dvdisaster.exe --version
|
||||||
|
./dvdisaster.exe --version | grep NOGUI
|
||||||
|
- name: try to prepare dist
|
||||||
|
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
||||||
|
- name: run regression tests
|
||||||
|
if: matrix.printf == 'normal'
|
||||||
|
env:
|
||||||
|
REGTEST_NO_UTF8: 1
|
||||||
|
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
|
||||||
|
|
||||||
|
linux:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ui: [cli, gui]
|
||||||
|
printf: [fmtdbg, normal]
|
||||||
|
include:
|
||||||
|
- ui: cli
|
||||||
|
clionly: --with-gui=no
|
||||||
|
- printf: fmtdbg
|
||||||
|
debugprintf: --with-debug-printf-format
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: install prerequisites
|
||||||
|
env:
|
||||||
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y libglib2.0-dev ghostscript man jq
|
||||||
|
- name: install prerequisites (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
env:
|
||||||
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
run: sudo apt-get install -y libgtk-3-dev
|
||||||
|
- name: configure
|
||||||
|
run: |
|
||||||
|
echo ./configure ${{ matrix.clionly }} ${{ matrix.debugprintf }} --with-werror
|
||||||
|
./configure ${{ matrix.clionly }} ${{ matrix.debugprintf }} --with-werror
|
||||||
|
- name: make
|
||||||
|
run: nproc && make -j$(nproc)
|
||||||
|
- name: check executability
|
||||||
|
run: ./dvdisaster --version
|
||||||
|
- name: check executable (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
if ./dvdisaster --version | grep NOGUI; then exit 1; fi
|
||||||
|
- name: check executable (CLI)
|
||||||
|
if: matrix.ui == 'cli'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
./dvdisaster --version | grep NOGUI
|
||||||
|
- name: prepare dist
|
||||||
|
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
||||||
|
- name: regression tests
|
||||||
|
if: matrix.printf == 'normal'
|
||||||
|
env:
|
||||||
|
REGTEST_NO_UTF8: 1
|
||||||
|
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
|
||||||
2
.gitignore
vendored
@@ -10,7 +10,7 @@ locale/Makefile
|
|||||||
GNUmakefile
|
GNUmakefile
|
||||||
.gitignore
|
.gitignore
|
||||||
simple-md5sum
|
simple-md5sum
|
||||||
inlined-icons.h
|
inlined-icons.c
|
||||||
help-dialogs.h
|
help-dialogs.h
|
||||||
dvdisaster
|
dvdisaster
|
||||||
build.h
|
build.h
|
||||||
|
|||||||
223
CHANGELOG
@@ -1,5 +1,218 @@
|
|||||||
# dvdisaster changelog -*-text-*-
|
# dvdisaster changelog -*-text-*-
|
||||||
|
# dvdisaster: Additional error correction for optical media.
|
||||||
|
# Copyright (C) 2004-2017 Carsten Gnoerlich.
|
||||||
|
# Copyright (C) 2019-2021 The dvdisaster development team.
|
||||||
|
#
|
||||||
|
# Email: support@dvdisaster.org
|
||||||
|
#
|
||||||
|
# This file is part of dvdisaster.
|
||||||
|
#
|
||||||
|
# dvdisaster is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# dvdisaster is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
0.79.10.patchlevel-5 11-05-2025 *UNOFFICIAL*
|
||||||
|
- fix: GUI fileopen dialog crash
|
||||||
|
|
||||||
|
0.79.10.patchlevel-4 04-05-2025 *UNOFFICIAL*
|
||||||
|
- enh: port the GUI to gtk3
|
||||||
|
- enh: speedup RS03 repair
|
||||||
|
- enh: add support for HD-DVD(-R(W))
|
||||||
|
- fix: RS03 exhaustive search on BD-R when --no-bd-defect-management is used
|
||||||
|
- fix: a few coding errors found by static analysis (no major impact)
|
||||||
|
- fix: disable strip button on GUI when working
|
||||||
|
|
||||||
|
0.79.10.patchlevel-3 17-02-2024 *UNOFFICIAL*
|
||||||
|
- fix: corrupt data under Windows with mmap
|
||||||
|
- fix: re-enable buttons after Split is used
|
||||||
|
|
||||||
|
0.79.10.patchlevel-2 17-09-2023 *UNOFFICIAL*
|
||||||
|
- re-introduced MacOS build. No other functional change since v0.79.10-pl1.
|
||||||
|
|
||||||
|
0.79.10.patchlevel-1 09-10-2021 *UNOFFICIAL*
|
||||||
|
- sync: integrated changes from latest upstream,
|
||||||
|
please refer to the entries below for details.
|
||||||
|
|
||||||
|
0.79.10 24-09-2021
|
||||||
|
- command line only version can be generated by
|
||||||
|
using ./configure --with-gui=no
|
||||||
|
The cli version will not be linked against gtk+ and it auxiliary libs.
|
||||||
|
However, glib is still required as it provides some basic functionality
|
||||||
|
for multithreading and string operations.
|
||||||
|
- Fixed a checksum buffering bug which was introduced in 0.79.6:
|
||||||
|
If user reads in CD A, then switches to image of CD B in the file dialogue
|
||||||
|
and creates error correction data, depending on the codec some invalid
|
||||||
|
checksums from CD A will be drawn into the ecc data for CD B.
|
||||||
|
- Fixed crc buf related memory leak while reading/scanning
|
||||||
|
- run_regtest will now insist that both image and ecc arguments are given.
|
||||||
|
This prevents stale arguments when running in GUI mode.
|
||||||
|
- Test case motivated changes/fixes:
|
||||||
|
- in general: fixed missing/inappropriate parameters in test cases for GUI mode
|
||||||
|
- RS01_scan_tao_tail_with_ecc
|
||||||
|
corrected wording of warning message (scan mode won't alter the image)
|
||||||
|
- RS01_scan_medium_with_dsm
|
||||||
|
RS01_read_medium_with_dsm
|
||||||
|
substantiated reading summary
|
||||||
|
- RS01_read_medium_with_dsm_in_image
|
||||||
|
removed reporting of displaced sectors in the image (only displaced
|
||||||
|
sectors in the medium matter!)
|
||||||
|
- RS02_ecc_recreate_after_read_rs02
|
||||||
|
crc buf now considered valid (when stripping the data portion from
|
||||||
|
the read image)
|
||||||
|
- RS03i_plus_56_bytes
|
||||||
|
RS03i_with_ecc_file_header
|
||||||
|
fixed misconfiguration of testcase for GUI
|
||||||
|
- RS03i_missing_header (and most following verify tests)
|
||||||
|
prognosis would declare image as uncorrectable because treatment
|
||||||
|
of unreadable ECC headers was broken.
|
||||||
|
- RS03i_missing_header3/4
|
||||||
|
Test case created an uncorrectable image (which did test the required
|
||||||
|
properties, though). Changed to a test-equvalent correctable image.
|
||||||
|
- RS03f_ecc_recreate_after_read_rs02
|
||||||
|
rs03-create.c:prepare_header() called CrcBufValid() with wrong values when
|
||||||
|
creating error correction files for an already augmented image.
|
||||||
|
- Merged fixes from Stéphane Lesimple's version
|
||||||
|
- printf argument debugging and PRId64 etc. format strings
|
||||||
|
- -Werror setting
|
||||||
|
- "easy" patches; non-trivial changes have been noted and
|
||||||
|
will be processed later
|
||||||
|
- Merged Debian patches:
|
||||||
|
08 gmake detection
|
||||||
|
10 dvdisaster.desktop
|
||||||
|
12 up to spelling
|
||||||
|
17 API warnings (partially merged)
|
||||||
|
29 fix more typos
|
||||||
|
33 - obsoleted -
|
||||||
|
34 format security warning
|
||||||
|
35 archived homepage (rewritten with references to the pdf manuals)
|
||||||
|
|
||||||
|
|
||||||
|
0.79.9 14-05-2021
|
||||||
|
- Revised code for clean compile under gcc-10 and Debian 11 (sid) or Slackware 15
|
||||||
|
- added -Wno-deprecated-declarations to shield against a flood of warnings
|
||||||
|
resulting from gtk-2 / glib mismatches
|
||||||
|
- safeguarded install and uninstall against blanks in path names
|
||||||
|
|
||||||
|
0.79.8 11-05-2021
|
||||||
|
- Revised code for clean compile under gcc-8 and Debian 10 (Buster).
|
||||||
|
- Simplyfied display of URLS and PDF via xdg-open
|
||||||
|
- minor rework of user manual
|
||||||
|
- added skip feature to regtests: sometimes, output rows are permutated due to
|
||||||
|
a race condition between printf()s. This is rather hard to control.
|
||||||
|
|
||||||
|
0.79.7 09-04-2019
|
||||||
|
- Cleanup of documentation and files for new contact address
|
||||||
|
|
||||||
|
0.79.6.patchlevel-9 27-06-2021 *UNOFFICIAL*
|
||||||
|
- fix: using --strip in console without X server would segfault at program exit
|
||||||
|
- enh: windows: hide useless background console
|
||||||
|
- enh: linear read: log amount of correctly read sectors during a sesssion
|
||||||
|
- enh: log window: use a bigger scrollback buffer
|
||||||
|
- doc: regenerate codecs.pdf to get proper page numbers
|
||||||
|
- chore: fix codec-specs Makefile
|
||||||
|
|
||||||
|
0.79.6.patchlevel-8 22-02-2021 *UNOFFICIAL*
|
||||||
|
- enh: gui: medium-info: add an 'exhaustive search' when not enabled in options
|
||||||
|
- enh: gui: prefs: add a visual cue of tooltips
|
||||||
|
|
||||||
|
0.79.6.patchlevel-7 30-01-2021 *UNOFFICIAL*
|
||||||
|
- feat: add a new button to remove ECC data from an iso ("strip"), restoring an ISO to its previous non-augmented state (option: -z/--strip)
|
||||||
|
- enh: try harder to find RS02/RS03 sigs in non-exhaustive mode (#19)
|
||||||
|
- enh: add --examine-rs0[23] in --debug mode for CLI, to force exhaustive search with --medium-info
|
||||||
|
- enh: more logs around exhaustive RS03 search in verbose
|
||||||
|
- fix: windows: get rid of the last few warnings, build with -Werror for releases
|
||||||
|
- chore: update tests, locales & readme
|
||||||
|
|
||||||
|
0.79.6.patchlevel-6 17-01-2021 *UNOFFICIAL*
|
||||||
|
- fix: allow blank media in Preferences>Error correction>RS02>query medium (#19)
|
||||||
|
- fix: tested compilation under clang, detected a reversed order or arguments in a call to memset(), fixed
|
||||||
|
- fix: printf: added --with-debug-print-format configure option to permit compile-time detection of printf format errors:
|
||||||
|
- fixed some potentially severe ones
|
||||||
|
- replaced %ldd/%ld by PRId64 to remove warnings on all archs
|
||||||
|
- fix: appimage: adjust docdir for help menu
|
||||||
|
- chore: ensure configure works properly even if user adds -Werror to CFLAGS
|
||||||
|
- chore: added --with-werror to configure
|
||||||
|
- chore: replaced CLI_ONLY=1 by --with-cli-only in configure
|
||||||
|
- chore: update locales
|
||||||
|
- chore: debug printf format in GitHub actions tests
|
||||||
|
|
||||||
|
0.79.6.patchlevel-5 12-01-2021 *UNOFFICIAL*
|
||||||
|
- fix: don't error on blank media in medium-info (#19), bug present upstream since 0.79.5
|
||||||
|
- fix: gui: fix the 'SetLabelText() failed' error caption on the medium-info window (#19), bug present upstream since 0.72.3
|
||||||
|
- fix: add CHANGELOG, TODO, CREDITS to dist for the Help menu
|
||||||
|
- chore: appimage: add missing gtk engines and adjust docdir for help menu
|
||||||
|
- chore: enhance packaging, update locales, changelog et al.
|
||||||
|
|
||||||
|
0.79.6.patchlevel-4 04-09-2020 *UNOFFICIAL*
|
||||||
|
- feat: allow adaptive reading again*
|
||||||
|
- feat: add --permissive-medium-type option
|
||||||
|
- fix: lift the limitation on the number of cmdline args
|
||||||
|
- fix: lift segfault when aborting adaptive read
|
||||||
|
- fix: ensure variables are initialized before dereferencing
|
||||||
|
- chore: re-enable adaptive read regtests
|
||||||
|
- chore: move *.c *.h to src/, and build in build/
|
||||||
|
- chore: build: finally really fix make parallelism
|
||||||
|
- chore: use gcc -pipe to speed up the build
|
||||||
|
- chore: rename CLI version to NOGUI in the version tag
|
||||||
|
- chore: add missing target dependency in Makefile
|
||||||
|
- chore: update readme
|
||||||
|
- chore: locales update
|
||||||
|
|
||||||
|
*:The original author disabled adaptive reading
|
||||||
|
specifically in 0.79.6 (see changelog below), as it
|
||||||
|
doesn't handle RS03 correctly yet. In this patchlevel
|
||||||
|
we enable it again for media without (detected) ECC data,
|
||||||
|
and for media protected with RS01 or RS02. If we detect RS03,
|
||||||
|
we tell the user the behaviour is unpredictable/undefined,
|
||||||
|
and recommend using linear reading instead.
|
||||||
|
|
||||||
|
0.79.6.patchlevel-3 01-09-2020 *UNOFFICIAL*
|
||||||
|
- fix: windows: flavor in build version was always 'UNKNOWN'
|
||||||
|
- fix: windows: the config & log files were not written properly
|
||||||
|
|
||||||
|
0.79.6.patchlevel-2 30-08-2020 *UNOFFICIAL*
|
||||||
|
- fix: Adjust BDXL_QL_SIZE and rollback BD_SL_SIZE to upstream version*
|
||||||
|
- feat: add --no-bdr-defect-management to produce bigger augmented images with RS03
|
||||||
|
- chore: remove 2 compiler warnings under Linux
|
||||||
|
- chore: automatically run regtests under Win32, Win64, Linux64 (regular and CLI-only) on pull requests
|
||||||
|
- chore: add a Linux CLI-only static make target
|
||||||
|
- chore: fix make parallelism
|
||||||
|
- chore: use tags to describe the build
|
||||||
|
|
||||||
|
*:BD_SL_SIZE was mistakenly modified in 0.79.6-pl1, we restore the
|
||||||
|
previous upstream value to avoid having several dvdisaster versions
|
||||||
|
in the field with different values set for it.
|
||||||
|
|
||||||
|
If you created an RS03 augmented image with 0.79.6-pl1, you'll still
|
||||||
|
be able to conduct a repair of the image, should it be damaged,
|
||||||
|
by using any 0.79.6 version (with or without patchlevel), using
|
||||||
|
the following additional command-line parameters:
|
||||||
|
dvdisaster -f --debug -n 12219392
|
||||||
|
On the patchlevel versions, this is equivalent to saying:
|
||||||
|
dvdisaster -f --no-bdr-defect-management
|
||||||
|
|
||||||
|
BDXL_QL_SIZE (introduced in pl1) was also adjusted in this version,
|
||||||
|
To repair a damaged BD-R quadruple layer image created by pl1:
|
||||||
|
dvdisaster -f --debug -n 62500864
|
||||||
|
On the patchlevel versions, this is equivalent to saying:
|
||||||
|
dvdisaster -f --no-bdr-defect-management
|
||||||
|
|
||||||
|
The values that were present in pl1 were corresponding to a BD-R
|
||||||
|
burnt without formatting it for defect management first, which enabled
|
||||||
|
more space for parity data. You can still do it if you want, with
|
||||||
|
--no-bdr-defect-management (see manpage), but to follow upstream,
|
||||||
|
the default number of sectors for all BD-R implies that defect
|
||||||
|
management is enabled.
|
||||||
|
|
||||||
0.79.6.patchlevel-1 20-08-2020 *UNOFFICIAL*
|
0.79.6.patchlevel-1 20-08-2020 *UNOFFICIAL*
|
||||||
- This is an UNOFFICIAL version, not from the original author,
|
- This is an UNOFFICIAL version, not from the original author,
|
||||||
based on the latest available pre-release, 0.79.6.
|
based on the latest available pre-release, 0.79.6.
|
||||||
@@ -14,7 +227,7 @@
|
|||||||
- Added support for BDXL-QL (quadruple layer, 128GB)
|
- Added support for BDXL-QL (quadruple layer, 128GB)
|
||||||
- Added support to compile a CLI-only version, without
|
- Added support to compile a CLI-only version, without
|
||||||
the GTK dependency (only glib2), compile with:
|
the GTK dependency (only glib2), compile with:
|
||||||
$ CLI_ONLY=1 ./configure && make clean all
|
$ CLI_ONLY=1 ./configure && make clean && make -j4
|
||||||
- Added support to compile a Windows version under MingW (tested
|
- Added support to compile a Windows version under MingW (tested
|
||||||
with MSYS2)
|
with MSYS2)
|
||||||
- All regression tests are passing on Linux 64, Win 32 and Win 64.
|
- All regression tests are passing on Linux 64, Win 32 and Win 64.
|
||||||
@@ -22,8 +235,6 @@
|
|||||||
amending the source files to make the CLI-only version possible.
|
amending the source files to make the CLI-only version possible.
|
||||||
This hopefully removes a few quirks without adding too many.
|
This hopefully removes a few quirks without adding too many.
|
||||||
|
|
||||||
THE ORIGINAL UPSTREAM CHANGELOG IS KEPT BELOW:
|
|
||||||
|
|
||||||
0.79.6 20-11-2017
|
0.79.6 20-11-2017
|
||||||
- The Verify/Test option will now output dvdisaster version
|
- The Verify/Test option will now output dvdisaster version
|
||||||
numbers always in x.yy.zz format, as the old scheme
|
numbers always in x.yy.zz format, as the old scheme
|
||||||
@@ -58,7 +269,7 @@ do not affect already created RS03 data.
|
|||||||
0.79.4 07-10-2012 (not released)
|
0.79.4 07-10-2012 (not released)
|
||||||
## 0.79.4 is a technical release in order to freeze
|
## 0.79.4 is a technical release in order to freeze
|
||||||
## and archive some parts of the source code.
|
## and archive some parts of the source code.
|
||||||
## Do not use for anything prodictive.
|
## Do not use for anything productive.
|
||||||
## The next useful release will be 0.79.5.
|
## The next useful release will be 0.79.5.
|
||||||
- optical drives would only be detected for /dev/pass[0-9]
|
- optical drives would only be detected for /dev/pass[0-9]
|
||||||
on FreeBSD. Fixed to work with arbitrary /dev/pass
|
on FreeBSD. Fixed to work with arbitrary /dev/pass
|
||||||
|
|||||||
14
CREDITS.de
@@ -10,6 +10,13 @@ Harald Bögeholz (hwb@heise.de)
|
|||||||
Anregungen und Ideen zurück; er hatte zuvor schon eine ähnliche
|
Anregungen und Ideen zurück; er hatte zuvor schon eine ähnliche
|
||||||
Strategie entwickelt und in Ausgabe 16/2005 der c't veröffentlicht.
|
Strategie entwickelt und in Ausgabe 16/2005 der c't veröffentlicht.
|
||||||
|
|
||||||
|
Jesus Cea <jcea@jcea.es>
|
||||||
|
hat das Projekt am Leben erhalten und ermöglicht momentan das
|
||||||
|
Datenhosting.
|
||||||
|
|
||||||
|
Paul Dicker (@pitdicker on GitHub)
|
||||||
|
migrierte die Anwendung von GTK2 nach GTK3.
|
||||||
|
|
||||||
Julian Einwag (julian@einwag.de)
|
Julian Einwag (julian@einwag.de)
|
||||||
erstellt und pflegt die Mac OS X / Darwin - spezifischen Anpassungen.
|
erstellt und pflegt die Mac OS X / Darwin - spezifischen Anpassungen.
|
||||||
|
|
||||||
@@ -30,6 +37,11 @@ Phil Karn
|
|||||||
Originalversion von Phils Bibliothek herunterladen, wenn Sie
|
Originalversion von Phils Bibliothek herunterladen, wenn Sie
|
||||||
Reed-Solomon-Kode in Ihren eigenen Programmen verwenden möchten.
|
Reed-Solomon-Kode in Ihren eigenen Programmen verwenden möchten.
|
||||||
|
|
||||||
|
Stéphane Lesimple <stephane@lesimple.fr>
|
||||||
|
hat das Projekt in einem eigenen GIT-Repository am Leben erhalten
|
||||||
|
sowie Patches und Erweiterungen beigesteuert. Er stellt weiterhin
|
||||||
|
eine Windows-Version bereit.
|
||||||
|
|
||||||
Daniel Nylander (info@danielnylander.se)
|
Daniel Nylander (info@danielnylander.se)
|
||||||
erstellt und pflegt die schwedische Übersetzung.
|
erstellt und pflegt die schwedische Übersetzung.
|
||||||
|
|
||||||
@@ -47,4 +59,4 @@ Sergey Svishchev (svs@ropnet.ru)
|
|||||||
|
|
||||||
Viele andere Personen haben weitere Anregungen und Fehlerberichte
|
Viele andere Personen haben weitere Anregungen und Fehlerberichte
|
||||||
geliefert; schauen Sie auch in den Änderungsbericht für weitere
|
geliefert; schauen Sie auch in den Änderungsbericht für weitere
|
||||||
Einzelheiten darüber.
|
Einzelheiten darüber.
|
||||||
|
|||||||
10
CREDITS.en
@@ -10,6 +10,12 @@ Harald Bögeholz (hwb@heise.de)
|
|||||||
suggestions and ideas; he had implemented a similar strategy
|
suggestions and ideas; he had implemented a similar strategy
|
||||||
before and published in issue 16/2005 of the german periodical "c't".
|
before and published in issue 16/2005 of the german periodical "c't".
|
||||||
|
|
||||||
|
Jesus Cea <jcea@jcea.es>
|
||||||
|
for keeping the project alive and providing hosting for the project
|
||||||
|
|
||||||
|
Paul Dicker (@pitdicker on GitHub)
|
||||||
|
for porting the codebase from GTK2 to GTK3.
|
||||||
|
|
||||||
Julian Einwag (julian@einwag.de).
|
Julian Einwag (julian@einwag.de).
|
||||||
provides and maintains the Mac OS X / Darwin port.
|
provides and maintains the Mac OS X / Darwin port.
|
||||||
|
|
||||||
@@ -29,6 +35,10 @@ Phil Karn
|
|||||||
special needs, you should get the original thing if you're
|
special needs, you should get the original thing if you're
|
||||||
interested in incorporating RS codes into your application.
|
interested in incorporating RS codes into your application.
|
||||||
|
|
||||||
|
Stéphane Lesimple <stephane@lesimple.fr>
|
||||||
|
for keeping the project alive in his own GIT repository, and
|
||||||
|
for supplying patches, enhancements and the Windows version.
|
||||||
|
|
||||||
Daniel Nylander (info@danielnylander.se)
|
Daniel Nylander (info@danielnylander.se)
|
||||||
provides and maintains the Swedish translation.
|
provides and maintains the Swedish translation.
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,24 @@
|
|||||||
|
# dvdisaster: Additional error correction for optical media.
|
||||||
|
# Copyright (C) 2004-2017 Carsten Gnoerlich.
|
||||||
|
# Copyright (C) 2019-2021 The dvdisaster development team.
|
||||||
|
#
|
||||||
|
# Email: support@dvdisaster.org
|
||||||
|
#
|
||||||
|
# This file is part of dvdisaster.
|
||||||
|
#
|
||||||
|
# dvdisaster is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# dvdisaster is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Begin of dvdisaster makefile template
|
# Begin of dvdisaster makefile template
|
||||||
######################################################################
|
######################################################################
|
||||||
@@ -15,6 +36,10 @@ MAN_LOCALES = de
|
|||||||
# Where to put tar archives (arch, srcdist)
|
# Where to put tar archives (arch, srcdist)
|
||||||
TAR_PREFIX=/dev/shm
|
TAR_PREFIX=/dev/shm
|
||||||
|
|
||||||
|
# current project homepage
|
||||||
|
|
||||||
|
HOMEPAGE="https://dvdisaster.jcea.es/"
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Take over variables from configure
|
# Take over variables from configure
|
||||||
######################################################################
|
######################################################################
|
||||||
@@ -39,9 +64,13 @@ INTL_LIBS = $(CFG_INTL_LIBS)
|
|||||||
CAM_LFLAGS = $(CFG_CAM_LFLAGS)
|
CAM_LFLAGS = $(CFG_CAM_LFLAGS)
|
||||||
CAM_LIBS = $(CFG_CAM_LIBS)
|
CAM_LIBS = $(CFG_CAM_LIBS)
|
||||||
|
|
||||||
GTK_CFLAGS = $(CFG_GTK2_CFLAGS) $(CFG_GLIB2_CFLAGS)
|
GLIB_CFLAGS = $(CFG_GLIB2_CFLAGS)
|
||||||
GTK_LIBS = $(CFG_GTK2_LIBS) $(CFG_GLIB2_LIBS)
|
GLIB_LIBS = $(CFG_GLIB2_LIBS)
|
||||||
GTK_BINDIR = $(CFG_GTK2_BINDIR) $(CFG_GLIB2_BINDIR)
|
GLIB_BINDIR = $(CFG_GLIB2_BINDIR)
|
||||||
|
|
||||||
|
GTK_CFLAGS = $(CFG_GTK3_CFLAGS) $(CFG_GLIB2_CFLAGS)
|
||||||
|
GTK_LIBS = $(CFG_GTK3_LIBS) $(CFG_GLIB2_LIBS)
|
||||||
|
GTK_BINDIR = $(CFG_GTK3_BINDIR) $(CFG_GLIB2_BINDIR)
|
||||||
|
|
||||||
EFENCE_LFLAGS = $(CFG_EFENCE_LFLAGS)
|
EFENCE_LFLAGS = $(CFG_EFENCE_LFLAGS)
|
||||||
EFENCE_LIBS = $(CFG_EFENCE_LIBS)
|
EFENCE_LIBS = $(CFG_EFENCE_LIBS)
|
||||||
@@ -50,45 +79,60 @@ SYS_OPTIONS = $(CFG_SYS_OPTIONS)
|
|||||||
SYS_NAME = $(CFG_SYS_NAME)
|
SYS_NAME = $(CFG_SYS_NAME)
|
||||||
HAVE_OPTIONS = $(CFG_HAVE_OPTIONS)
|
HAVE_OPTIONS = $(CFG_HAVE_OPTIONS)
|
||||||
WITH_OPTIONS = $(CFG_WITH_OPTIONS)
|
WITH_OPTIONS = $(CFG_WITH_OPTIONS)
|
||||||
OTHER_OPTIONS = $(CFG_OTHER_OPTIONS) -DVERSION=\"$(VERSION)\"
|
OTHER_OPTIONS = $(CFG_OTHER_OPTIONS) -DVERSION="\"$(VERSION)\""
|
||||||
SSE2_OPTIONS = $(CFG_SSE2_OPTIONS)
|
SSE2_OPTIONS = $(CFG_SSE2_OPTIONS)
|
||||||
ALTIVEC_OPTIONS = $(CFG_ALTIVEC_OPTIONS)
|
ALTIVEC_OPTIONS = $(CFG_ALTIVEC_OPTIONS)
|
||||||
|
|
||||||
LOCATIONS = -DSRCDIR=\"$(SRCDIR)\" -DBINDIR=\"$(BINDIR)\" -DDOCDIR=\"$(DOCSUBDIR)\" -DLOCALEDIR=\"$(LOCALEDIR)\"
|
LOCATIONS = -DSRCDIR="\"$(SRCDIR)\"" -DBINDIR="\"$(BINDIR)\"" -DDOCDIR="\"$(DOCSUBDIR)\"" -DLOCALEDIR="\"$(LOCALEDIR)\""
|
||||||
COPTS = $(CFLAGS) $(LOCATIONS) $(SYS_OPTIONS) $(SYS_NAME) $(HAVE_OPTIONS) $(WITH_OPTIONS) $(OTHER_OPTIONS) $(INTL_INCL) $(CAM_INCL) $(GTK_CFLAGS) $(MUDFLAP_CFLAGS)
|
COPTS = $(CFLAGS) $(LOCATIONS) $(SYS_OPTIONS) $(SYS_NAME) $(HAVE_OPTIONS) $(WITH_OPTIONS) $(OTHER_OPTIONS) $(INTL_INCL) $(CAM_INCL) $(GTK_CFLAGS) $(GLIB_CFLAGS)
|
||||||
LOPTS = $(LDFLAGS) $(INTL_LFLAGS) $(CAM_LFLAGS) $(EFENCE_LFLAGS) $(MUDFLAP_LFLAGS)
|
LOPTS = $(LDFLAGS) $(INTL_LFLAGS) $(CAM_LFLAGS) $(EFENCE_LFLAGS)
|
||||||
|
|
||||||
LIBS = $(INTL_LIBS) $(CAM_LIBS) $(GTK_LIBS) $(EFENCE_LIBS) $(MUDFLAP_LIBS) -lm
|
LIBS = $(INTL_LIBS) $(CAM_LIBS) $(GTK_LIBS) $(GLIB_LIBS) $(EFENCE_LIBS) -lm
|
||||||
|
|
||||||
CFILES = $(CFG_CFILES)
|
CFILES = $(CFG_CFILES)
|
||||||
OFILES = $(CFG_OFILES)
|
OFILES = $(CFG_OFILES)
|
||||||
|
|
||||||
|
# special case for DESTDIR, if BUILDROOT is undef and DESTDIR is,
|
||||||
|
# set BUILDROOT to DESTDIR
|
||||||
|
ifeq "" "$(BUILDROOT)"
|
||||||
|
BUILDROOT = $(DESTDIR)
|
||||||
|
endif
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Compilation related
|
# Compilation related
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
.PHONY : all help show locale time-stamp
|
.PHONY : all help show locale
|
||||||
|
|
||||||
${BUILDTMP}/%.o : %.c
|
all: dvdisaster
|
||||||
|
|
||||||
|
src/build.h: configure
|
||||||
|
@echo "Updating:" src/build.h
|
||||||
|
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/src/build.h
|
||||||
|
|
||||||
|
${BUILDTMP}/%.o : src/%.c
|
||||||
@echo "Compiling:" $?
|
@echo "Compiling:" $?
|
||||||
@$(CC) $(COPTS) -c $? -o $@
|
@$(CC) $(COPTS) -c $? -o $@
|
||||||
|
|
||||||
all: time-stamp dvdisaster
|
${BUILDTMP}/inlined-icons.c.o : ${BUILDTMP}/inlined-icons.c
|
||||||
|
@echo "Compiling:" $?
|
||||||
|
@$(CC) $(COPTS) -c $? -o $@
|
||||||
|
|
||||||
${BUILDTMP}/build.o : build.c build.h
|
${BUILDTMP}/build.o : src/build.c src/build.h
|
||||||
@echo "Compiling:" build.o
|
@echo "Compiling:" src/build.o
|
||||||
@$(CC) $(COPTS) -c build.c -o $@
|
@$(CC) $(COPTS) -c src/build.c -o $@
|
||||||
|
|
||||||
|
${BUILDTMP}/closure.o : src/closure.c $(ICONS)
|
||||||
|
@echo "Compiling:" src/closure.c
|
||||||
|
@$(CC) $(COPTS) -c src/closure.c -o $@
|
||||||
|
|
||||||
# Building the dvdisaster binary
|
# Building the dvdisaster binary
|
||||||
|
|
||||||
time-stamp:
|
dvdisaster: $(OFILES)
|
||||||
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
|
|
||||||
|
|
||||||
dvdisaster: $(ICONS) $(OFILES)
|
|
||||||
@echo "Linking : dvdisaster"
|
@echo "Linking : dvdisaster"
|
||||||
@if test $(CFG_SYS_OPTIONS) == -DSYS_MINGW; \
|
@if test $(CFG_SYS_OPTIONS) == -DSYS_MINGW; \
|
||||||
then windres -v winres.rc -O coff -o winres.o >/dev/null ; \
|
then windres -v src/winres.rc -O coff -o ${BUILDTMP}/winres.o >/dev/null ; \
|
||||||
$(CC) $(LOPTS) $(OFILES) $(LIBS) winres.o -o dvdisaster ; \
|
$(CC) $(LOPTS) $(OFILES) $(LIBS) ${BUILDTMP}/winres.o -o dvdisaster ; \
|
||||||
else $(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster ; \
|
else $(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster ; \
|
||||||
fi
|
fi
|
||||||
@if test -e locale/de/LC_MESSAGES/dvdisaster.mo \
|
@if test -e locale/de/LC_MESSAGES/dvdisaster.mo \
|
||||||
@@ -97,47 +141,17 @@ dvdisaster: $(ICONS) $(OFILES)
|
|||||||
else $(MAKE) --no-print-directory -C locale; \
|
else $(MAKE) --no-print-directory -C locale; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
inlined-icons.h: icons/read.png icons/create.png icons/scan.png icons/fix.png icons/verify.png
|
$(BUILDTMP)/inlined-icons.c: icons/icons.gresource.xml icons/cd.svg icons/close.svg icons/create.svg icons/fix-symbolic.svg icons/log.svg icons/manual.svg icons/open-ecc.svg icons/open-img.svg icons/preferences.svg icons/quit.svg icons/read-symbolic.svg icons/scan-symbolic.svg icons/stop.svg icons/strip.svg icons/verify-symbolic.svg
|
||||||
@gdk-pixbuf-csource --raw --name=dvdisaster_read icons/read.png >inlined-icons.h
|
@echo "Generating:" $(ICONS)
|
||||||
@gdk-pixbuf-csource --raw --name=dvdisaster_create icons/create.png >>inlined-icons.h
|
@glib-compile-resources --generate-source --target=$(ICONS) --sourcedir=icons icons/icons.gresource.xml
|
||||||
@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
|
|
||||||
|
|
||||||
$(BUILDTMP)/help-dialogs.o: help-dialogs.c simple-md5sum
|
$(BUILDTMP)/rs-encoder-sse2.o: src/rs-encoder-sse2.c
|
||||||
@if test -e fingerprints.md5; \
|
@echo "Compiling:" src/rs-encoder-sse2.c
|
||||||
then if test -e help-dialogs.h; then rm help-dialogs.h; fi; \
|
@$(CC) $(SSE2_OPTIONS) $(COPTS) -c src/rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
|
||||||
mv inlined-icons.h inlined-icons.saved; \
|
|
||||||
mv build.h build.saved; \
|
|
||||||
./simple-md5sum -b *.h *.c | 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; \
|
|
||||||
fi; \
|
|
||||||
rm tmp.md5 tmp2.md5; \
|
|
||||||
else echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \
|
|
||||||
fi
|
|
||||||
@echo "Compiling:" help-dialogs.c
|
|
||||||
@$(CC) $(COPTS) -c help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
|
|
||||||
|
|
||||||
$(BUILDTMP)/rs-encoder-sse2.o: rs-encoder-sse2.c
|
$(BUILDTMP)/rs-encoder-altivec.o: src/rs-encoder-altivec.c
|
||||||
@echo "Compiling:" rs-encoder-sse2.c
|
@echo "Compiling:" src/rs-encoder-altivec.c
|
||||||
@$(CC) $(SSE2_OPTIONS) $(COPTS) -c rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
|
@$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c src/rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.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
|
|
||||||
|
|
||||||
locale:
|
locale:
|
||||||
@$(MAKE) --no-print-directory -C locale
|
@$(MAKE) --no-print-directory -C locale
|
||||||
@@ -145,11 +159,10 @@ locale:
|
|||||||
untranslated:
|
untranslated:
|
||||||
@$(MAKE) --no-print-directory -C locale check-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
|
|
||||||
|
|
||||||
version.tex:
|
version.tex:
|
||||||
|
@test -d $(SRCDIR)/documentation/config || mkdir $(SRCDIR)/documentation/config
|
||||||
@echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
|
@echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
|
||||||
|
@echo "\\newcommand{\\homepage}{\\url{$(HOMEPAGE)}}" >>$(SRCDIR)/documentation/config/version.tex
|
||||||
|
|
||||||
manual: version.tex
|
manual: version.tex
|
||||||
@echo "Producing user manual... "
|
@echo "Producing user manual... "
|
||||||
@@ -159,6 +172,21 @@ manualclean:
|
|||||||
@echo "Removing temporary user manual files... "
|
@echo "Removing temporary user manual files... "
|
||||||
@$(MAKE) --no-print-directory -C documentation/user-manual clean
|
@$(MAKE) --no-print-directory -C documentation/user-manual clean
|
||||||
|
|
||||||
|
manualarchclean:
|
||||||
|
@echo "Removing generated user manual files... "
|
||||||
|
@$(MAKE) --no-print-directory -C documentation/user-manual archclean
|
||||||
|
|
||||||
|
codecs:
|
||||||
|
@echo "Producing codecs specification documentation... "
|
||||||
|
@$(MAKE) --no-print-directory -C documentation/codec-specs
|
||||||
|
|
||||||
|
codecsclean:
|
||||||
|
@echo "Removing temporary codecs specification documentation files... "
|
||||||
|
@$(MAKE) --no-print-directory -C documentation/codec-specs clean
|
||||||
|
|
||||||
|
codecsarchclean:
|
||||||
|
@echo "Removing generated codecs specification documentation files... "
|
||||||
|
@$(MAKE) --no-print-directory -C documentation/codec-specs archclean
|
||||||
|
|
||||||
# Some usage info
|
# Some usage info
|
||||||
|
|
||||||
@@ -171,6 +199,7 @@ help:
|
|||||||
@echo
|
@echo
|
||||||
@echo "Documentation related:"
|
@echo "Documentation related:"
|
||||||
@echo "manual - create the user manual (requires LaTeX)"
|
@echo "manual - create the user manual (requires LaTeX)"
|
||||||
|
@echo "codecs - create the codecs spec documentation (requires LaTeX)"
|
||||||
@echo
|
@echo
|
||||||
@echo "Locale related:"
|
@echo "Locale related:"
|
||||||
@echo "locale - update locale files"
|
@echo "locale - update locale files"
|
||||||
@@ -233,56 +262,67 @@ show:
|
|||||||
|
|
||||||
install: dvdisaster manual
|
install: dvdisaster manual
|
||||||
@echo "Installing package..."
|
@echo "Installing package..."
|
||||||
install -d $(BUILDROOT)$(BINDIR)
|
install -d "$(BUILDROOT)$(BINDIR)"
|
||||||
install dvdisaster $(BUILDROOT)$(BINDIR)
|
install dvdisaster "$(BUILDROOT)$(BINDIR)"
|
||||||
install -d $(BUILDROOT)$(DOCSUBDIR)
|
install -d "$(BUILDROOT)$(DOCSUBDIR)"
|
||||||
install -m 644 CHANGELOG $(BUILDROOT)$(DOCSUBDIR)
|
install -m 644 CHANGELOG "$(BUILDROOT)$(DOCSUBDIR)"
|
||||||
install -m 644 COPYING $(BUILDROOT)$(DOCSUBDIR)
|
install -m 644 COPYING "$(BUILDROOT)$(DOCSUBDIR)"
|
||||||
install -m 644 CREDITS* $(BUILDROOT)$(DOCSUBDIR)
|
install -m 644 CREDITS* "$(BUILDROOT)$(DOCSUBDIR)"
|
||||||
install -m 644 README.MODIFYING $(BUILDROOT)$(DOCSUBDIR)
|
install -m 644 TODO "$(BUILDROOT)$(DOCSUBDIR)"
|
||||||
install -m 644 TODO $(BUILDROOT)$(DOCSUBDIR)
|
install -d "$(BUILDROOT)$(DOCSUBDIR)"
|
||||||
install -d $(BUILDROOT)$(DOCSUBDIR)
|
(cd documentation/user-manual; install -m 644 manual.pdf "$(BUILDROOT)$(DOCSUBDIR)")
|
||||||
(cd documentation/user-manual; install -m 644 manual.pdf $(BUILDROOT)$(DOCSUBDIR))
|
install -d "$(BUILDROOT)$(MANDIR)/man1"
|
||||||
install -d $(BUILDROOT)$(MANDIR)/man1
|
install -d "$(BUILDROOT)$(MANDIR)/de/man1"
|
||||||
install -d $(BUILDROOT)$(MANDIR)/de/man1
|
|
||||||
cd documentation; \
|
cd documentation; \
|
||||||
ESCAPED_DOCSUBDIR=`echo $(DOCSUBDIR) | sed -e 's/\//\\\\\//g'`; \
|
ESCAPED_DOCSUBDIR=`echo $(DOCSUBDIR) | sed -e 's/\//\\\\\//g'`; \
|
||||||
sed "s/%docdir%/$$ESCAPED_DOCSUBDIR/" <dvdisaster.en.1 >dvdisaster.updated; \
|
sed "s/%docdir%/$$ESCAPED_DOCSUBDIR/" <dvdisaster.en.1 >dvdisaster.updated; \
|
||||||
install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/man1/dvdisaster.1; \
|
install -m 644 dvdisaster.updated "$(BUILDROOT)$(MANDIR)/man1/dvdisaster.1"; \
|
||||||
sed "s/%docdir%/$$ESCAPED_DOCSUBDIR/" <dvdisaster.de.1 >dvdisaster.updated; \
|
sed "s/%docdir%/$$ESCAPED_DOCSUBDIR/" <dvdisaster.de.1 >dvdisaster.updated; \
|
||||||
install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/de/man1/dvdisaster.1; \
|
install -m 644 dvdisaster.updated "$(BUILDROOT)$(MANDIR)/de/man1/dvdisaster.1"; \
|
||||||
rm dvdisaster.updated
|
rm dvdisaster.updated
|
||||||
if echo $(WITH_OPTIONS) | grep "NLS_YES" >/dev/null; then \
|
if echo $(WITH_OPTIONS) | grep "NLS_YES" >/dev/null; then \
|
||||||
cd locale; \
|
cd locale; \
|
||||||
for i in ?? ??_??; do\
|
for i in ?? ??_??; do\
|
||||||
install -d $(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES; \
|
install -d "$(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES"; \
|
||||||
install -m 644 $$i/LC_MESSAGES/dvdisaster.mo $(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES; \
|
install -m 644 $$i/LC_MESSAGES/dvdisaster.mo "$(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES"; \
|
||||||
done \
|
done \
|
||||||
fi
|
fi
|
||||||
@echo "# dvdisaster uninstaller script" > $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
@echo "# dvdisaster uninstaller script" > "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
@echo "# Usage: sh dvdisaster-uninstall.sh" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
@echo "# Usage: sh dvdisaster-uninstall.sh" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
@echo >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
@echo >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
@echo "rm -f $(BINDIR)/dvdisaster $(BINDIR)/dvdisaster-uninstall.sh" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
@echo "rm -f $(BINDIR)/dvdisaster $(BINDIR)/dvdisaster-uninstall.sh" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
@echo "rm -rf $(DOCSUBDIR)" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
@echo "rm -f \"$(DOCSUBDIR)/CHANGELOG\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
|
@echo "rm -f \"$(DOCSUBDIR)/COPYING\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
|
@echo "rm -f \"$(DOCSUBDIR)/CREDITS.de\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
|
@echo "rm -f \"$(DOCSUBDIR)/CREDITS.en\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
|
@echo "rm -f \"$(DOCSUBDIR)/manual.pdf\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
|
@echo "rm -f \"$(DOCSUBDIR)/TODO\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
|
@echo "rmdir \"$(DOCSUBDIR)\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
@for i in $(PO_LOCALES); do \
|
@for i in $(PO_LOCALES); do \
|
||||||
echo "rm $(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
|
echo "rm \"$(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh" ; \
|
||||||
done
|
done
|
||||||
@echo "rm -f $(MANDIR)/man1/dvdisaster.1" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
@echo "rm -f \"$(MANDIR)/man1/dvdisaster.1\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
@for i in $(MAN_LOCALES); do \
|
@for i in $(MAN_LOCALES); do \
|
||||||
echo "rm $(MANDIR)/$$i/man1/dvdisaster.1" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
|
echo "rm \"$(MANDIR)/$$i/man1/dvdisaster.1\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh" ; \
|
||||||
done
|
done
|
||||||
@echo "echo \"dvdisaster has been uninstalled.\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
@echo "echo \"dvdisaster has been uninstalled.\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
@echo "Uninstalling package..."
|
@echo "Uninstalling package..."
|
||||||
rm -f $(BINDIR)/dvdisaster $(BINDIR)/dvdisaster-uninstall.sh
|
rm -f "$(BINDIR)/dvdisaster" "$(BINDIR)/dvdisaster-uninstall.sh"
|
||||||
rm -rf $(DOCSUBDIR)
|
rm -f "$(DOCSUBDIR)/CHANGELOG"
|
||||||
rm -f $(MANDIR)/man1/dvdisaster.1
|
rm -f "$(DOCSUBDIR)/COPYING"
|
||||||
|
rm -f "$(DOCSUBDIR)/CREDITS.de"
|
||||||
|
rm -f "$(DOCSUBDIR)/CREDITS.en"
|
||||||
|
rm -f "$(DOCSUBDIR)/manual.pdf"
|
||||||
|
rm -f "$(DOCSUBDIR)/TODO"
|
||||||
|
rmdir "$(DOCSUBDIR)"
|
||||||
|
rm -f "$(MANDIR)/man1/dvdisaster.1"
|
||||||
for i in $(PO_LOCALES); do \
|
for i in $(PO_LOCALES); do \
|
||||||
rm $(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo; \
|
rm "$(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo"; \
|
||||||
done
|
done
|
||||||
for i in $(MAN_LOCALES); do \
|
for i in $(MAN_LOCALES); do \
|
||||||
rm $(MANDIR)/$$i/man1/dvdisaster.1; \
|
rm "$(MANDIR)/$$i/man1/dvdisaster.1"; \
|
||||||
done
|
done
|
||||||
|
|
||||||
archclean: distclean
|
archclean: distclean
|
||||||
@@ -292,56 +332,32 @@ archclean: distclean
|
|||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
@echo "Removing configuration files"
|
@echo "Removing configuration files"
|
||||||
@rm -f configure.log Makefile.config GNUmakefile locale/Makefile
|
@rm -f configure.log Makefile.config src/build.h GNUmakefile locale/Makefile
|
||||||
@for i in locale/?? locale/??_??; do rm -rf $$i; done
|
@for i in locale/?? locale/??_??; do rm -rf $$i; done
|
||||||
|
@rm -f dvdisaster-debug
|
||||||
# There might be a not executable simple-md5sum from a compiler run
|
|
||||||
# under a different architecture, so make sure we have a working binary
|
|
||||||
# in the clean target.
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo "Removing rebuildable files"
|
@echo "Removing rebuildable files"
|
||||||
@rm -rf *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
|
@rm -f *.o "$(BUILDTMP)"/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
|
||||||
@rm -f inlined-icons.h help-dialogs.h
|
@rm -f "$(BUILDTMP)"/inlined-icons.c src/help-dialogs.h
|
||||||
@find . -name \*\~ -print | xargs rm -f;
|
@find . -name \*\~ -print | xargs rm -f;
|
||||||
@find . -name \*.mo -print | xargs rm -f;
|
@find . -name \*.mo -print | xargs rm -f;
|
||||||
@find . -name \#\*\# -print | xargs rm -f;
|
@find . -name \#\*\# -print | xargs rm -f;
|
||||||
@rm -f documentation/config/version.tex
|
@rm -f documentation/config/version.tex
|
||||||
@if test -e $(PKGNAME); then rm -rf $(PKGNAME); fi
|
|
||||||
@if test -e ~/.dvdisaster-original-author; then \
|
|
||||||
mv build.h build.saved ;\
|
|
||||||
if ! test -x simple-md5sum || ! ./simple-md5sum >/dev/null 2>&1; then \
|
|
||||||
rm -f simple-md5sum; \
|
|
||||||
$(MAKE) --no-print-directory simple-md5sum; \
|
|
||||||
echo "[simple-md5sum (re-)built]"; \
|
|
||||||
fi; \
|
|
||||||
./simple-md5sum -b *.h *.c >fingerprints.md5 ;\
|
|
||||||
mv build.saved build.h; \
|
|
||||||
fi
|
|
||||||
@rm -f simple-md5sum
|
|
||||||
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs clean;
|
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs clean;
|
||||||
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
|
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
|
||||||
@$(MAKE) --no-print-directory -C $(SRCDIR)/locale clean;
|
@$(MAKE) --no-print-directory -C $(SRCDIR)/locale clean;
|
||||||
|
|
||||||
BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3`
|
BUILD=`grep BUILD $(SRCDIR)/src/build.h | cut -d ' ' -f 3`
|
||||||
arch: archclean time-stamp
|
arch: archclean build.h
|
||||||
@cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
|
@cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
|
||||||
|
|
||||||
INSTALL: documentation/install.template
|
INSTALL: documentation/install.template
|
||||||
@sed "s/@@PKGNAME/$(PKGNAME)/" <documentation/install.template >INSTALL
|
@sed "s/@@PKGNAME/$(PKGNAME)/" <documentation/install.template >INSTALL
|
||||||
|
|
||||||
srcdist: INSTALL distclean manual manualclean
|
srcdist: INSTALL distclean manual manualclean codecsclean
|
||||||
@cd .. ; tar -c -j -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
|
@cd .. ; tar -c -j --owner=dvdisaster --group=devel -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
|
||||||
@cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2
|
@cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2
|
||||||
|
|
||||||
MINGWROOT = $(shell dirname $(CC))/..
|
static: dvdisaster
|
||||||
windist:
|
$(CC) $(LOPTS) $(OFILES) $(LIBS) -pthread -static -o dvdisaster-static
|
||||||
rm -rf dist
|
|
||||||
mkdir -p dist/lib dist/locale dist/share/themes
|
|
||||||
for i in libatk-1.0-*.dll libbrotlicommon.dll libbrotlidec.dll libbz2-*.dll libcairo-*.dll libdatrie-*.dll libexpat-*.dll libffi-*.dll libfontconfig-*.dll libfreetype-*.dll libfribidi-*.dll libgcc_s_*.dll libgdk_pixbuf-2.0-*.dll libgdk-win32-2.0-*.dll libgio-2.0-*.dll libglib-2.0-*.dll libgmodule-2.0-*.dll libgobject-2.0-*.dll libgraphite2.dll libgtk-win32-2.0-*.dll libharfbuzz-*.dll libiconv-*.dll libintl-*.dll libpango-1.0-*.dll libpangocairo-1.0-*.dll libpangoft2-1.0-*.dll libpangowin32-1.0-*.dll libpcre-*.dll libpixman-1-*.dll libpng16-*.dll libssp-*.dll libstdc++-*.dll libthai-*.dll libwinpthread-*.dll zlib1.dll; \
|
|
||||||
do cp -v $(MINGWROOT)/bin/$$i dist/ ; done
|
|
||||||
cp -v dvdisaster.exe dist/
|
|
||||||
cp -vr locale/*/ dist/locale/
|
|
||||||
cp -vr $(MINGWROOT)/share/themes/MS-Windows dist/share/themes/
|
|
||||||
cp -vr $(MINGWROOT)/lib/gtk-2.0 dist/lib/
|
|
||||||
find dist -type f -name "*.a" -delete
|
|
||||||
|
|||||||
26
INSTALL
@@ -1,3 +1,24 @@
|
|||||||
|
# dvdisaster: Additional error correction for optical media.
|
||||||
|
# Copyright (C) 2004-2018 Carsten Gnoerlich.
|
||||||
|
# Copyright (C) 2019-2021 The dvdisaster development team.
|
||||||
|
#
|
||||||
|
# Email: support@dvdisaster.org
|
||||||
|
#
|
||||||
|
# This file is part of dvdisaster.
|
||||||
|
#
|
||||||
|
# dvdisaster is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# dvdisaster is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Installation of the dvdisaster source code distribution
|
Installation of the dvdisaster source code distribution
|
||||||
=======================================================
|
=======================================================
|
||||||
[don't edit - generated from documentation/install.template]
|
[don't edit - generated from documentation/install.template]
|
||||||
@@ -127,6 +148,11 @@ Call the configuration script in the usual way:
|
|||||||
|
|
||||||
user@host> ./configure
|
user@host> ./configure
|
||||||
|
|
||||||
|
If you want to build a CLI-only version, which doesn't depend
|
||||||
|
on the gtk2 libraries, you can run instead:
|
||||||
|
|
||||||
|
user@host> ./configure --with-cli-only
|
||||||
|
|
||||||
The script will possibly print some errors about missing libraries.
|
The script will possibly print some errors about missing libraries.
|
||||||
Type "configure --help" to learn about pointing configure
|
Type "configure --help" to learn about pointing configure
|
||||||
to the correct path of already installed libraries.
|
to the correct path of already installed libraries.
|
||||||
|
|||||||
5
Makefile
@@ -5,8 +5,9 @@
|
|||||||
all:
|
all:
|
||||||
@echo
|
@echo
|
||||||
@echo "Please run \`./configure' first."
|
@echo "Please run \`./configure' first."
|
||||||
@echo "To build a CLI-only version,"
|
@echo
|
||||||
@echo "run \`CLI_ONLY=1 ./configure' instead."
|
@echo "To build a CLI-only version, run `./configure --with-cli-only'."
|
||||||
|
@echo
|
||||||
@echo "Note that dvdisaster requires GNU make to build."
|
@echo "Note that dvdisaster requires GNU make to build."
|
||||||
@echo "Under non-Linux systems, it might be known as \`gmake'."
|
@echo "Under non-Linux systems, it might be known as \`gmake'."
|
||||||
@echo
|
@echo
|
||||||
|
|||||||
27
README
@@ -1,3 +1,24 @@
|
|||||||
|
# dvdisaster: Additional error correction for optical media.
|
||||||
|
# Copyright (C) 2004-2017 Carsten Gnoerlich.
|
||||||
|
# Copyright (C) 2019-2020 The dvdisaster development team.
|
||||||
|
#
|
||||||
|
# Email: support@dvdisaster.org
|
||||||
|
#
|
||||||
|
# This file is part of dvdisaster.
|
||||||
|
#
|
||||||
|
# dvdisaster is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# dvdisaster is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
This directory tree contains dvdisaster,
|
This directory tree contains dvdisaster,
|
||||||
a tool providing additional ECC protection for optical media.
|
a tool providing additional ECC protection for optical media.
|
||||||
|
|
||||||
@@ -11,12 +32,6 @@ Roadmap of contained files
|
|||||||
INSTALL
|
INSTALL
|
||||||
See the file INSTALL on bringing up dvdisaster.
|
See the file INSTALL on bringing up dvdisaster.
|
||||||
|
|
||||||
README.CVS
|
|
||||||
If you got this archive from CVS, make sure to read README.CVS also.
|
|
||||||
|
|
||||||
README.MODIFYING
|
|
||||||
Please read these notes carefully if you plan to modify dvdisaster.
|
|
||||||
|
|
||||||
COPYING
|
COPYING
|
||||||
This software is distributed under the GNU General Public License,
|
This software is distributed under the GNU General Public License,
|
||||||
which is contained in the file COPYING.
|
which is contained in the file COPYING.
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
Please read these notes carefully if you plan to modify dvdisaster.
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
|
|
||||||
When publishing a modified version of dvdisaster you are kindly
|
|
||||||
asked not to misrepresent your work as the original.
|
|
||||||
|
|
||||||
The original authors have undertaken great efforts for putting the
|
|
||||||
project into shape and earning their reputation. So if you hack and
|
|
||||||
publish your own version of dvdisaster, please RESPECT the original
|
|
||||||
authors vision of what the project should be like.
|
|
||||||
|
|
||||||
Document your changes as explained below so that users can tell
|
|
||||||
the modified version from the original.
|
|
||||||
|
|
||||||
|
|
||||||
How to document your changes.
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Document the changes you made in the source code, NOT in a
|
|
||||||
separate file which might get unbundled from the changed source.
|
|
||||||
|
|
||||||
New files start with your copyright notice; modified files
|
|
||||||
get an additional entry under the original copyright notice.
|
|
||||||
See the file md5.c for an example.
|
|
||||||
|
|
||||||
But this is not enough; most people will not read the source
|
|
||||||
code as they are using binary distributions. Give them a way
|
|
||||||
to find out about your modifications in the "About" dialog.
|
|
||||||
|
|
||||||
The build process will prepare a suitable message template
|
|
||||||
for you if it finds that you have modified the sources.
|
|
||||||
Feel free to further customize this message, and even
|
|
||||||
change the project name if you deem that appropriate.
|
|
||||||
|
|
||||||
|
|
||||||
Thank you for your cooperation.
|
|
||||||
|
|
||||||
157
README.md
@@ -1,53 +1,124 @@
|
|||||||
# dvdisaster provides additional ECC protection for optical media
|
# :cd: What is dvdisaster?
|
||||||
|
|
||||||
It can loosely be compared to *par2* files, but the protection works at the *iso* level instead of working at the file level. This way, even if metadata from the optical media filesystem is damaged, dvdisaster can still work flawlessly.
|
**dvdisaster** provides additional [ECC](https://en.m.wikipedia.org/wiki/Error_correction_code) protection for optical media.
|
||||||
|
If a medium gets damaged, dvdisaster can recover it as long as the amount of damage is smaller than the amount of ECC data you added to protect it.
|
||||||
|
|
||||||
This version of dvdisaster supports the following platforms:
|
It can loosely be compared to [.par2](https://en.m.wikipedia.org/wiki/Parchive) files, but the protection works at the *iso* level instead of working at the file level.
|
||||||
Linux, FreeBSD, NetBSD on x86, PowerPC, Sparc, and Windows.
|
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.
|
Please refer to the [PDF manual](documentation/user-manual/manual.pdf) for more information.
|
||||||
|
|
||||||
# The codecs
|
# :wrench: Unofficial version
|
||||||
|
|
||||||
## RS01
|
The last upstream version dates back to 2021, and can be found on the [official website](https://dvdisaster.jcea.es).
|
||||||
|
|
||||||
RS01 creates error correction files which are stored separately from the image they
|
|
||||||
belong to. The artefact is an **ecc** file, which must be stored on another media than the one we're protecting.
|
|
||||||
|
|
||||||
## RS02
|
|
||||||
|
|
||||||
RS02 creates error correction data which is added to the medium to protect, we call this *augmenting* the image we're protecting. Damaged sectors in the error correction information reduce the data recovering capacity, but do not make recovery impossible - a second medium for keeping or protecting the error correction
|
|
||||||
information is not required.
|
|
||||||
|
|
||||||
## RS03
|
|
||||||
|
|
||||||
RS03 is a further development of RS01 and RS02. It can create both error correction files and
|
|
||||||
augmented images, with the following added features:
|
|
||||||
|
|
||||||
- RS03 can distribute work over multiple processor cores and is therefore much faster than
|
|
||||||
RS01/RS02 on modern hardware.
|
|
||||||
- RS03 error correction files are - contrary to RS01 - robust against damage. This should
|
|
||||||
not delude you into careless handling of your error correction files though - the disadvan-
|
|
||||||
tages of reading at the filesystem level are still valid.
|
|
||||||
- RS03 augmented images do not require so-called master blocks holding important in-
|
|
||||||
formation. This makes RS03 a bit more robust, but also more restrictive: The augmented
|
|
||||||
image must completely fill the medium now while the size of augmented images can be
|
|
||||||
freely chosen in RS02.
|
|
||||||
The changes for parallel computation and higher robustness make RS03 a bit less space efficient,
|
|
||||||
e.g. RS03 error correction data has slighly less error correction capacity than its RS01/RS02
|
|
||||||
counterparts on images with equal size.
|
|
||||||
|
|
||||||
# Unofficial version
|
|
||||||
|
|
||||||
The last upstream version is dated 2017, and the official website is down.
|
|
||||||
The original README has been left untouched in this repository.
|
|
||||||
This version is built on top of the latest upstream version, with the following notable enhancements:
|
This version is built on top of the latest upstream version, with the following notable enhancements:
|
||||||
|
|
||||||
- Most Debian patches have been applied (The Debian version source code can be found [here](https://sources.debian.org/src/dvdisaster/))
|
|
||||||
- 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
|
|
||||||
- Added pre-defined sizes for BD-R Triple Layer (100GB), BD-R Quadruple Layer (128GB)
|
- Added pre-defined sizes for BD-R Triple Layer (100GB), BD-R Quadruple Layer (128GB)
|
||||||
|
- Added an option to use more space for ECC on BD-R when using RS03 (`--no-bdr-defect-management`)
|
||||||
|
- Re-enabled adaptive reading for RS01 and RS02, and optionally for RS03 on user request (more on that below)
|
||||||
|
- Ability to strip an augmented image from its additional ECC-data
|
||||||
|
- A new CLI-only version, not depending on gtk (`./configure --with-gui=no && make clean && make -j4`)
|
||||||
|
- GUI codebase ported from gtk2 to gtk3 to ensure future-proofness
|
||||||
|
- Windows and macOS builds are supported again, those were dropped upstream a few versions back
|
||||||
|
- Non-regression tests on each code change, along with prebuilt binaries for Linux64, Windows32/64 and macOS, for both CLI and GUI versions
|
||||||
|
- Fixed a bunch of other (minor) quirks, a few (minor) bugs, added a couple other (minor) features
|
||||||
|
|
||||||
# Screenshots
|
Please refer to the [CHANGELOG](CHANGELOG) for all the details.
|
||||||
(todo)
|
|
||||||
|
This version will never break compatibility with upstream versions,
|
||||||
|
the goal is to ensure an optical media protected by upstream dvdisaster will still be able to be repaired
|
||||||
|
with this version, decades from now. Regression tests are here to ensure this is the case.
|
||||||
|
|
||||||
|
# :twisted_rightwards_arrows: 3 available protection modes ("codecs")
|
||||||
|
|
||||||
|
For a more detailed explanation of the algorithms, please refer to the [codecs specification PDF](documentation/codecs.pdf).
|
||||||
|
|
||||||
|
:arrow_forward: **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.
|
||||||
|
|
||||||
|
:arrow_forward: **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.
|
||||||
|
Intelligent adaptive reading is also available when reading a damaged RS02-protected disc: dvdisaster will only attempt
|
||||||
|
to read the minimum amount of required sectors to be able to rebuild the image, using a so-called "divide and conquer"
|
||||||
|
seeking mechanism, cutting off up to 90% of the time required to read and recover a damaged media.
|
||||||
|
|
||||||
|
:arrow_forward: **RS03** is a further development of RS01 and RS02. It can create both error correction files and
|
||||||
|
augmented images, with the following added features:
|
||||||
|
|
||||||
|
- It can use multiple CPU cores and is therefore **WAY** faster than RS01/RS02 on modern hardware.
|
||||||
|
- RS03 augmented images and error correction files are - contrary to RS01, and to a lesser extent RS02 - robust against
|
||||||
|
damage of the dvdisaster-added recovery data itself
|
||||||
|
|
||||||
|
There are, however, a few cons that must be noted for RS03:
|
||||||
|
|
||||||
|
- In image mode, the RS03 augmented image file size will be picked up from a predefined list of well-known medium sizes,
|
||||||
|
while the size of augmented images can be freely chosen in RS02. This is the "price to pay" for the added robustness
|
||||||
|
of the correction data.
|
||||||
|
- In image mode, intelligent adaptive reading is not available for RS03-protected images. The "divide and conquer"
|
||||||
|
algorithm will still be used, but dvdisaster will not stop as soon as enough sectors have been recovered to rebuild
|
||||||
|
the image: it'll attempt to read them all until you stop it, or until it tried to read all the sectors. You can still
|
||||||
|
stop it manually and attempt a "verify" of the resulting image file, to see if enough data has been read for recovery,
|
||||||
|
otherwise resuming the adaptive reading until this is the case.
|
||||||
|
- The changes for parallel computation and higher robustness make RS03 a tiny bit less space efficient, e.g. RS03 error
|
||||||
|
correction data has slighly less (around -3%) error correction capacity than RS02 on images with equal size. This is
|
||||||
|
usually considered a cheap price to pay for the added robustness against corruption.
|
||||||
|
|
||||||
|
# :mag: Comparison table
|
||||||
|
|
||||||
|
This attempts to summarize the differences, pros and cons of each codec:
|
||||||
|
|
||||||
|
| Codecs | RS01 (separate file, obsolete) | RS02 (augmented image) | RS03 (in separate file mode) | RS03 (in augmented image mode) |
|
||||||
|
|--------------------------------------|--------------------------------|--------------------------------|--------------------------------|--------------------------------|
|
||||||
|
| Robustness :one: | :star: | :star::star::star: | :star::star::star::star::star: | :star::star::star::star::star: |
|
||||||
|
| Space efficiency | :star::star: | :star::star::star::star::star: | :star::star::star::star: | :star::star::star::star: |
|
||||||
|
| Computational generation speed :two: | :star::star: | :star::star: | :star::star::star::star::star: | :star::star::star::star::star: |
|
||||||
|
| Computational repair speed :two: | :star::star::star: | :star::star::star: | :star::star::star: | :star::star::star: |
|
||||||
|
| Damaged media recovery speed :three: | :star: | :star::star::star: | :star: | :star: |
|
||||||
|
| Supports customizing redundancy size | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: :four: |
|
||||||
|
|
||||||
|
:one: Here we're talking about the robustness against corruption of the dvdisaster-added ECC parts _themselves_. The higher the ranking, the less it is likely than a few badly located damaged sectors render the whole correction impossible because they affect dvdisaster metadata on-disc. For example, corruption of the first dozens of sectors of an image can make RS02 entirely unusable regardless of the redundancy data originally stored on it.
|
||||||
|
|
||||||
|
:two: When algorithm is CPU-bound, i.e. generating or repairing an image stored on a SSD/NVMe drive where the storage i/o speed is not an issue.
|
||||||
|
|
||||||
|
:three: Using adaptive reading when supported (RS02), limiting the number of damaged sectors that need to be read to what is strictly necessary for repair. Using linear reading otherwise (RS03 and separate file codecs), assuming a badly damaged media, taking into account the time the drive takes to try to read damaged sectors.
|
||||||
|
|
||||||
|
:four: The robustness of RS03 comes at the cost of having to augment images strictly to well-known media sizes, as explained in the previous section above. This usually doesn't make much difference as long as you intend to burn the augmented image to a classic medium (CD-R, DVD-R, BD-R, ...).
|
||||||
|
|
||||||
|
# :bulb: Rationale
|
||||||
|
|
||||||
|
Even if the peak of the optical media era is well behind us, optical media is still of some value for specific use cases such as 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 main purpose of this unofficial version is to ensure dvdisaster doesn't get hard to find, use or compile on recent systems.
|
||||||
|
To this effect, prebuilt binaries are available for the 3 main categories of operating systems, and on top of that we've also fixed a few
|
||||||
|
bugs and added a few tiny features.
|
||||||
|
|
||||||
|
# :hammer: 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.
|
||||||
|
|
||||||
|
# :camera: Screenshots
|
||||||
|
|
||||||
|
### Reading a damaged CD under Windows:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Verifying the ECC correction data from the damaged image:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Repairing the damaged image thanks to augmented data:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Verification of the image after correction:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Reading a quad-layer multi-session BDXL with Linux GUI:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Note that the disc still has some room for more sessions (capacity is 128 GB).
|
||||||
|
|||||||
52
TODO
@@ -1,37 +1,42 @@
|
|||||||
|
|
||||||
Tentative to do/ release schedule
|
Tentative to do/ release schedule
|
||||||
|
|
||||||
Version 0.79: new RS03 codec (encoding part)
|
Versions 0.79.x: development releases
|
||||||
- lots of speed optimizations in error correction data encoding
|
* restart project, catch up wich recent compiler and OS version
|
||||||
- multithreaded / multicore processor support
|
* last releases with gtk-2
|
||||||
- add missing functionality, e.g. adaptive reading
|
|
||||||
0.79.5: project re-launch
|
|
||||||
0.79.6: re-introduce CRC and MD5 caching between reading
|
|
||||||
and ecc creation; cosmetical changes
|
|
||||||
0.79.7: re-introduce adaptive reading
|
|
||||||
|
|
||||||
Version 0.80: milestone release
|
work in progress (this release):
|
||||||
|
|
||||||
|
- split GUI code from core source to allow for command-line only build (done)
|
||||||
|
- merge patches from Stéphane Lesimple (done) and Debian (done)
|
||||||
|
|
||||||
|
upcoming (next stable release):
|
||||||
|
|
||||||
|
- restore adaptive reading for all codecs
|
||||||
|
|
||||||
|
(no more releases for 0.79.x planned;
|
||||||
|
except for maintenance issues should the need arise)
|
||||||
|
|
||||||
|
Versions 0.80.x: development releases
|
||||||
|
* gtk-4 migration
|
||||||
|
* lots of micro releases to revive the project and resolve outstanding issues
|
||||||
|
|
||||||
|
- upgrade from gtk-2 to gtk-4
|
||||||
|
- remove obsolete features, especially from the GUI
|
||||||
|
- ... many more will likely be added ...
|
||||||
|
|
||||||
|
Version 0.82: milestone/stable release
|
||||||
- RS03 encoding considered feature complete
|
- RS03 encoding considered feature complete
|
||||||
|
|
||||||
Version 0.81:
|
Version 0.83: development releases
|
||||||
- multithreaded decoding (error correction/repair)
|
- multithreaded decoding (error correction/repair)
|
||||||
for RS01/RS02/RS03
|
for RS01/RS02/RS03
|
||||||
- RS01 encoding (not decoding of course) will be
|
|
||||||
removed as RS03 fully replaces it
|
|
||||||
|
|
||||||
Version 0.82: milestone release
|
Version 0.84: milestone/stable release
|
||||||
- RS03 decoding considered feature complete
|
- RS03 decoding considered feature complete
|
||||||
|
|
||||||
Version 0.84:
|
|
||||||
- compile option to create a CLI-only binary
|
|
||||||
(without GTK+ linkage)
|
|
||||||
|
|
||||||
Version 0.86:
|
|
||||||
- maybe upgrade from GTK+ 2 to version 3
|
|
||||||
(not decided yet)
|
|
||||||
|
|
||||||
Version 0.90:
|
Version 0.90:
|
||||||
- Grand finale: add a new feature which isn't jaw dropping
|
- Grand finale: add a last new feature which isn't jaw dropping
|
||||||
but very convenient to have (sorry - has nothing to do
|
but very convenient to have (sorry - has nothing to do
|
||||||
with ripping). Since I'm not sure whether there
|
with ripping). Since I'm not sure whether there
|
||||||
is prior art to this feature, I won't get into
|
is prior art to this feature, I won't get into
|
||||||
@@ -49,11 +54,10 @@ Version 1.00: maintenance releases
|
|||||||
|
|
||||||
Unspecified schedule / later releases
|
Unspecified schedule / later releases
|
||||||
|
|
||||||
- native Windows fork
|
|
||||||
- add pause/resume button
|
- add pause/resume button
|
||||||
- optionally pause after n read errors for drives which
|
- optionally pause after n read errors for drives which
|
||||||
need to cool down
|
need to cool down
|
||||||
- add function for stripping RS02 data from image
|
- add function for stripping RS02 data from image [done in pl7]
|
||||||
- add quiet option for command line mode
|
- add quiet option for command line mode
|
||||||
- display estimated finishing time for encoding/decoding
|
- display estimated finishing time for encoding/decoding
|
||||||
- catch up with many other queued up suggestions
|
- catch up with many other queued up suggestions
|
||||||
|
|||||||
@@ -1,3 +1,23 @@
|
|||||||
|
# dvdisaster: Additional error correction for optical media.
|
||||||
|
# Copyright (C) 2004-2017 Carsten Gnoerlich.
|
||||||
|
# Copyright (C) 2019-2021 The dvdisaster development team.
|
||||||
|
#
|
||||||
|
# Email: support@dvdisaster.org
|
||||||
|
#
|
||||||
|
# This file is part of dvdisaster.
|
||||||
|
#
|
||||||
|
# dvdisaster is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# dvdisaster is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
This document describes the process of adding a new translation
|
This document describes the process of adding a new translation
|
||||||
to dvdisaster. It is work in progress and not yet complete.
|
to dvdisaster. It is work in progress and not yet complete.
|
||||||
|
|||||||
153
configure
vendored
@@ -1,23 +1,37 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# dvdisaster: Additional error correction for optical media.
|
||||||
|
# Copyright (C) 2004-2018 Carsten Gnoerlich.
|
||||||
|
# Copyright (C) 2019-2021 The dvdisaster development team.
|
||||||
|
#
|
||||||
|
# Email: support@dvdisaster.org
|
||||||
|
#
|
||||||
|
# This file is part of dvdisaster.
|
||||||
|
#
|
||||||
|
# dvdisaster is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# dvdisaster is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# Load the shell functions needed for the rest of this script.
|
# Load the shell functions needed for the rest of this script.
|
||||||
|
|
||||||
BASH_BASED_CONFIGURE=./scripts/bash-based-configure
|
BASH_BASED_CONFIGURE=./scripts/bash-based-configure
|
||||||
REQUIRED_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I."
|
BASH_BASED_CONFIGURE_OPTS="--buildtmp=$(pwd)/build $@"
|
||||||
RECOMMENDED_CFLAGS="-DPATCHLEVEL=1 -O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-stringop-truncation"
|
REQUIRED_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -pipe"
|
||||||
DEBUG_CFLAGS="-ggdb -Wall"
|
RECOMMENDED_CFLAGS="-Wall -Wno-format-zero-length -Wno-unused-but-set-variable"
|
||||||
|
NODEBUG_CFLAGS="-O2 -fomit-frame-pointer"
|
||||||
if [ "$CLI_ONLY" = 1 ]; then
|
DEBUG_CFLAGS="-ggdb"
|
||||||
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
|
if test -e $BASH_BASED_CONFIGURE; then
|
||||||
source $BASH_BASED_CONFIGURE
|
source $BASH_BASED_CONFIGURE $BASH_BASED_CONFIGURE_OPTS
|
||||||
else
|
else
|
||||||
echo "Could not find $BASH_BASED_CONFIGURE"
|
echo "Could not find $BASH_BASED_CONFIGURE"
|
||||||
echo "You're probably not in the right directory."
|
echo "You're probably not in the right directory."
|
||||||
@@ -26,14 +40,20 @@ fi
|
|||||||
|
|
||||||
# Set the package name and version
|
# Set the package name and version
|
||||||
|
|
||||||
PACKAGE dvdisaster 0.79.6
|
PACKAGE dvdisaster 0.79.10
|
||||||
CFG_HAVE_OPTIONS="$CFG_HAVE_OPTIONS -DHAVE_UNSTABLE_RELEASE"
|
DEFINE_INT PATCHLEVEL 5
|
||||||
|
DEFINE_STRING HAVE_UNSTABLE_RELEASE 1
|
||||||
|
DEFINE_STRING HOMEPAGE "https://dvdisaster.jcea.es"
|
||||||
|
|
||||||
# Check for some essential tools.
|
# Check for some essential tools.
|
||||||
|
|
||||||
REQUIRE_GMAKE
|
REQUIRE_GMAKE
|
||||||
REQUIRE_GCC
|
|
||||||
|
if [[ $(uname) =~ Darwin ]]; then
|
||||||
|
REQUIRE_CLANG
|
||||||
|
else
|
||||||
|
REQUIRE_GCC
|
||||||
|
fi
|
||||||
|
|
||||||
# Find out and verify the basedir of the source installation,
|
# Find out and verify the basedir of the source installation,
|
||||||
# and where to install the binary.
|
# and where to install the binary.
|
||||||
@@ -43,23 +63,33 @@ GET_PKGNAME
|
|||||||
GET_PREFIX /usr/local
|
GET_PREFIX /usr/local
|
||||||
GET_BINDIR
|
GET_BINDIR
|
||||||
GET_MANDIR
|
GET_MANDIR
|
||||||
GET_DOCDIR /usr/share/doc
|
GET_DOCDIR
|
||||||
GET_DIR "$PKGNAME" docsub "Documentation sub"\
|
GET_DIR "$PKGNAME" docsub "Documentation sub"\
|
||||||
" put documentation into this subdirectory\n under \$DOCDIR "
|
" put documentation into this subdirectory\n under \$DOCDIR "
|
||||||
GET_LOCALEDIR /usr/share/locale
|
GET_LOCALEDIR
|
||||||
GET_BUILDROOT
|
GET_BUILDROOT
|
||||||
GET_BUILDTMP
|
GET_BUILDTMP
|
||||||
|
|
||||||
|
PRINT_MESSAGE "\nDetermining build flavor:"
|
||||||
|
|
||||||
|
WITH_OPTION gui yes "[yes | no]"
|
||||||
|
|
||||||
|
# Remove the useless CLI console under windows
|
||||||
|
if [[ $(uname) =~ MINGW ]] && [ "$cfg_with_gui" == "yes" ]; then
|
||||||
|
CFG_LDFLAGS="$CFG_LDFLAGS -mwindows"
|
||||||
|
fi
|
||||||
|
|
||||||
# Look for required libraries
|
# Look for required libraries
|
||||||
|
|
||||||
PRINT_MESSAGE "\nLooking for includes and libraries:"
|
PRINT_MESSAGE "\nLooking for includes and libraries:"
|
||||||
|
|
||||||
REQUIRE_GLIB2 2 32 0
|
REQUIRE_GLIB2 2 32 0
|
||||||
if [ "$CLI_ONLY" != 1 ]; then
|
|
||||||
REQUIRE_GTK2 2 6 0 WITH_THREADS
|
|
||||||
fi
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
if test "$cfg_with_gui" == "yes"; then
|
||||||
|
REQUIRE_GTK3 3 4 0 WITH_THREADS
|
||||||
|
fi
|
||||||
|
|
||||||
if ! CHECK_INCLUDE locale.h locale || ! CHECK_INCLUDE libintl.h intl ; then
|
if ! CHECK_INCLUDE locale.h locale || ! CHECK_INCLUDE libintl.h intl ; then
|
||||||
echo " [previous test forces -with-nls=no]"
|
echo " [previous test forces -with-nls=no]"
|
||||||
cfg_force_with_nls=no
|
cfg_force_with_nls=no
|
||||||
@@ -78,10 +108,10 @@ PRINT_MESSAGE "\nChecking for functions and symbols..."
|
|||||||
CHECK_FUNCTION mmap
|
CHECK_FUNCTION mmap
|
||||||
|
|
||||||
if ! CHECK_FUNCTION getopt_long ; then
|
if ! CHECK_FUNCTION getopt_long ; then
|
||||||
if ! test -e getopt.h || ! test -e getopt.c ; then
|
if ! test -e src/getopt.h || ! test -e src/getopt.c ; then
|
||||||
echo " * getopt_long is missing. You can provide one by simply"
|
echo " * getopt_long is missing. You can provide one by simply"
|
||||||
echo " * copying getopt.c, getopt1.c and getopt.h from the GNU"
|
echo " * copying getopt.c, getopt1.c and getopt.h from the GNU"
|
||||||
echo " * C library into this directory."
|
echo " * C library into the src/ directory."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -98,6 +128,11 @@ CFG_CFLAGS="$CFG_CFLAGS -D_LARGEFILE64_SOURCE"
|
|||||||
CHECK_SYMBOL fcntl.h O_LARGEFILE
|
CHECK_SYMBOL fcntl.h O_LARGEFILE
|
||||||
CFG_CFLAGS=$SAVE_CFLAGS
|
CFG_CFLAGS=$SAVE_CFLAGS
|
||||||
|
|
||||||
|
if [[ $(uname) =~ Darwin ]]; then
|
||||||
|
CFG_CFLAGS="$CFG_CFLAGS -Wno-void-pointer-to-int-cast"
|
||||||
|
CFG_LDFLAGS="$CFG_LDFLAGS -framework CoreFoundation -framework IOKit"
|
||||||
|
fi
|
||||||
|
|
||||||
# Machine specific
|
# Machine specific
|
||||||
|
|
||||||
echo
|
echo
|
||||||
@@ -119,10 +154,10 @@ if ! EXECUTE_PROGRAM "xgettext --help" xgettext \
|
|||||||
cfg_force_with_nls=no
|
cfg_force_with_nls=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$CLI_ONLY" != 1 ]; then
|
if test "$cfg_with_gui" == "yes"; then
|
||||||
if ! EXECUTE_PROGRAM "gdk-pixbuf-csource --help" gdk_pixbuf_csource ; then
|
if ! EXECUTE_PROGRAM "glib-compile-resources --help" gdk_pixbuf_csource ; then
|
||||||
echo "* gdk-pixbuf not installed"
|
echo "* glib-compile-resources not installed"
|
||||||
echo "* or path to gdk-pixbuf-csource is missing."
|
echo "* or path to glib-compile-resources is missing."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -137,6 +172,32 @@ WITH_OPTION embedded-src-path yes "[yes | no]"
|
|||||||
PRINT_MESSAGE "\nDebugging options (do not use in production system):"
|
PRINT_MESSAGE "\nDebugging options (do not use in production system):"
|
||||||
|
|
||||||
WITH_OPTION memdebug no "[no | yes]"
|
WITH_OPTION memdebug no "[no | yes]"
|
||||||
|
WITH_OPTION debug-printf-format no "[no | yes]"
|
||||||
|
WITH_OPTION werror no "[no | yes]"
|
||||||
|
WITH_OPTION debug no "[no | yes]"
|
||||||
|
WITH_OPTION efence no "[no | yes]"
|
||||||
|
|
||||||
|
if test "$cfg_with_debug_printf_format" == "yes"; then
|
||||||
|
# don't use the binary compiled with this,
|
||||||
|
# it's only useful to properly get all the build-time
|
||||||
|
# warnings around printf-errors, that are otherwise
|
||||||
|
# not catched by the compiler because of the _() macro
|
||||||
|
DEFINE_STRING DEBUG_PRINTF_FORMAT 1
|
||||||
|
else
|
||||||
|
# warnings given by -Wformat-security are bogus because of _(),
|
||||||
|
# see above comment if you actually want to check for format errors
|
||||||
|
CFG_CFLAGS="$CFG_CFLAGS -Wno-format-security"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$cfg_with_werror" == "yes"; then
|
||||||
|
CFG_CFLAGS="$CFG_CFLAGS -Werror"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$cfg_with_debug" == "yes"; then
|
||||||
|
CFG_CFLAGS="$CFG_CFLAGS $DEBUG_CFLAGS"
|
||||||
|
else
|
||||||
|
CFG_CFLAGS="$CFG_CFLAGS $NODEBUG_CFLAGS"
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$cfg_with_efence" == "yes"; then
|
if test "$cfg_with_efence" == "yes"; then
|
||||||
if ! CHECK_LIBRARY efence malloc efence; then
|
if ! CHECK_LIBRARY efence malloc efence; then
|
||||||
@@ -157,55 +218,59 @@ fi
|
|||||||
|
|
||||||
PRINT_MESSAGE "\nCollecting source files:"
|
PRINT_MESSAGE "\nCollecting source files:"
|
||||||
|
|
||||||
rm -f conftest.c method-link.c
|
rm -f src/conftest.c src/method-link.c
|
||||||
cfiles="method-link.c"
|
cfiles="src/method-link.c"
|
||||||
ofiles="$BUILDTMP/method-link.o"
|
ofiles="$BUILDTMP/method-link.o"
|
||||||
|
|
||||||
for cfile in *.c; do
|
# Only include icons in GUI builds
|
||||||
if [ "$CLI_ONLY" = 1 ]; then
|
if test "$cfg_with_gui" == "yes"; then
|
||||||
grep -q 'DVDISASTER_GUI_FILE' "$cfile" && continue
|
icons="$BUILDTMP/inlined-icons.c"
|
||||||
fi
|
else
|
||||||
|
icons=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
for cfile in $icons src/*.c; do
|
||||||
cfile_prefix=`echo $cfile | sed -e 's/\.c//'`
|
cfile_prefix=`echo $cfile | sed -e 's/\.c//'`
|
||||||
cfiles="$cfiles $cfile"
|
cfiles="$cfiles $cfile"
|
||||||
ofiles="$ofiles $BUILDTMP/$cfile_prefix.o"
|
ofiles="$ofiles $BUILDTMP/$(basename $cfile_prefix.o)"
|
||||||
echo -n " $cfile_prefix"
|
echo -n " $cfile_prefix"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config
|
echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config
|
||||||
echo "CFG_OFILES = $ofiles" >> Makefile.config
|
echo "CFG_OFILES = $ofiles" >> Makefile.config
|
||||||
if [ "$CLI_ONLY" != 1 ]; then
|
if test "$cfg_with_gui" == "yes"; then
|
||||||
echo "ICONS = inlined-icons.h" >> Makefile.config
|
echo "ICONS = $icons" >> Makefile.config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create the method wrapper
|
# Create the method wrapper
|
||||||
|
|
||||||
PRINT_MESSAGE "\nCollecting methods:"
|
PRINT_MESSAGE "\nCollecting methods:"
|
||||||
|
|
||||||
cat >> method-link.c <<EOF
|
cat >> src/method-link.c <<EOF
|
||||||
/* Automatically generated wrapper for registering the methods */
|
/* Automatically generated wrapper for registering the methods */
|
||||||
|
|
||||||
void BindMethods(void)
|
void BindMethods(void)
|
||||||
{
|
{
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
for method in ecc-*.c; do
|
for method in src/ecc-*.c; do
|
||||||
method_name=`echo $method | sed -e 's/\.c//' -e 's/ecc-//'`
|
method_name=`echo $(basename $method) | sed -e 's/\.c//' -e 's/ecc-//'`
|
||||||
method_prefix="$method_prefix $method_name"
|
method_prefix="$method_prefix $method_name"
|
||||||
echo -n " $method_name"
|
echo -n " $method_name"
|
||||||
done
|
done
|
||||||
|
|
||||||
for method in $method_prefix; do
|
for method in $method_prefix; do
|
||||||
echo " void register_${method}(void);" >> method-link.c
|
echo " void register_${method}(void);" >> src/method-link.c
|
||||||
done
|
done
|
||||||
|
|
||||||
echo >> method-link.c
|
echo >> src/method-link.c
|
||||||
|
|
||||||
for method in $method_prefix; do
|
for method in $method_prefix; do
|
||||||
echo " register_${method}();" >> method-link.c
|
echo " register_${method}();" >> src/method-link.c
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "}" >> method-link.c
|
echo "}" >> src/method-link.c
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# Okay, hopefully we've got everything together now.
|
# Okay, hopefully we've got everything together now.
|
||||||
|
|||||||
79
contrib/AppRun.sh
Executable file
@@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
DIR="$(readlink -f "$(dirname "$0")")"
|
||||||
|
|
||||||
|
# When adding environment variables in this script, don't forget to sync with the src/show-manual.c
|
||||||
|
# list, as they need to be cleaned up before calling xdg-open to ensure xdg-open works with all the
|
||||||
|
# libs from the host and none from the AppImage (which most of the time just doesn't work).
|
||||||
|
# Also save the original value into an _ORIGINAL variable, which will be restored by dvdisaster
|
||||||
|
# into the xdg-open's environment before calling execve()
|
||||||
|
|
||||||
|
# Point to our own gtk libs
|
||||||
|
[ "_$GTK_PATH" != _ ] && export GTK_PATH_ORIGINAL="$GTK_PATH"
|
||||||
|
export GTK_PATH="$DIR/usr/lib/gtk-3.0"
|
||||||
|
|
||||||
|
# Load our own modules instead of the host ones,
|
||||||
|
# an absolute path pointing to the host is unfortunately hardcoded in ./usr/lib/libgio-2.0.so.0,
|
||||||
|
# but we edited the lib to neutralize said path (replaced gio/modules by :'s):
|
||||||
|
#
|
||||||
|
# $ strings ./usr/lib/libgio-2.0.so.0 | grep :::
|
||||||
|
# /usr/lib/:::::::::::
|
||||||
|
# /usr/lib/x86_64-linux-gnu/:::::::::::
|
||||||
|
#
|
||||||
|
# So the path below should be the only one used in the end:
|
||||||
|
[ "_$GIO_EXTRA_MODULES" != _ ] && export GIO_EXTRA_MODULES_ORIGINAL="$GIO_EXTRA_MODULES"
|
||||||
|
export GIO_EXTRA_MODULES="$DIR/usr/lib/gio/modules"
|
||||||
|
|
||||||
|
# To avoid getting:
|
||||||
|
# '''
|
||||||
|
# (dvdisaster:16170): Gtk-WARNING **: 14:31:41.224: Loading IM context type 'ibus' failed
|
||||||
|
# (dvdisaster:16170): Gtk-WARNING **: 14:31:41.224: /lib/x86_64-linux-gnu/libibus-1.0.so.5: undefined symbol: g_get_language_names_with_category
|
||||||
|
# '''
|
||||||
|
# We use xim instead, which is included in our build, along with the proper immodules cache file referencing our modules
|
||||||
|
[ "_$GTK_IM_MODULE_FILE" != _ ] && export GTK_IM_MODULE_FILE_ORIGINAL="$GTK_IM_MODULE_FILE"
|
||||||
|
export GTK_IM_MODULE_FILE="$(find "$DIR/" -name immodules.cache)"
|
||||||
|
[ "_$GTK_IM_MODULE" != _ ] && export GTK_IM_MODULE_ORIGINAL="$GTK_IM_MODULE"
|
||||||
|
export GTK_IM_MODULE=xim
|
||||||
|
|
||||||
|
# if host has GTK_MODULES set, empty it to prevent it from loading modules from the host
|
||||||
|
[ "_$GTK_MODULES" != _ ] && export GTK_MODULES_ORIGINAL="$GTK_MODULES"
|
||||||
|
export GTK_MODULES=''
|
||||||
|
|
||||||
|
# To avoid getting:
|
||||||
|
# '''
|
||||||
|
# (dvdisaster:16133): GLib-GIO-ERROR **: 14:25:53.270: Settings schema 'org.gnome.settings-daemon.plugins.xsettings' does not contain a key named 'antialiasing'
|
||||||
|
# Trace/breakpoint trap (core dumped)
|
||||||
|
# '''
|
||||||
|
# Under Ubuntu 22.04 and possibly later versions using Wayland
|
||||||
|
# https://github.com/Ultimaker/Cura/issues/12776
|
||||||
|
[ "_$GDK_BACKEND" != _ ] && export GDK_BACKEND_ORIGINAL="$GDK_BACKEND_ORIGINAL"
|
||||||
|
export GDK_BACKEND=x11
|
||||||
|
|
||||||
|
# To avoid getting:
|
||||||
|
# '''
|
||||||
|
# (evince:172616): dbind-WARNING **: 18:02:34.901: Couldn't connect to accessibility bus: Failed to connect to socket /run/user/1000/at-spi/bus: Permission denied
|
||||||
|
# '''
|
||||||
|
[ "_$NO_AT_BRIDGE" != _ ] && export NO_AT_BRIDGE_ORIGINAL="$NO_AT_BRIDGE"
|
||||||
|
export NO_AT_BRIDGE=1
|
||||||
|
|
||||||
|
# To avoid getting:
|
||||||
|
# '''
|
||||||
|
# (dvdisaster:20080): Gtk-WARNING **: 15:43:20.719: Could not load a pixbuf from icon theme.
|
||||||
|
# This may indicate that pixbuf loaders or the mime database could not be found.
|
||||||
|
# '''
|
||||||
|
# Point to our own patched cache file for gdk-pixbuf2
|
||||||
|
[ "_$GDK_PIXBUF_MODULE_FILE" != _ ] && export GDK_PIXBUF_MODULE_FILE_ORIGINAL="$GDK_PIXBUF_MODULE_FILE"
|
||||||
|
export GDK_PIXBUF_MODULE_FILE="$DIR/usr/lib/gdk-pixbuf2/loaders.cache"
|
||||||
|
# As the pixbuf loaders depends themselves on other libs, also adjust LD_LIBRARY_PATH so they load properly
|
||||||
|
[ "_$LD_LIBRARY_PATH" != _ ] && export LD_LIBRARY_PATH_ORIGINAL="$LD_LIBRARY_PATH"
|
||||||
|
export LD_LIBRARY_PATH="$DIR/usr/lib:$LD_LIBRARY_PATH"
|
||||||
|
|
||||||
|
# Change to the proper directory because some .cache files have relative paths starting with "."
|
||||||
|
# we save the current PWD so that dvdisaster can use it as a default to store image and ecc files
|
||||||
|
export ORIGINAL_PWD="$PWD"
|
||||||
|
cd "$DIR" || exit 1
|
||||||
|
|
||||||
|
# Now run the program, with 3 vars it uses at runtime
|
||||||
|
export DVDISASTER_APPIMAGE=1
|
||||||
|
export DOCDIR="$DIR/usr/share/doc/dvdisaster"
|
||||||
|
export BINDIR="$DIR/usr/bin"
|
||||||
|
exec "$DIR/usr/bin/dvdisaster" "$@"
|
||||||
379
curve.c
@@ -1,379 +0,0 @@
|
|||||||
/* dvdisaster: Additional error correction for optical media.
|
|
||||||
* Copyright (C) 2004-2017 Carsten Gnoerlich.
|
|
||||||
*
|
|
||||||
* Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
|
|
||||||
* Project homepage: http://www.dvdisaster.org
|
|
||||||
*
|
|
||||||
* This file is part of dvdisaster.
|
|
||||||
*
|
|
||||||
* dvdisaster is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* dvdisaster is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
// DVDISASTER_GUI_FILE
|
|
||||||
|
|
||||||
#include "dvdisaster.h"
|
|
||||||
|
|
||||||
/***
|
|
||||||
*** Constructors and destructors
|
|
||||||
***/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize the curve
|
|
||||||
*/
|
|
||||||
|
|
||||||
Curve* CreateCurve(GtkWidget *widget, char *left_label, char *left_format, int n_values, int bottom_format)
|
|
||||||
{ Curve *curve = g_malloc0(sizeof(Curve));
|
|
||||||
|
|
||||||
curve->widget = widget;
|
|
||||||
curve->layout = gtk_widget_create_pango_layout(widget, NULL);
|
|
||||||
curve->leftLabel = g_strdup(left_label);
|
|
||||||
curve->leftFormat = g_strdup(left_format);
|
|
||||||
curve->bottomFormat = bottom_format;
|
|
||||||
|
|
||||||
curve->fvalue = g_malloc0(sizeof(gdouble)*(n_values+1));
|
|
||||||
curve->ivalue = g_malloc0(sizeof(gint)*(n_values+1));
|
|
||||||
curve->lvalue = g_malloc0(sizeof(gint)*(n_values+1));
|
|
||||||
curve->lastValueIdx = n_values;
|
|
||||||
|
|
||||||
curve->maxX = 1;
|
|
||||||
curve->maxY = 1;
|
|
||||||
curve->logMaxY = 1;
|
|
||||||
|
|
||||||
if(bottom_format != CURVE_PERCENT)
|
|
||||||
curve->margin = 2;
|
|
||||||
|
|
||||||
return curve;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get rid of it
|
|
||||||
*/
|
|
||||||
|
|
||||||
void FreeCurve(Curve *curve)
|
|
||||||
{
|
|
||||||
g_object_unref(curve->layout);
|
|
||||||
g_free(curve->leftLabel);
|
|
||||||
if(curve->leftLogLabel)
|
|
||||||
g_free(curve->leftLogLabel);
|
|
||||||
g_free(curve->leftFormat);
|
|
||||||
g_free(curve->fvalue);
|
|
||||||
g_free(curve->ivalue);
|
|
||||||
g_free(curve->lvalue);
|
|
||||||
g_free(curve);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Reset the values
|
|
||||||
*/
|
|
||||||
|
|
||||||
void ZeroCurve(Curve *curve)
|
|
||||||
{ int i;
|
|
||||||
|
|
||||||
if(curve)
|
|
||||||
for(i=0; i<=curve->lastValueIdx; i++)
|
|
||||||
{ curve->fvalue[i] = -1.0;
|
|
||||||
curve->ivalue[i] = 0;
|
|
||||||
curve->lvalue[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/***
|
|
||||||
*** Auxiliary functions
|
|
||||||
***/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Calculate pixel coords from curve values
|
|
||||||
*/
|
|
||||||
|
|
||||||
int CurveX(Curve *curve, gdouble x)
|
|
||||||
{ gdouble width = (curve->rightX - curve->leftX - curve->margin);
|
|
||||||
|
|
||||||
return 1 + curve->leftX + ((gdouble)x * width) / 1000.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CurveLX(Curve *curve, gdouble x)
|
|
||||||
{ gdouble width = (curve->rightX - curve->leftX - curve->margin);
|
|
||||||
|
|
||||||
return 1 + curve->leftX + (x * width) / (gdouble)curve->maxX;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CurveY(Curve *curve, gdouble y)
|
|
||||||
{ gdouble hfact;
|
|
||||||
|
|
||||||
hfact = (gdouble)(curve->bottomY - curve->topY)
|
|
||||||
/ (gdouble)curve->maxY;
|
|
||||||
|
|
||||||
return curve->bottomY - y * hfact;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CurveLogY(Curve *curve, gdouble y) /* not really a log */
|
|
||||||
{ gdouble hfact;
|
|
||||||
|
|
||||||
if(y<1) return curve->bottomLY;
|
|
||||||
|
|
||||||
hfact = (gdouble)(curve->bottomLY - curve->topLY);
|
|
||||||
|
|
||||||
if(y==1) return curve->bottomLY - ((log(2)/log(curve->logMaxY)) * hfact)/2;
|
|
||||||
else return curve->bottomLY - (log(y)/log(curve->logMaxY)) * hfact;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***
|
|
||||||
*** Calculate the curve geometry
|
|
||||||
***/
|
|
||||||
|
|
||||||
void UpdateCurveGeometry(Curve *curve, char *largest_left_label, int right_padding)
|
|
||||||
{ GtkAllocation *a = &curve->widget->allocation;
|
|
||||||
int w,h;
|
|
||||||
|
|
||||||
/* Top and bottom margins */
|
|
||||||
|
|
||||||
SetText(curve->layout, curve->leftLabel, &w, &h);
|
|
||||||
curve->topY = h + 10;
|
|
||||||
|
|
||||||
SetText(curve->layout, "0123456789", &w, &h);
|
|
||||||
curve->bottomY = a->height - h - 10;
|
|
||||||
|
|
||||||
/* Left and right margins */
|
|
||||||
|
|
||||||
SetText(curve->layout, largest_left_label, &w, &h);
|
|
||||||
curve->leftX = 5 + 6 + 3 + w;
|
|
||||||
curve->rightX = a->width - right_padding;
|
|
||||||
|
|
||||||
/* Add space for the lograithmic curve */
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_LCURVE)
|
|
||||||
{ int height = curve->bottomY - curve->topY;
|
|
||||||
|
|
||||||
curve->bottomLY = curve->bottomY;
|
|
||||||
curve->bottomY -= height/4;
|
|
||||||
curve->topLY = curve->bottomY + h + 15;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/***
|
|
||||||
*** Redraw the coordinate axes
|
|
||||||
***/
|
|
||||||
|
|
||||||
void RedrawAxes(Curve *curve)
|
|
||||||
{ GdkDrawable *d = curve->widget->window;
|
|
||||||
int i,w,h,x,y;
|
|
||||||
int yg=0;
|
|
||||||
int step;
|
|
||||||
int bottom_y;
|
|
||||||
|
|
||||||
/* Draw and label the left coordinate axis */
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
|
|
||||||
gdk_draw_line(d, Closure->drawGC,
|
|
||||||
curve->leftX, curve->topY, curve->leftX, curve->bottomY);
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_LCURVE)
|
|
||||||
{ gdk_draw_line(d, Closure->drawGC,
|
|
||||||
curve->leftX, curve->topLY, curve->leftX, curve->bottomLY);
|
|
||||||
}
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
|
|
||||||
SetText(curve->layout, curve->leftLabel, &w, &h);
|
|
||||||
x = curve->leftX - w/2;
|
|
||||||
if(x < 5) x = 5;
|
|
||||||
gdk_draw_layout(d, Closure->drawGC,
|
|
||||||
x, curve->topY - h - 5, curve->layout);
|
|
||||||
|
|
||||||
|
|
||||||
/* Draw and label the grid lines for the log curve */
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_LCURVE)
|
|
||||||
{ int val;
|
|
||||||
char buf[16];
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
|
|
||||||
SetText(curve->layout, curve->leftLogLabel, &w, &h);
|
|
||||||
|
|
||||||
x = curve->leftX - w/2;
|
|
||||||
if(x < 5) x = 5;
|
|
||||||
gdk_draw_layout(d, Closure->drawGC,
|
|
||||||
x, curve->topLY - h - 5, curve->layout);
|
|
||||||
|
|
||||||
|
|
||||||
for(val=400; val>3; val/=2)
|
|
||||||
{ y = CurveLogY(curve, val);
|
|
||||||
sprintf(buf,"%d",val);
|
|
||||||
SetText(curve->layout, buf, &w, &h);
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
|
|
||||||
gdk_draw_layout(d, Closure->drawGC, curve->leftX-9-w, y-h/2, curve->layout);
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
gdk_draw_line(d, Closure->drawGC, curve->leftX-6, y, curve->leftX, y);
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->grid);
|
|
||||||
gdk_draw_line(d, Closure->drawGC, curve->leftX, y, curve->rightX, y);
|
|
||||||
|
|
||||||
val /=2;
|
|
||||||
y = CurveLogY(curve, val);
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
gdk_draw_line(d, Closure->drawGC, curve->leftX-3, y, curve->leftX, y);
|
|
||||||
|
|
||||||
if(curve->bottomLY-curve->topLY > 8*h)
|
|
||||||
{ sprintf(buf,"%d",val);
|
|
||||||
SetText(curve->layout, buf, &w, &h);
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
|
|
||||||
gdk_draw_layout(d, Closure->drawGC, curve->leftX-9-w, y-h/2, curve->layout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Draw and label the grid lines for the normal curve */
|
|
||||||
|
|
||||||
if(curve->maxY < 20) step = 4;
|
|
||||||
else step = 10;
|
|
||||||
|
|
||||||
for(i=0; i<=curve->maxY; i+=step)
|
|
||||||
{ char buf[4];
|
|
||||||
|
|
||||||
g_snprintf(buf, 4, curve->leftFormat, i);
|
|
||||||
SetText(curve->layout, buf, &w, &h);
|
|
||||||
|
|
||||||
y = yg = CurveY(curve, i);
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
|
|
||||||
gdk_draw_layout(d, Closure->drawGC, curve->leftX-9-w, y-h/2, curve->layout);
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
gdk_draw_line(d, Closure->drawGC, curve->leftX-6, y, curve->leftX, y);
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->grid);
|
|
||||||
gdk_draw_line(d, Closure->drawGC, curve->leftX, y, curve->rightX, y);
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
y = CurveY(curve, i+step/2);
|
|
||||||
if(y >= curve->topY)
|
|
||||||
gdk_draw_line(d, Closure->drawGC, curve->leftX-3, y, curve->leftX, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Draw the right coordinate axis */
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
|
|
||||||
gdk_draw_line(d, Closure->drawGC,
|
|
||||||
curve->rightX, curve->topY, curve->rightX, curve->bottomY);
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_LCURVE)
|
|
||||||
gdk_draw_line(d, Closure->drawGC,
|
|
||||||
curve->rightX, curve->topLY, curve->rightX, curve->bottomLY);
|
|
||||||
|
|
||||||
/* Draw and label the bottom coordinate axis */
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
|
|
||||||
gdk_draw_line(d, Closure->drawGC,
|
|
||||||
curve->leftX, curve->bottomY, curve->rightX, curve->bottomY);
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_LCURVE)
|
|
||||||
{ gdk_draw_line(d, Closure->drawGC,
|
|
||||||
curve->leftX, curve->bottomLY, curve->rightX, curve->bottomLY);
|
|
||||||
bottom_y = curve->bottomLY;
|
|
||||||
}
|
|
||||||
else bottom_y = curve->bottomY;
|
|
||||||
|
|
||||||
if(curve->maxX <= 100) step = 20; /* <100M */
|
|
||||||
else if(curve->maxX < 1000) step = 100; /* 100M ... 1000M */
|
|
||||||
else if(curve->maxX < 8000) step = 1024; /* 1G .. 8G */
|
|
||||||
else if(curve->maxX < 15000) step = 2560; /* 8G .. 15G */
|
|
||||||
else if(curve->maxX < 25000) step = 5120; /* 15G .. 25G */
|
|
||||||
else step = 10240;
|
|
||||||
|
|
||||||
for(i=0; i<=curve->maxX; i+=step)
|
|
||||||
{ char buf[10];
|
|
||||||
|
|
||||||
switch(curve->bottomFormat)
|
|
||||||
{ case CURVE_PERCENT:
|
|
||||||
g_snprintf(buf, 10, "%d%%", i);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CURVE_MEGABYTES:
|
|
||||||
if(step <= 100)
|
|
||||||
g_snprintf(buf, 10, "%dM",i);
|
|
||||||
else g_snprintf(buf, 10, "%3.1fG",(gdouble)i/1024.0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SetText(curve->layout, buf, &w, &h);
|
|
||||||
|
|
||||||
x = CurveLX(curve,i)-1;
|
|
||||||
gdk_draw_line(d, Closure->drawGC, x, bottom_y+6, x, bottom_y);
|
|
||||||
gdk_draw_layout(d, Closure->drawGC, x-w/2, bottom_y+8, curve->layout);
|
|
||||||
|
|
||||||
if(i && x < curve->rightX)
|
|
||||||
{ gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->grid);
|
|
||||||
gdk_draw_line(d, Closure->drawGC, x, curve->bottomY-1, x, yg);
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_LCURVE)
|
|
||||||
gdk_draw_line(d, Closure->drawGC, x, curve->bottomLY-1, x, curve->topLY);
|
|
||||||
}
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
|
|
||||||
x = CurveLX(curve,i+step/2)-1;
|
|
||||||
if(x < curve->rightX)
|
|
||||||
gdk_draw_line(d, Closure->drawGC, x, bottom_y+3, x, bottom_y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Redraw the curve
|
|
||||||
*/
|
|
||||||
|
|
||||||
void RedrawCurve(Curve *curve, int last)
|
|
||||||
{ int i,x0,x1,fy0,fy1;
|
|
||||||
|
|
||||||
x0 = CurveX(curve, 0);
|
|
||||||
fy0 = CurveY(curve, curve->fvalue[0]);
|
|
||||||
|
|
||||||
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
|
|
||||||
|
|
||||||
/* Draw the curve */
|
|
||||||
|
|
||||||
for(i=1; i<=last; i++)
|
|
||||||
{ x1 = CurveX(curve, i);
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_ICURVE)
|
|
||||||
{ int iy = CurveY(curve, curve->ivalue[i]);
|
|
||||||
|
|
||||||
if(curve->ivalue[i] > 0)
|
|
||||||
{ gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->barColor);
|
|
||||||
gdk_draw_rectangle(curve->widget->window,
|
|
||||||
Closure->drawGC, TRUE,
|
|
||||||
x0, iy, x0==x1 ? 1 : x1-x0, curve->bottomY-iy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_LCURVE)
|
|
||||||
{ int iy = CurveLogY(curve, curve->lvalue[i]);
|
|
||||||
|
|
||||||
if(curve->lvalue[i] > 0)
|
|
||||||
{ gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
|
|
||||||
gdk_draw_rectangle(curve->widget->window,
|
|
||||||
Closure->drawGC, TRUE,
|
|
||||||
x0, iy, x0==x1 ? 1 : x1-x0, curve->bottomLY-iy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(curve->enable & DRAW_FCURVE && curve->fvalue[i] >= 0)
|
|
||||||
{ fy1 = CurveY(curve, curve->fvalue[i]);
|
|
||||||
|
|
||||||
if(x0 < x1)
|
|
||||||
{ gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
|
|
||||||
gdk_draw_line(curve->widget->window, Closure->drawGC, x0, fy0, x1, fy1);
|
|
||||||
fy0 = fy1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
x0 = x1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
.PHONY : all codecs clean
|
.PHONY : all clean
|
||||||
|
|
||||||
all: codecs
|
all: codecs.pdf
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -f *~ *.aux *.log *.bak *.out *.toc *.dvi *.ps
|
@rm -f *~ *.aux *.log *.bak *.out *.toc *.dvi *.ps
|
||||||
@@ -8,7 +8,9 @@ clean:
|
|||||||
archclean: clean
|
archclean: clean
|
||||||
@rm -f *.pdf
|
@rm -f *.pdf
|
||||||
|
|
||||||
codecs:
|
# run latex twice to get the proper number of pages, fig numbers and index table
|
||||||
|
codecs.pdf: *.tex *.fig *.eps
|
||||||
|
latex codecs
|
||||||
latex codecs
|
latex codecs
|
||||||
dvips codecs.dvi
|
dvips codecs.dvi
|
||||||
ps2pdf codecs.ps
|
ps2pdf codecs.ps
|
||||||
|
|||||||
@@ -35,12 +35,14 @@
|
|||||||
\fancyfoot[LO]{created: \today}
|
\fancyfoot[LO]{created: \today}
|
||||||
\fancyfoot[RE]{\paperversion}
|
\fancyfoot[RE]{\paperversion}
|
||||||
|
|
||||||
|
\input{../config/version.tex}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\definecolor{lightblue}{RGB}{224,224,255}
|
\definecolor{lightblue}{RGB}{224,224,255}
|
||||||
\pagecolor{lightblue}
|
\pagecolor{lightblue}
|
||||||
\title{The dvdisaster Reed-Solomon Codec specification}
|
\title{The dvdisaster Reed-Solomon Codec specification}
|
||||||
\author{Carsten Gnörlich\\carsten@dvdisaster.org}
|
\author{The dvdisaster development team\\support@dvdisaster.org}
|
||||||
\date{}
|
\date{}
|
||||||
\maketitle
|
\maketitle
|
||||||
\thispagestyle{empty}
|
\thispagestyle{empty}
|
||||||
@@ -59,7 +61,7 @@ Reed-Solomon codecs which are currently called RS01, RS02 and RS03.
|
|||||||
The codecs create Reed-Solomon parity data to protect data stored on optical media.
|
The codecs create Reed-Solomon parity data to protect data stored on optical media.
|
||||||
Depending on the codec, parity data can either be stored in a separate file
|
Depending on the codec, parity data can either be stored in a separate file
|
||||||
or be integrated with the .iso image on the same medium.
|
or be integrated with the .iso image on the same medium.
|
||||||
See \url{http://dvdisaster.org} for additional resources on the dvdisaster project,
|
See \homepage for additional resources on the dvdisaster pro\-ject,
|
||||||
e.g. for the {\em orange manual} (manual.pdf) containing information for end users.
|
e.g. for the {\em orange manual} (manual.pdf) containing information for end users.
|
||||||
\end{abstract}
|
\end{abstract}
|
||||||
|
|
||||||
@@ -69,7 +71,7 @@ e.g. for the {\em orange manual} (manual.pdf) containing information for end use
|
|||||||
dvdisaster developers and, when the final version has been crafted, as an implementation
|
dvdisaster developers and, when the final version has been crafted, as an implementation
|
||||||
guide for third party developers who wish to create and process dvdisaster error correction data.
|
guide for third party developers who wish to create and process dvdisaster error correction data.
|
||||||
It is {\bf neither intended nor suitable} as end-user documentation; for usage information
|
It is {\bf neither intended nor suitable} as end-user documentation; for usage information
|
||||||
please refer to the online documentation at \url{http://dvdisaster.org}.
|
please refer to the online documentation at \homepage.
|
||||||
|
|
||||||
\bigskip
|
\bigskip
|
||||||
|
|
||||||
@@ -81,7 +83,8 @@ of programming in C is also assumed.
|
|||||||
\vfill
|
\vfill
|
||||||
\begin{center}
|
\begin{center}
|
||||||
{\em
|
{\em
|
||||||
Copyright 2008-2015 Carsten Gnörlich.
|
Copyright 2008-2015 Carsten Gnörlich.\\
|
||||||
|
Copyright 2021 The dvdisaster development team.\\
|
||||||
Verbatim copying and distribution of this entire article is permitted in any medium,
|
Verbatim copying and distribution of this entire article is permitted in any medium,
|
||||||
provided this notice is preserved.}
|
provided this notice is preserved.}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|||||||
1
documentation/codecs.pdf
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
codec-specs/codecs.pdf
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
.TH DVDISASTER 1 "2010-02-07" "0.80" "Schutz f\[:u]r optische Datentr\[:a]ger"
|
.TH DVDISASTER 1 "2018-05-14" "0.79.7" "Schutz f\[:u]r optische Datentr\[:a]ger"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
DVDISASTER \- Schutz f\[:u]r optische Datentr\[:a]ger gegen Datenverlust durch Alterung
|
DVDISASTER \- Schutz f\[:u]r optische Datentr\[:a]ger gegen Datenverlust durch Alterung
|
||||||
@@ -67,6 +67,7 @@ oder Kratzer
|
|||||||
.IR n \|]
|
.IR n \|]
|
||||||
.RB [\| \-\-spinup\-delay
|
.RB [\| \-\-spinup\-delay
|
||||||
.IR n \|]
|
.IR n \|]
|
||||||
|
.RB [\| \-\-version \|]
|
||||||
|
|
||||||
.SH BESCHREIBUNG
|
.SH BESCHREIBUNG
|
||||||
.B DVDISASTER
|
.B DVDISASTER
|
||||||
@@ -334,7 +335,7 @@ funktioniert am besten beim direkten Arbeiten mit Dateien im Arbeitsspeicher (z.
|
|||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-fill-unreadable n
|
.B \-\-fill-unreadable n
|
||||||
f\[:u]lle unlesbare Sektoren mit Byte n.
|
f\[:u]lle unlesbare Sektoren mit Byte n. Hilfreich um Abbilder zu verarbeiten, die von anderen Werkzeugen angelegt wurden. Beispielsweise f\[:u]llt ddrescue unlesbare Sektoren mit Null auf; dementsprechend w\[:a]re \-\-fill-unreadable=0 zu verwenden. Bitte dabei beachten: Sparse files k\[:o]nnen nicht mit dvdisaster verarbeitet werden.
|
||||||
.TP
|
.TP
|
||||||
.B \-\-ignore-fatal-sense
|
.B \-\-ignore-fatal-sense
|
||||||
Lesen nach m\[:o]glicherweise schwerwiegenden Fehlern fortsetzen.
|
Lesen nach m\[:o]glicherweise schwerwiegenden Fehlern fortsetzen.
|
||||||
@@ -422,6 +423,9 @@ warnt bei Geschwindigkeits\[:a]nderung um mehr als n Prozent.
|
|||||||
.TP
|
.TP
|
||||||
.B \-\-spinup-delay n
|
.B \-\-spinup-delay n
|
||||||
gibt dem Laufwerk n Sekunden Zeit zum Hochlaufen.
|
gibt dem Laufwerk n Sekunden Zeit zum Hochlaufen.
|
||||||
|
.TP
|
||||||
|
.B \-\-version
|
||||||
|
gibt die Versionsnummer und einige Konfigurationseigenschaften aus
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
.SH SIEHE AUCH
|
.SH SIEHE AUCH
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
.TH DVDISASTER 1 "2010-02-06" "0.80" "protection for optical media"
|
.TH DVDISASTER 1 "2018-05-14" "0.79.7" "protection for optical media"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
DVDISASTER \- data loss/scratch/aging protection for optical media
|
DVDISASTER \- data loss/scratch/aging protection for optical media
|
||||||
@@ -50,6 +50,7 @@ DVDISASTER \- data loss/scratch/aging protection for optical media
|
|||||||
.RB [\| \-\-medium-info \|]
|
.RB [\| \-\-medium-info \|]
|
||||||
.RB [\| \-\-no-progress \|]
|
.RB [\| \-\-no-progress \|]
|
||||||
.RB [\| \-\-old-ds-marker \|]
|
.RB [\| \-\-old-ds-marker \|]
|
||||||
|
.RB [\| \-\-no-bdr-defect-management \|]
|
||||||
.RB [\| \-\-prefetch-sectors
|
.RB [\| \-\-prefetch-sectors
|
||||||
.IR n \|]
|
.IR n \|]
|
||||||
.RB [\| \-\-raw-mode
|
.RB [\| \-\-raw-mode
|
||||||
@@ -66,6 +67,7 @@ DVDISASTER \- data loss/scratch/aging protection for optical media
|
|||||||
.IR n \|]
|
.IR n \|]
|
||||||
.RB [\| \-\-spinup\-delay
|
.RB [\| \-\-spinup\-delay
|
||||||
.IR n \|]
|
.IR n \|]
|
||||||
|
.RB [\| \-\-version \|]
|
||||||
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.B DVDISASTER
|
.B DVDISASTER
|
||||||
@@ -225,6 +227,21 @@ RS02 images:
|
|||||||
\-n BDXL3 augments image suitable for three layered BDXL media.
|
\-n BDXL3 augments image suitable for three layered BDXL media.
|
||||||
.RE
|
.RE
|
||||||
.RS
|
.RS
|
||||||
|
\-n BDXL4 augments image suitable for quadruple layered BDXL media.
|
||||||
|
.RE
|
||||||
|
.RS
|
||||||
|
\-n BDNODM\ \ \ \ augments image suitable for BD media burnt without defect management.
|
||||||
|
.RE
|
||||||
|
.RS
|
||||||
|
\-n BD2NODM\ \ augments image suitable for two layered BD media burnt without defect management.
|
||||||
|
.RE
|
||||||
|
.RS
|
||||||
|
\-n BDXL3NODM augments image suitable for three layered BDXL media burnt without defect management.
|
||||||
|
.RE
|
||||||
|
.RS
|
||||||
|
\-n BDXL4NODM augments image suitable for quadruple layered BDXL media burnt without defect management.
|
||||||
|
.RE
|
||||||
|
.RS
|
||||||
\-n x\ \ \ \ \ augments image using approx. x sectors in total.
|
\-n x\ \ \ \ \ augments image using approx. x sectors in total.
|
||||||
.RE
|
.RE
|
||||||
.RS
|
.RS
|
||||||
@@ -240,9 +257,22 @@ RS03 images:
|
|||||||
.RS
|
.RS
|
||||||
Setting the redundancy is not possible due to constraints in the format.
|
Setting the redundancy is not possible due to constraints in the format.
|
||||||
The codec will automatically choose the size of the smallest fitting medium.
|
The codec will automatically choose the size of the smallest fitting medium.
|
||||||
|
However, see --no-bdr-defect-management below.
|
||||||
.RE
|
.RE
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.B \-\-no-bdr-defect-management
|
||||||
|
Enable bigger augmented images for BD-R (around +3%).
|
||||||
|
If you know you will use a BD-R medium and want to maximize the free space
|
||||||
|
for parity data, you can skip the defect management formatting before burning,
|
||||||
|
at the expense of potential coasters. Specify this option to tell dvdisaster
|
||||||
|
to produce bigger images that will only fit on BD-R media burnt without defect
|
||||||
|
management. Some burning softwares call it "formatting" the BD-R before burning.
|
||||||
|
Note that should you need to repair such an augmented image, you'll then need to
|
||||||
|
specify this option on the command-line too.
|
||||||
|
.RE
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B \-m, \-\-method n
|
.B \-m, \-\-method n
|
||||||
lists/selects error correction methods (default: RS01).
|
lists/selects error correction methods (default: RS01).
|
||||||
@@ -319,7 +349,7 @@ and on very fast media with low latency such as SSDs.
|
|||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-fill-unreadable n
|
.B \-\-fill-unreadable n
|
||||||
fill unreadable sectors with byte n
|
fill unreadable sectors with byte n. Useful for processing images which have been created by other tools. For example, ddrescue fills unreadable sectors with zeros; therefore \-\-fill-unreadable=0 should be used. Please note: Sparse files can not be processed with dvdisaster.
|
||||||
.TP
|
.TP
|
||||||
.B \-\-ignore-fatal-sense
|
.B \-\-ignore-fatal-sense
|
||||||
continue reading after potentially fatal error condition.
|
continue reading after potentially fatal error condition.
|
||||||
@@ -403,6 +433,9 @@ print warning if speed changes by more than n percent.
|
|||||||
.TP
|
.TP
|
||||||
.B \-\-spinup-delay n
|
.B \-\-spinup-delay n
|
||||||
wait n seconds for drive to spin up.
|
wait n seconds for drive to spin up.
|
||||||
|
.TP
|
||||||
|
.B \-\-version
|
||||||
|
print version number and some configuration information.
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
|||||||
@@ -1,76 +0,0 @@
|
|||||||
@charset "UTF-8";
|
|
||||||
|
|
||||||
body { font-family:Helvetica,Arial,sans-serif,Verdana }
|
|
||||||
|
|
||||||
a:link { font-weight:normal; color:#0000ff; text-decoration:none }
|
|
||||||
a:visited { font-weight:normal; color:#0000ff; text-decoration:none }
|
|
||||||
a:hover { font-weight:normal; background-color:#e0e0e0; color:#0000FF; text-decoration:none }
|
|
||||||
a:active { font-weight:normal; background-color:#e0e0e0; color:#0000FF; text-decoration:none }
|
|
||||||
a:focus { font-weight:normal; background-color:#e0e0e0; color:#0000FF; text-decoration:none }
|
|
||||||
|
|
||||||
table.navigation {width:100%; background-color:#f0f0f0}
|
|
||||||
table.download {width:100%; background-color:#f0f0f0}
|
|
||||||
table.thumbnail {border-width:1px; border-style:solid; border-color:#000000; background-color:#e0e0ff}
|
|
||||||
table.screenshot {width:100%; border-width:0px; background-color:#e0e0ff}
|
|
||||||
|
|
||||||
table.ecompat {border-width:0px}
|
|
||||||
table.ecompat td { border-width:0px; vertical-align:text-top}
|
|
||||||
table.ecompat td.file { border-width:0px; background-color:#ffa0ff}
|
|
||||||
table.ecompat td.iso { border-width:0px; background-color:#a0ffff}
|
|
||||||
table.ecompat td.augment { border-width:0px; background-color:#a0a0ff}
|
|
||||||
|
|
||||||
|
|
||||||
table.compat {width:100%; border-style:solid; border-width:0px; border-collapse:collapse}
|
|
||||||
table.compat th { border-width:1px; padding:8px; border-style:solid; background-color:#b0b0b0 }
|
|
||||||
table.compat th.file { border-width:1px; padding:8px; border-style:solid; background-color:#ffa0ff }
|
|
||||||
table.compat th.iso { border-width:1px; padding:8px; border-style:solid; background-color:#a0ffff }
|
|
||||||
table.compat th.augment { border-width:1px; padding:8px; border-style:solid; background-color:#a0a0ff }
|
|
||||||
|
|
||||||
table.compat td { border-width:1px; padding:4px; border-style:solid; text-align:center}
|
|
||||||
|
|
||||||
table.compat td.noalign { border-width:1px; padding:4px; border-style:solid }
|
|
||||||
table.compat td.fullspan { border-width:1px; padding:0px; border-style:solid; background-color:#e0e0e0 }
|
|
||||||
table.compat td.red { border-width:1px; padding:4px; border-style:solid; background-color:#ff8080; text-align:center}
|
|
||||||
table.compat td.yellow { border-width:1px; padding:4px; border-style:solid; background-color:#ffe0a0; text-align:center}
|
|
||||||
table.compat td.green { border-width:1px; padding:4px; border-style:solid; background-color:#a0ffa0; text-align:center}
|
|
||||||
table.compat td.grey { border-width:1px; padding:4px; border-style:solid; background-color:#e0e0e0; text-align:center}
|
|
||||||
table.compat td.white { border-width:1px; padding:4px; border-style:solid; text-align:center}
|
|
||||||
|
|
||||||
a.active {color:#0000ff; text-decoration:none }
|
|
||||||
a.passive {color:#808080; text-decoration:none }
|
|
||||||
|
|
||||||
img.noborder {border:0px solid transparent;}
|
|
||||||
img.nobordervalignm {border:0px solid transparent; vertical-align:middle;}
|
|
||||||
|
|
||||||
span.fl {font-size:large;}
|
|
||||||
span.fxxl {font-size:xx-large;}
|
|
||||||
span.fs {font-size:small;}
|
|
||||||
span.fxs {font-size:x-small;}
|
|
||||||
span.green {color:green;}
|
|
||||||
span.red {color:red;}
|
|
||||||
span.blue {color:blue;}
|
|
||||||
span.yellow {color:gold;}
|
|
||||||
|
|
||||||
h3.top {margin-top: 0;}
|
|
||||||
|
|
||||||
table {empty-cells:show;} /* display border and background color even for empty table cells */
|
|
||||||
td.hsep {height:1px; width:100%; background-color:black;} /* black horizontal separator */
|
|
||||||
td.vsep {height:100%; width:2px; background-color:black;} /* black vertical separator */
|
|
||||||
td.esep {height:3px;}
|
|
||||||
|
|
||||||
.w10p {width:10%;}
|
|
||||||
.w15p {width:15%;}
|
|
||||||
.w20p {width:20%;}
|
|
||||||
.w50p {width:50%;}
|
|
||||||
.w55p {width:55%;}
|
|
||||||
.w65x {width:65px;}
|
|
||||||
.w100x {width:100px;}
|
|
||||||
.w127x {width:127px;}
|
|
||||||
.w150x {width:150px;}
|
|
||||||
.w200x {width:200px;}
|
|
||||||
|
|
||||||
.valignb {vertical-align:bottom;}
|
|
||||||
.valignm {vertical-align:middle;}
|
|
||||||
.valignt {vertical-align:top;}
|
|
||||||
.valigntt {vertical-align:text-top;}
|
|
||||||
.talignr {text-align:right;}
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
Deutsch <a href="../en/privacy.html">English</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Unterseiten:
|
|
||||||
<a href="index.html">Entwickler-Seite</a> ·
|
|
||||||
<a href="verschiedenes.html">Verschiedenes</a>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<b>Datenschutz-Erklärung</b> ·
|
|
||||||
<a href="impressum.html">Impressum</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
<b>Datenschutzerklärung für die Internetseiten unter</b><p>
|
|
||||||
|
|
||||||
dvdisaster.com,
|
|
||||||
dvdisaster.de,
|
|
||||||
dvdisaster.net,
|
|
||||||
dvdisaster.org
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
Das dvdisaster-Projekt (<a href="impressum.html">Anbieter siehe Impressum</a>)
|
|
||||||
ermöglicht Ihnen die Nutzung dieser Internetseiten ohne Registrierung und
|
|
||||||
ohne eine Angabe von personenbezogenen Daten.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Server-Protokoll-Dateien</b><p>
|
|
||||||
|
|
||||||
Die Server dieser Internetseiten führen kein Protokoll über Ihre Seitenzugriffe.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Cookies</b><p>
|
|
||||||
|
|
||||||
Diese Internetseiten verwenden keine Cookies.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Verweise zu anderen Internetseiten</b><p>
|
|
||||||
|
|
||||||
Diese Internetseiten enthalten Verweise (Links) zu externen Seiten,
|
|
||||||
die von anderen Anbietern betrieben werden.
|
|
||||||
Das dvdisaster-Projekt hat keinen Einfluß darauf,
|
|
||||||
ob andere Anbieter diese Datenschutzbestimmungen einhalten.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Weiterentwicklung dieser Internetseiten</b><p>
|
|
||||||
|
|
||||||
Im Zuge der Weiterentwicklung dieser Internetseiten können Änderungen
|
|
||||||
dieser Datenschutzerklärung erforderlich werden. Bitte lesen Sie sich
|
|
||||||
diese Datenschutzerklärung von Zeit zu Zeit erneut durch.
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
|
|
||||||
sofern dieser Hinweis erhalten bleibt.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
Deutsch <a href="../en/imprint.html">English</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Unterseiten:
|
|
||||||
<a href="index.html">Entwickler-Seite</a> ·
|
|
||||||
<a href="verschiedenes.html">Verschiedenes</a>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<a href="datenschutz.html">Datenschutz-Erklärung</a> ·
|
|
||||||
<b>Impressum</b>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
<b>Impressum</b><p>
|
|
||||||
|
|
||||||
Carsten Gnörlich <br>
|
|
||||||
Karl-von-Hahn-Str. 125 <br>
|
|
||||||
72250 Freudenstadt / Deutschland<br>
|
|
||||||
Tel.: +49 172 566 1442 (kein Support, nur für Anfragen im Rahmen des Telemediengesetzes!)
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
E-Mail: carsten@dvdisaster.org<br>
|
|
||||||
Internet: www.dvdisaster.org
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
Inhaltlich Verantwortlicher: <br>
|
|
||||||
Carsten Gnörlich (Anschrift wie oben).
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
Das Impressum gilt für die Internetpräsenz unter den Domänen<br>
|
|
||||||
<a href="http://dvdisaster.com">dvdisaster.com</a>,
|
|
||||||
<a href="http://dvdisaster.de">dvdisaster.de</a>,
|
|
||||||
<a href="https://web.archive.org/web/20180428070843/http://dvdisaster.net">dvdisaster.net</a>,
|
|
||||||
<a href="http://dvdisaster.org">dvdisaster.org</a>.
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
|
|
||||||
sofern dieser Hinweis erhalten bleibt.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,147 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
Deutsch <a href="../en/index.html">English</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Unterseiten:
|
|
||||||
<b>Entwickler-Seite</b> ·
|
|
||||||
<a href="verschiedenes.html">Verschiedenes</a>
|
|
||||||
</td>
|
|
||||||
<td align="right"><a href="datenschutz.html">Datenschutz-Erklärung</a> · <a href="impressum.html">Impressum</a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
|
|
||||||
<b>Entwickler-Seite</a></b><p>
|
|
||||||
|
|
||||||
Auf dieser Seite finden Sie den neuesten Quellkode
|
|
||||||
von <i>dvdisaster</i> für die Betriebssysteme
|
|
||||||
FreeBSD, GNU/Linux und NetBSD. Der Inhalt dieser
|
|
||||||
Seite richtet sich vorwiegend an die Betreuer
|
|
||||||
von Binärpaketen für die genannten Plattformen.
|
|
||||||
Typischerweise ist es bequemer, wenn Sie sich
|
|
||||||
dvdisaster aus dem Paketsystem Ihres Betriebssystems
|
|
||||||
bzw. Ihrer Distribution installieren.
|
|
||||||
Natürlich können Sie sich
|
|
||||||
den Quellkode von dvdisaster aber auch selbst
|
|
||||||
herunterladen und übersetzen, wenn Sie dies
|
|
||||||
lieber möchten.<br>
|
|
||||||
|
|
||||||
Diese Seite enthält <i>keine</i> Informationen
|
|
||||||
über den Sinn und die Benutzung von dvdisaster.
|
|
||||||
Dies ist an anderen Stellen besser beschrieben -
|
|
||||||
zum Beispiel in zahlreichen Foren und (in englischer Sprache) im
|
|
||||||
<a href="verschiedenes.html#manual">Benutzerhandbuch</a>.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<a name="download"></a>
|
|
||||||
<b>Quellkode herunterladen</b>
|
|
||||||
|
|
||||||
<table width="100%">
|
|
||||||
<tr>
|
|
||||||
<td>dvdisaster unterstützt die Betriebssysteme <b>FreeBSD</b>, <b>GNU/Linux</b> und <b>NetBSD</b>.
|
|
||||||
Es wird Ihnen
|
|
||||||
als <a href="http://www.germany.fsfeurope.org/documents/freesoftware.de.html">freie Software</a>
|
|
||||||
unter der <a href="http://www.gnu.org/licenses/gpl-3.0.txt">GNU General Public License v3</a> zur
|
|
||||||
Verfügung gestellt.
|
|
||||||
</td>
|
|
||||||
<td class="w127x" valign="top"><img src="../images/gplv3-127x51.png" alt="GPLv3-Logo" width="127">
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>Aktuelle Version: </td>
|
|
||||||
<td><a href="../downloads/dvdisaster-0.79.5.tar.bz2">dvdisaster-0.79.5.tar.bz2</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.79.5.tar.bz2.gpg">digitale Unterschrift</a>,
|
|
||||||
MD5-Prüfsumme: ceef990a2239c43314bc6427c6afb181)</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<p>
|
|
||||||
|
|
||||||
Die Archive können mit einer <a href="verschiedenes.html#pubkey">digitalen Unterschrift</a> auf
|
|
||||||
ihren Ursprungszustand überprüft werden. In den Archiven gibt die Datei
|
|
||||||
<tt>INSTALL</tt> weitere Informationen zum Übersetzen des Programmes.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
Die Unterstützung von OS X und Windows wurde eingestellt.
|
|
||||||
Die <a href="verschiedenes.html#windows">letzte veröffentlichte Version 0.72.3 für Windows</a> ist noch verfügbar.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>Die Entwickler-Versionen sind zurück!</b><p>
|
|
||||||
|
|
||||||
Der ursprüngliche Plan, alle paar Monate eine stabile Version zu veröffentlichen, kann derzeit aus Zeitmangel nicht umgesetzt werden. In der Zwischenzeit werden (unstabile) Entwicklerversionen veröffentlicht, wenn sich die Notwendigkeit für eine kurzfristige Aktualisierung ergibt. Bitte beachten Sie, daß diese Versionen nicht dokumentiert sind. Sie können unvollständige oder fehlerhafte Eigenschaften aufweisen. Sie sollten diese Versionen nur nutzen, wenn Sie eine Funktionalität aus der unten aufgeführten Liste benötigen.<p>
|
|
||||||
|
|
||||||
<a href="../downloads/dvdisaster-0.79.6.tar.bz2">dvdisaster-0.79.6.tar.bz2</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.79.6.tar.bz2.gpg">digitale Unterschrift</a>,
|
|
||||||
MD5-Prüfsumme: ceef990a2239c43314bc6427c6afb181)
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li> Das "Datenträger-Info"-Werkzeug zeigt nun die korrekte Leerkapazität an (vorher wurde immer Null ausgegeben).</li>
|
|
||||||
<li> Unterstützung für BDXL-TL-Datenträger (dreilagig, 100GB).</li>
|
|
||||||
<li> Sektoren-Prüfsummen und Abbild-Prüfsummen werden während des Lesens von
|
|
||||||
Datenträgern zwischengespeichert und beim Erstellen von Fehlerkorrektur-Daten
|
|
||||||
wiederverwendet. Das Erstellen von Fehlerkorrektur-Daten wird dadurch beschleunigt
|
|
||||||
und RS03-Fehlerkorrektur-Daten enthalten die optionale Abbild-Prüfsumme,
|
|
||||||
wenn der Datenträger vorher einmal komplett eingelesen wurde.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>Was ist mit den alten dvdisaster-Seiten passiert?</b><p>
|
|
||||||
|
|
||||||
Bitte schauen Sie in das <i>Vorwort zur Version 0.79.5</i> im
|
|
||||||
englischen <a href="verschiedenes.html#manual">Benutzerhandbuch</a>.
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
|
|
||||||
sofern dieser Hinweis erhalten bleibt.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,140 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
Deutsch <a href="../en/misc.html">English</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Unterseiten:
|
|
||||||
<a href="index.html">Entwickler-Seite</a> ·
|
|
||||||
<b>Verschiedenes</b>
|
|
||||||
</td>
|
|
||||||
<td align="right"><a href="datenschutz.html">Datenschutz-Erklärung</a> · <a href="impressum.html">Impressum</a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
<a name="pubkey"></a>
|
|
||||||
<b>Öffentlicher Schlüssel für die digitale Unterschrift</b><p>
|
|
||||||
|
|
||||||
Die herunterladbaren Pakete enthalten
|
|
||||||
eine mit <a href="http://www.gnupg.org">GnuPG</a> erstellte
|
|
||||||
digitale Unterschrift, damit Sie nachprüfen können,
|
|
||||||
ob sich die Software in ihrem ursprünglichen Zustand befindet.<p>
|
|
||||||
|
|
||||||
Ab Version 0.79.5 werden Pakete mit diesem
|
|
||||||
<a href="../downloads/pubkey2.asc">4096bit RSA-Schlüssel</a> unterschrieben:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
pub 4096R/64F770B2 2015-10-05
|
|
||||||
Schl.-Fingerabdruck = E3AF E703 96CC C0D9 E5D8 381C B0DB CA7D 64F7 70B2
|
|
||||||
uid dvdisaster (pkg signing key #2)
|
|
||||||
sub 4096R/758BCC23 2015-10-05
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
Ältere Versionen (bis zu 0.79.3) wurden mit einem
|
|
||||||
<a href="../downloads/pubkey1.asc">1024bit DSA-Schlüssel</a> unterschrieben,
|
|
||||||
der noch zum Vergleich hier verfügbar ist.
|
|
||||||
|
|
||||||
Sie können den Fingerabdruck der öffentlichen Schlüssel auch direkt von
|
|
||||||
den Entwicklern erhalten, indem Sie eine E-Mail
|
|
||||||
an carsten@dvdisaster.org schreiben. Bitte verwenden Sie
|
|
||||||
den Betreff "GPG finger print".
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Benutzerhandbuch</b><p>
|
|
||||||
<a name="manual"></a>
|
|
||||||
|
|
||||||
Das Benutzerhandbuch zu dvdisaster gibt es - leider aus Zeitgründen nur
|
|
||||||
in englischer Sprache - als <a href="../downloads/manual.pdf">PDF-Dokument (manual.pdf)</a>.
|
|
||||||
Es erläutert die Benutzung von dvdisaster anhand einiger
|
|
||||||
grundlegender Beispiele und enthält weitere Hintergrundinformationen
|
|
||||||
zu seiner Funktionsweise.
|
|
||||||
Sie brauchen das Handbuch hier nicht herunterzuladen, wenn Sie bereits
|
|
||||||
das Quellkode-Archiv haben - dort ist ebenfalls ein Exemplar enthalten.
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Kodierer-Spezifikation</b><p>
|
|
||||||
|
|
||||||
Die Spezifikation der RS01-, RS02- und RS03-Kodierer
|
|
||||||
ist als <a href="../downloads/codecs.pdf">PDF-Dokument (codecs.pdf)</a>
|
|
||||||
verfügbar.
|
|
||||||
|
|
||||||
Dieses Dokument ist zur Diskussion der Kodierer-Implementierung unter
|
|
||||||
den Entwicklern vorgesehen. Er erfordert Kenntnisse in Kodierungstheorie
|
|
||||||
und ist nicht als Endbenutzer-Dokumentation gedacht.
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr><td>
|
|
||||||
<a href="http://pdfreaders.org/"><img src="http://pdfreaders.org/graphics/pdfreaders-lang-neutral.png" alt="pdfreaders.org" /></a></td>
|
|
||||||
<td>Programme zum Lesen von PDF-Dokumenten sind bei <a href="http://pdfreaders.org">PDFreaders.org</a> verfügbar.</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>Letzte Windows-Version</b><p>
|
|
||||||
|
|
||||||
Ein anderer Entwickler hat angefangen, eine Version von dvdisaster direkt für Windows zu
|
|
||||||
erstellen, aber es gibt dazu noch nichts anzukündigen. Verwenden Sie
|
|
||||||
bis dahin bitte weiterhin die letzte veröffentlichte Version für Windows:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>Quellkode: </td>
|
|
||||||
<td><a href="../downloads/dvdisaster-0.72.3.tar.bz2">dvdisaster-0.72.3.tar.bz2</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.72.3.tar.bz2.gpg">Digitale Unterschrift</a>,
|
|
||||||
MD5-Prüfsumme: 4eb09c1aa3cdbc1dafdb075148fb471d)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Installierbare Binärversion: </td>
|
|
||||||
<td><a href="../downloads/dvdisaster-0.72.3-setup.exe">dvdisaster-0.72.3-setup.exe</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.72.3-setup.exe.gpg">Digitale Unterschrift</a>,
|
|
||||||
MD5-Prüfsumme: b6861ba1e8de6d91a2da5342a14870e0)</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
|
|
||||||
sofern dieser Hinweis erhalten bleibt.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
Version: GnuPG v1.2.4 (GNU/Linux)
|
|
||||||
|
|
||||||
mQGiBD9GYJcRBACXa6CzZ0WPqUvit1d7LvnSOqLDxYQiiphnzjQc+ssJvScNxv9+
|
|
||||||
ThELKXHxaKfDpL9/C4+5qh1pfrsEEpuQ7m+RfXFqz5UPZITgza5Ko/5WPhhVRxkh
|
|
||||||
8b8ux7DIeFlbgmd5YSFPoYIwGWCAtI5OiUC6qa149gAq7k0vtgb+hbxn2wCg0lTu
|
|
||||||
XGNjX7qMNggbnx3aBVVd9SMD/RYWIr2c66w6Kt/EYLLgYGqgZL9MkmocuUoJVgiI
|
|
||||||
Y2pi3SPbIvX3enk1OIRBCFbweEgXiVw+FWu6aK09eZrJcDv2Uns4ecTvzz1d83RH
|
|
||||||
gssV7ulB6P5mU3u6NT39CHW6fJ5Xi1HPkw380+y3dbaRxh/1htmk5Ao0DmDGRohL
|
|
||||||
vzgIA/9P/bdqh0WG0j4qY+8pcsNn0/ymiJXPZzvyr2cEc56AaHgLAVZHMUyE3Rd9
|
|
||||||
9rSZjVS+x/oGbkzVOd8IySUSRx7f2Sxve1sxoaNlwdqcE0vq16PH1iMBQ6KJAvUA
|
|
||||||
NAM4QZhAI7Lav9yB/tXblGrHHjll+fwFB/9t6G0hO9JoJDaEgbQmQ2Fyc3RlbiBH
|
|
||||||
bsO2cmxpY2ggKHBrZyBzaWduaW5nIGtleSAjMSmIXgQTEQIAHgUCQCvkqQIbAwYL
|
|
||||||
CQgHAwIDFQIDAxYCAQIeAQIXgAAKCRBaWQ7+9fbEbGfsAJ9NrkdlRobMhtWpAyeW
|
|
||||||
wPUe8XHzsACfYbMooS0D/UmRGo7wW7rBnrVqLxy5AQ0EP0ZgmBAEAKJos9WBWgw1
|
|
||||||
sGFFM/1eKEzZqGYMt8qk2r/djPyZYEIzqT47aR7P9gPIXDTplOmBgL43hU8MlE9K
|
|
||||||
Q92s4RVP/x/OvMWF04vSO3vBEmeR3HncpbIk4AP17MZGuqEGtyAe1e5hcGiho1CL
|
|
||||||
/6fSanYydC2iciKbfyyfzL9oISHedad7AAMFA/4wtrdqwTI2p05NAGxRA2r4egYI
|
|
||||||
m7x+ixyYuHGkzZzHMdos5zDg/dzNRnarib98JgAkZR+EVT6K0Ez6ykz57oteCt6f
|
|
||||||
jyGjOwI9bUyOFa+LyGJ+QRaeVozhqLLu/b4wgKCuBcKNt2ebpKFHi9JKiGE9hOJz
|
|
||||||
4nanjCbtihUJaf1DLIhJBBgRAgAJBQI/RmCYAhsMAAoJEFpZDv719sRsbk4An2JZ
|
|
||||||
q/8GBvugzgfu5AxacsuiZzfgAKCwzLAuoUTw/Sz6bYaAUfec362gFw==
|
|
||||||
=Sidz
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
Version: GnuPG v1.4.12 (GNU/Linux)
|
|
||||||
|
|
||||||
mQINBFYS0XkBEACxsIQ1dI0k1TiybBztU6BC3DeQsDGC9TeaGBgYDo+62B8U5uiJ
|
|
||||||
AD9ofBXglj0/DOweAIoLdcVsvFzU0sxk4tUnb84plk09qG+UfU2227DWeKTP3YPv
|
|
||||||
E8A6uWopr6Yoc8WGG9mKl9L1CCiqQmNB4L4Um2/yDPrhtN3TxzpMLBoNUo/f271Q
|
|
||||||
yLxQZMEsUDTZq7JxbEQ9hLbBn69zIptsZHyNJwCerqXqhzQcB11BVqZyLrRC+0ZT
|
|
||||||
eUtO1o10Y/EAEi86ivi1upLsgVi5u2LcP9ICIhTVv6MQ+turhThFOIcEvbw/15Hp
|
|
||||||
4Vlb0yZlBx2j4Hr4tDSrWeQ1lmBNA1qhrLkPOIQv+scXhcyzY5nKIjRDKYS1v8OM
|
|
||||||
uMhfVakK/YS+flN5nyS4Ku0x99sae75+PArMjbLNfP738Zw4ywC4i+i958SEIcky
|
|
||||||
4Bia+kyTCPRZWZ5BJe3+GAPDdI1XntS0D1uXPiwi8u91jg1cAEChwjwe2pr0RG+h
|
|
||||||
8ft5BTezJyAeZ9haU8OyrW5GZNddhyBH4QxdRYvMTdmQIbjxNuTYGpBXl4qgTqKn
|
|
||||||
A7Gxbr24hgdUHKIe//AlDQ41VbBTdyBmgyORGCL+uaSpDerADPXh+bwE2vQsKs13
|
|
||||||
+HcVldLBJmL9tYeRZvpvR/vwFBvfkrgAN8+NdPnSzwvLI0JMrL50DOhapwARAQAB
|
|
||||||
tB9kdmRpc2FzdGVyIChwa2cgc2lnbmluZyBrZXkgIzIpiQI4BBMBAgAiBQJWEtF5
|
|
||||||
AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw28p9ZPdwsivVD/4wiomj
|
|
||||||
IFNUG0lb4sIvXHZR2sv0rVz1eN74B+Ngefp3viZvjvmXji2cbzPhTsoAq4ys5/nD
|
|
||||||
m9fLnm+mG2TfLKTqXBNRDeEDmknK0aXlFVbdUfgeExvU9Tj1giOORTvTiNPdJpkF
|
|
||||||
qKMrjvtB4t2sHuuL/SNwQAWlWfDUuK52yf1SAZasdFPTAvAuzo+lqfYbi5tnjIY/
|
|
||||||
GkR9e3ZjMEaWvxc0N5CJg7ibKpuX476eo+04oKkNvSbyE7Lpcho4AHy6e4UoJ9e+
|
|
||||||
UBL3o84MtChwrlP5HmMPan1hIL5iyswDUrxUfL36GqAEcAM8tIbZ6A6CfQT+FgnI
|
|
||||||
e/E1dm3FWEje8F7uD2xkCGRBYTN8BG5+UMTF9MaQGU3kxBMPt8xvHmCNZHR6QrdL
|
|
||||||
+vysa+02QmSM1jZz4J37yctM69WY1x3JDC+HGHMxCX3G+BrDntLG3yQkox1nBi2l
|
|
||||||
8JiKTdoX7LhRn1xCijIpYdbszMao0lN/XEiOgx2eygG9a3fQDOqR/yi9tTqmKQM4
|
|
||||||
H/il88tkdsaioWXspWEhrS+8MhiUdr8yz3LA9+DawddnW8ZbTee2R4ARMlKhfXBE
|
|
||||||
kvXO2L37Ub2sX97S9qbKkwaYIs2PHn7NFNRB6OP8Oz0scMuritvUZrNfNjaGba3e
|
|
||||||
YNgR36NFvroM3R2a+Yr0zjbY+rqjJSdNSfcsxIhGBBARAgAGBQJWEtXYAAoJEFpZ
|
|
||||||
Dv719sRsj6kAoL8AIsw7wF1F/LBHOZc/56GmYlAfAJ4nYQAjhx0Hh3fLpsjxtoH7
|
|
||||||
oIuwCLkCDQRWEtF5ARAA3KvEpeB7vbCxolIlzxuF/RHJ770GUYSfTVbYIKSl4Hby
|
|
||||||
wrDak7uXlDWIJ/u1lunu5+albUEHIaduYolrzaTG6A/sslXHgk8RUxZonzAw2/8C
|
|
||||||
0fQCBAPjs2nlwzt61g75/EPJlESocapdRi97EleGmGGK5L6N2CyTX8pjj1DkXwiW
|
|
||||||
X95EOcgWRoLXpf/bpThqFCsRjoJfHO7zcA0b5iIR7LQenMG/3AeGFRr1Oh2UzAL6
|
|
||||||
0MuPypu8NBv3IUXZ6mXdFTNM4bQc/RlmVDoB8B8mz4M1IL0fP98LN+b9ZfUUDz1z
|
|
||||||
k9W8H+OCvfdOVj1srDq+uhaSwDC6jDu7wTaFlaJaPBoqCXCk7xGbVxKdZot6oN5Z
|
|
||||||
rAvMMnD0Jc+QX+MKSodMk5LQRFB+WGI82IwgeS7kqQX2Bt0w7d4xL/3AKTNgQQAG
|
|
||||||
zXRi7dzXR//diKEmESSmaRccVpLZYtR4PdUuY6ZXyayEvZCosV6B7P+lV842lN9Q
|
|
||||||
/KgrZjH09SYKK8pzqRPoAIvPJNT4fP8FeTztnKu9gfS0Zs2MnkKjEK85E8OMSidp
|
|
||||||
ISqn0xgHeuldMPL7gGxJKj95BF4jFUs4fQa8nD1jnnUbKdAsGd5ujpEAjAfV+kkG
|
|
||||||
ZPUyVrJokhGlCLLt2dG4PrgZ4tNXdEQwVGNskHYjs6YU+CGYjzfopvrUPast+cUA
|
|
||||||
EQEAAYkCHwQYAQIACQUCVhLReQIbDAAKCRCw28p9ZPdwsrmqD/sFsulD6nl5DRzn
|
|
||||||
ofkqBJwwl6zdtNN9OKsEi8UKc10iuq+ZvynWFbcARqW9sgbBCoCM5KuA5zMIQ0hv
|
|
||||||
rvlb+HOt8v7DA2D0d/IPU1BPnxoEuMDq5g+a3MYzmP+4Wmp8r6NNAW0ArWhazQsN
|
|
||||||
dIhAVv4ItUCos7+S7q8srsflpEVG78/fC4Fw4sRjAaCd1NsP6D3vHwENtbuoQaT6
|
|
||||||
3kyfPK+r6EADTxmeFe7anovQo6MirRCnLoo3NdPVfQlgXkdL3wiBpwm7W/PYY+9Z
|
|
||||||
6HIfE2AIBs+C5SdxYPR+tVz3+3QC9998egxTRnJMaKkDQ+nG/ROSVpCqXwhzob6H
|
|
||||||
lrKhoe7H7GKVZyl/IVllpUQHKi5C03S8JQxpaJoB85/C5ZlcMtb0e1YUYeVhTKWI
|
|
||||||
REFsx5FlxXcJh5CLVplZKxfn0oiIgnyKHtCOeNcXP2mOYClN8RmhW+/Z198bTmzM
|
|
||||||
rB2jq7a3xbLGWKJqfgfZ6EPwCEu/jZTBSQgyssrrGahyyOIDadEcyfYV+r5pUm1+
|
|
||||||
+1YxSe0/hZ89RjGAIneWmo6sDLwPd44GLKAAb/E/yS/320bu031426gU8Zdw7bK1
|
|
||||||
dVNVQxWOpRc/RTRjmVjrO9NIN+7DSNOFnvep13/48UEDSFXkNnh+VgxGpvpOouw2
|
|
||||||
xUBVNZuhjPr589pvAEQFUyxCTI0uwQ==
|
|
||||||
=sd4U
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
<a href="../de/impressum.html">Deutsch</a> English
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Navigation:
|
|
||||||
<a href="index.html">Developer site</a> ·
|
|
||||||
<a href="misc.html">Miscellaneous</a>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<a href="privacy.html">Privacy policy</a> ·
|
|
||||||
<b>Contact information</b>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
<b>Contact information</b><p>
|
|
||||||
|
|
||||||
Carsten Gnörlich <br>
|
|
||||||
Karl-von-Hahn-Str. 125 <br>
|
|
||||||
72250 Freudenstadt / Germany<br>
|
|
||||||
Tel.: +49 172 566 1442
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
E-Mail: carsten@dvdisaster.org<br>
|
|
||||||
Internet: www.dvdisaster.org
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
Responsible for the website content: <br>
|
|
||||||
Carsten Gnörlich (see above for address).
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
This notice covers the web sites under the domains<br>
|
|
||||||
<a href="http://dvdisaster.com">dvdisaster.com</a>,
|
|
||||||
<a href="http://dvdisaster.de">dvdisaster.de</a>,
|
|
||||||
<a href="https://web.archive.org/web/20180428070843/http://dvdisaster.net">dvdisaster.net</a>,
|
|
||||||
<a href="http://dvdisaster.org">dvdisaster.org</a>.<br>
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
<a href="../de/index.html">Deutsch</a> English
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Navigation:
|
|
||||||
<b>Developer site</b> ·
|
|
||||||
<a href="misc.html">Miscellaneous</a>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<a href="privacy.html">Privacy policy</a> ·
|
|
||||||
<a href="imprint.html">Contact information</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
<b>Developer site</b><p>
|
|
||||||
|
|
||||||
This site provides the latest source code release of dvdisaster for the
|
|
||||||
FreeBSD, GNU/Linux and NetBSD operating systems. It is mostly aimed at
|
|
||||||
maintainers of binary packages for the beforementioned platforms.
|
|
||||||
End users might find it more convenient to install dvdisaster from the
|
|
||||||
package system of their operating system bundle or distribution.
|
|
||||||
But if you prefer to download and compile the source package on your own,
|
|
||||||
you're welcome, too.<br>
|
|
||||||
|
|
||||||
This site does <i>not</i> provide information on the purpose and usage
|
|
||||||
of dvdisaster. This is better described at other places, e.g.
|
|
||||||
in the <a href="misc.html#manual">user manual</a> and numerous online
|
|
||||||
forums.
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<a name="download"></a>
|
|
||||||
<b>Download the source code</b>
|
|
||||||
|
|
||||||
<table width="100%">
|
|
||||||
<tr>
|
|
||||||
<td>dvdisaster is available for the <b>FreeBSD</b>, <b>GNU/Linux</b> und <b>NetBSD</b>
|
|
||||||
operating systems.
|
|
||||||
It is provided as
|
|
||||||
<a href="http://fsfe.org/about/basics/freesoftware.en.html">free software</a>
|
|
||||||
under the <a href="http://www.gnu.org/licenses/gpl-3.0.txt">GNU General Public License v3</a>. </td>
|
|
||||||
<td class="w127x" valign="top"><img src="../images/gplv3-127x51.png" alt="GPLv3-Logo" width="127">
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>Current stable version: </td>
|
|
||||||
<td><a href="../downloads/dvdisaster-0.79.5.tar.bz2">dvdisaster-0.79.5.tar.bz2</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.79.5.tar.bz2.gpg">digital signature</a>,
|
|
||||||
MD5 sum: ceef990a2239c43314bc6427c6afb181)</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<p>
|
|
||||||
|
|
||||||
A <a href="misc.html#pubkey">digital signature</a> is provided for
|
|
||||||
verification that the packages are in their original state. The archives
|
|
||||||
contain a file <tt>INSTALL</tt> with further instructions for building dvdisaster.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
OS X and Windows are no longer supported.
|
|
||||||
The <a href="misc.html#windows">last published version for Windows (0.72.3)</a> is still available.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>The developer versions are back!</b><p>
|
|
||||||
|
|
||||||
The original plan of publishing stable versions every few months did not work out due to continued lack of time. In the mean time, developer (unstable) versions are published whenever the need arises for a current update. Please be aware that developer versions are undocumented and may contain unfinished or otherwise defective functionality. You should only use them if you need some of the features detailed in the list below.<p>
|
|
||||||
|
|
||||||
|
|
||||||
<a href="../downloads/dvdisaster-0.79.6.tar.bz2">dvdisaster-0.79.6.tar.bz2</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.79.6.tar.bz2.gpg">digital signature</a>,
|
|
||||||
MD5 sum: ceef990a2239c43314bc6427c6afb181)
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li> The "medium info" tool will now correctly show the blank capacity (was previously always shown as zero)</li>
|
|
||||||
<li> added support for BDXL-TL (triple layer, 100GB) media</li>
|
|
||||||
<li> Sector CRC sums and the image MD5 sums are collected during
|
|
||||||
reading the medium and can be re-used by the ecc data creation
|
|
||||||
process. Speeds up ecc generation and enables RS03 image
|
|
||||||
checksums when generating ecc data was preceeded by a read.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>What happened to the old dvdisaster site?</b><p>
|
|
||||||
|
|
||||||
Please see the <i>Preface for version 0.79.5</i> in the <a href="misc.html#manual">user manual</a>.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
<a href="../de/verschiedenes.html">Deutsch</a> English
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Navigation:
|
|
||||||
<a href="index.html">Developer site</a> ·
|
|
||||||
<b>Miscellaneous</b>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<a href="privacy.html">Privacy policy</a> ·
|
|
||||||
<a href="imprint.html">Contact information</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
<b>Public key for the digital signature</b><p>
|
|
||||||
|
|
||||||
The downloadable dvdisaster packages have been digitally signed using
|
|
||||||
<a href="http://www.gnupg.org">GnuPG</a> so that you can verify
|
|
||||||
that the software is in its original state.<p>
|
|
||||||
|
|
||||||
Starting with version 0.79.5, releases are signed with this
|
|
||||||
<a href="../downloads/pubkey2.asc">4096bit RSA key</a>:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
pub 4096R/64F770B2 2015-10-05
|
|
||||||
Key fingerprint = E3AF E703 96CC C0D9 E5D8 381C B0DB CA7D 64F7 70B2
|
|
||||||
uid dvdisaster (pkg signing key #2)
|
|
||||||
sub 4096R/758BCC23 2015-10-05
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
The <a href="../downloads/pubkey1.asc">1024bit DSA key</a> used to sign releases up to version 0.79.3 is
|
|
||||||
still available for reference.
|
|
||||||
Feel free to send an email to carsten@dvdisaster.org to obtain
|
|
||||||
any of these fingerprints directly from the developers.
|
|
||||||
Please include "GPG finger print" in the subject line.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>User's manual</b><p>
|
|
||||||
<a name="manual"></a>
|
|
||||||
|
|
||||||
|
|
||||||
The user manual is provided as a <a href="../downloads/manual.pdf">PDF document (manual.pdf)</a>.
|
|
||||||
It contains several basic examples of using dvdisaster and some background
|
|
||||||
information on its way of working.
|
|
||||||
You do not need to download the manual if you already have the
|
|
||||||
source code archive - a copy of the manual is contained there.
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Codec specification</b><p>
|
|
||||||
|
|
||||||
The specification of the RS01, RS02 and RS03 codec
|
|
||||||
is available as a <a href="../downloads/codecs.pdf">PDF document (codecs.pdf)</a>.
|
|
||||||
|
|
||||||
This document is meant to discuss the codec implementation among developers.
|
|
||||||
It requires knowledge in the area of coding theory and is not meant as end
|
|
||||||
user documentation.
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr><td>
|
|
||||||
<a href="http://pdfreaders.org/"><img src="http://pdfreaders.org/graphics/pdfreaders-lang-neutral.png" alt="pdfreaders.org" /></a></td>
|
|
||||||
<td>Software for reading the PDF document is available at <a href="http://pdfreaders.org">PDFreaders.org</a>.</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>Last Windows release</b><p>
|
|
||||||
<a name="windows"></a>
|
|
||||||
|
|
||||||
A native Windows fork of dvdisaster will be started soon by another developer,
|
|
||||||
but there is nothing to announce yet.
|
|
||||||
In the mean time, please continue using the last published version for Windows (0.72.3):
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>Source code: </td>
|
|
||||||
<td><a href="../downloads/dvdisaster-0.72.3.tar.bz2">dvdisaster-0.72.3.tar.bz2</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.72.3.tar.bz2.gpg">digital signature</a>,
|
|
||||||
MD5 checksum: 4eb09c1aa3cdbc1dafdb075148fb471d)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Binary installer: </td>
|
|
||||||
<td><a href="../downloads/dvdisaster-0.72.3-setup.exe">dvdisaster-0.72.3-setup.exe</a></td>
|
|
||||||
<td>(<a href="../downloads/dvdisaster-0.72.3-setup.exe.gpg">digital signature</a>,
|
|
||||||
MD5 checksum: b6861ba1e8de6d91a2da5342a14870e0)</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/dvdisaster.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Title header -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td align="left">
|
|
||||||
<span class="fxxl"><b>dvdisaster</b> </span>
|
|
||||||
<i>Version 0.79.5 (stable) / 0.79.6 (unstable)</i>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<span class="fxxl"> </span>
|
|
||||||
<a href="../de/datenschutz.html">Deutsch</a> English
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td colspan="2">
|
|
||||||
<table class="navigation" width="100%" cellpadding="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>Navigation:
|
|
||||||
<a href="index.html">Developer site</a> ·
|
|
||||||
<a href="misc.html">Miscellaneous</a>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<b>Privacy policy</b> ·
|
|
||||||
<a href="imprint.html">Contact information</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr><td style="height: 10px"></td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- Main body -->
|
|
||||||
|
|
||||||
<b>Privacy statement for the web sites</b><p>
|
|
||||||
|
|
||||||
dvdisaster.com,
|
|
||||||
dvdisaster.de,
|
|
||||||
dvdisaster.net,
|
|
||||||
dvdisaster.org
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
The dvdisaster project (<a href="imprint.html">see the contact page for representatives</a>)
|
|
||||||
provides its internet sites to you without requiring a registration or entering personal data.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Server log files</b><p>
|
|
||||||
|
|
||||||
The servers of this internet site create no logs about your visit.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Cookies</b><p>
|
|
||||||
|
|
||||||
This internet site does not use cookies.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Links to other internet sites</b><p>
|
|
||||||
|
|
||||||
Our internet pages contain links to other internet sites.
|
|
||||||
The dvdisaster project has no control over their publishers,
|
|
||||||
and whether they follow our privacy policy.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<b>Further development of these internet pages</b><p>
|
|
||||||
|
|
||||||
Further development of these internet pages may require our privacy policy
|
|
||||||
to be changed. Please revisit this policy statement occasionally and watch for
|
|
||||||
change notices.
|
|
||||||
|
|
||||||
<!-- Page footer -->
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" border="0">
|
|
||||||
<tr><td colspan="2" style="width:100%; height:10px;"></td></tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td></tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<span class="fs">
|
|
||||||
<i> Copyright 2004-2017 Carsten Gnörlich.<br>
|
|
||||||
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td colspan="2" class="hsep"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
Before Width: | Height: | Size: 3.4 KiB |
@@ -11,7 +11,7 @@ archclean: clean
|
|||||||
single:
|
single:
|
||||||
pdflatex manual
|
pdflatex manual
|
||||||
|
|
||||||
manual.pdf: preface.tex background.tex defect-reporting.tex howtos.tex manual.tex qa.tex burning-compatibility.tex download.tex local.tex overview.tex
|
manual.pdf: preface.tex background.tex defect-reporting.tex howtos.tex manual.tex qa.tex download.tex local.tex overview.tex
|
||||||
pdflatex manual
|
pdflatex manual
|
||||||
pdflatex manual
|
pdflatex manual
|
||||||
pdflatex manual
|
pdflatex manual
|
||||||
|
|||||||
@@ -1,196 +0,0 @@
|
|||||||
\section{Burning software compatibility}
|
|
||||||
\label{burning-compatibility}
|
|
||||||
|
|
||||||
dvdisaster must be used in conjunction with a CD/DVD/BD writing suite (``burning program'')
|
|
||||||
in order to generate ISO images and to write augmented ISO image files. Unfortunately,
|
|
||||||
not all burning programs provide the required features to work with dvdisaster.
|
|
||||||
Some burning programs may even produce media and/or ISO images which can not be
|
|
||||||
used with dvdisaster.
|
|
||||||
|
|
||||||
\smallskip
|
|
||||||
|
|
||||||
For your convenience, the dvdisaster project has tested some free burning programs
|
|
||||||
available for GNU/Linux. Please note that this list will always be incomplete and
|
|
||||||
only be a snapshot of a certain program version. It is likely to be outdated when
|
|
||||||
you are reading this page. It is therefore recommended that you test your specific
|
|
||||||
burning program version by following the \tlnk{howto-compat-overview}{instructions} given
|
|
||||||
in the howto section.
|
|
||||||
|
|
||||||
\paragraph{Recommended software}\quad
|
|
||||||
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
The dvdisaster project recommends either using the command line tools
|
|
||||||
listed below or using the K3B burning application (which is actually
|
|
||||||
a graphical wrapper around the command line tools).
|
|
||||||
|
|
||||||
\paragraph{Burning program compatibility table}\quad
|
|
||||||
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
\newcommand{\tgrey}[1]{\cellcolor{dkgrey}#1}
|
|
||||||
\newcommand{\tturquoise}[1]{\cellcolor{turquoise}#1}
|
|
||||||
\newcommand{\tpink}[1]{\cellcolor{pink}#1}
|
|
||||||
\newcommand{\tblue}[1]{\cellcolor{dkblue}#1}
|
|
||||||
|
|
||||||
\newcommand{\tred}[1]{&\begin{minipage}{10mm}{\cellcolor{ltred}#1}\end{minipage}}
|
|
||||||
\newcommand{\tyellow}[1]{&\begin{minipage}{10mm}\cellcolor{ltyellow}{#1}\end{minipage}}
|
|
||||||
\newcommand{\ok}{&\cellcolor{ltgreen}OK}
|
|
||||||
\newcommand{\na}{&\cellcolor{ltgrey}n.a.}
|
|
||||||
\newcommand{\nt}{&\begin{minipage}{10mm}{not tested}\end{minipage}}
|
|
||||||
|
|
||||||
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|}
|
|
||||||
\hline
|
|
||||||
\tgrey{} & \tgrey{} & \tgrey{} & \tturquoise{Create} &
|
|
||||||
\multicolumn{3}{c|}{\tpink{Burning images}} & \multicolumn{3}{c|}{\tblue{Burning images}} \\
|
|
||||||
|
|
||||||
\tgrey{Program} & \tgrey{Version} & \tgrey{Testing} & \tturquoise{ISO/} &
|
|
||||||
\multicolumn{3}{c|}{\tpink{for error}} &
|
|
||||||
\multicolumn{3}{c|}{\tblue{with embedded}} \\
|
|
||||||
|
|
||||||
\tgrey{} & \tgrey{} & \tgrey{Date} & \tturquoise{UDF} &
|
|
||||||
\multicolumn{3}{c|}{\tpink{correction files}} &
|
|
||||||
\multicolumn{3}{c|}{\tblue{error correction}} \\
|
|
||||||
|
|
||||||
\cline{5-10}
|
|
||||||
\tgrey{} & \tgrey{} & \tgrey{} &\tturquoise{Image} &\tpink{CD} &\tpink{DVD} &\tpink{BD} &\tblue{CD} &\tblue{DVD} &\tblue{BD} \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
\multicolumn{10}{|c|}{\cellcolor{ltgrey}Command line tools} \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
genisoimage & 1.1.11 & Jul'14 \ok \na \na \na \na \na \na \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
wodim & 1.1.11 & Jul'14 \na \ok \ok \na \ok \ok \na \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
growisofs & 7.1 & Jul'14 \na \na \ok \ok \na \ok \ok \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
\multicolumn{10}{|c|}{\cellcolor{ltgrey}Tools with a graphical user interface} \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
brasero & 3.4.1 & Jul'14 \tred{no UDF$^{1)}$} \tyellow{avoid$^{2)}$} \ok \na \tyellow{avoid$^{2)}$} \ok \na \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
K3B & 2.0.2 & Jul'14 \ok \ok \ok \na \ok \ok \na \\
|
|
||||||
|
|
||||||
\hline
|
|
||||||
xfburn & 0.4.3 & Jul'14 \ok \tyellow{re-read only$^{3)}$} \tyellow{re-read only$^{3)}$} \na \tred{do not use$^{3)}$} \tred{do not use$^{3)}$} \na \\
|
|
||||||
\hline
|
|
||||||
\end{tabular}
|
|
||||||
|
|
||||||
\bigskip
|
|
||||||
|
|
||||||
\paragraph{Testing conditions and objectives}\quad
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
Testing was done using Debian 7.5 (wheezy) on an amd64 machine.
|
|
||||||
Versions of the tested writing software are indicated in the table above.
|
|
||||||
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
Evaluation of the burning software is done for the two major cases where
|
|
||||||
interoperability with dvdisaster is required:
|
|
||||||
|
|
||||||
\bigskip
|
|
||||||
|
|
||||||
a) Creating error correction files
|
|
||||||
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
The burning program is used to assemble an ISO image from a selected set of files,
|
|
||||||
and to write a CD, DVD or BD disc from it. An \tlnk{howto-eccfile}{error correction file} will
|
|
||||||
be created to protect this medium.
|
|
||||||
|
|
||||||
\smallskip
|
|
||||||
|
|
||||||
There are two ways of obtaining the ISO image for creating the error correction file:
|
|
||||||
|
|
||||||
\begin{enumerate}
|
|
||||||
\item The burning program is used to create an ISO image which is stored on hard disk.
|
|
||||||
This image is used for burning the medium and for creating the error correction file.
|
|
||||||
If the writing software creates a medium which does not exactly match the image,
|
|
||||||
the resulting error correction file may be useless.
|
|
||||||
A respective \tlnk{howto-compat-file}{testing method} is described
|
|
||||||
in the ``Howtos'' section. An ``OK'' in the table above indicates that
|
|
||||||
this test has been passed. But you are strongly advised to
|
|
||||||
\tlnk{howto-compat-file}{do your own test} at least
|
|
||||||
once to make sure that you are working on the same versions and premises.
|
|
||||||
|
|
||||||
\smallskip
|
|
||||||
|
|
||||||
If it is not possible to use a pre-made ISO image for both writing the medium
|
|
||||||
and for creating the error correction file, the writing software is
|
|
||||||
rated ``Re-read only'' in the table. In that case, use the alternative
|
|
||||||
approach described below (topic 2).
|
|
||||||
|
|
||||||
\item The burning program is used to write a medium, either by using a
|
|
||||||
pre-made ISO image or by creating the image on-the-fly while writing
|
|
||||||
the medium. Afterwards, the pre-made ISO image is discarded. dvdisaster
|
|
||||||
is used to read back a new ISO image from the newly written medium. From
|
|
||||||
this newly created ISO image the error correction file is created. This
|
|
||||||
process should always work; if not, the respective burning software is
|
|
||||||
marked as being unusable in the table.
|
|
||||||
\end{enumerate}
|
|
||||||
|
|
||||||
\bigskip
|
|
||||||
|
|
||||||
b) Augmenting a medium with error correction data
|
|
||||||
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
\tlnk{howto-augment-write-iso}{Creating a medium}
|
|
||||||
\tlnk{howto-augment}{with embedded error correction data} is comprised of
|
|
||||||
several sub tasks: First, the burning application converts a selection of files
|
|
||||||
into an ISO image stored on hard disk. dvdisaster augments the image residing
|
|
||||||
on the hard disk with error correction data. Then, the burning application
|
|
||||||
writes the augmented image to the CD, DVD or BD. The ISO image content or format
|
|
||||||
must not be altered during the writing process. Especially, the added error correction
|
|
||||||
sectors must not be removed and no padding sectors must be added to the image during
|
|
||||||
the writing process. The ``Howto'' section describes
|
|
||||||
\tlnk{howto-compat-augment}{a test for compatibility between
|
|
||||||
a writing software and dvdisaster}. An ``OK'' in the table above indicates that this
|
|
||||||
test has been passed; otherwise you can not use the respective software for writing
|
|
||||||
augmented images. You are strongly advised to \tlnk{howto-compat-augment}{do your own test} at
|
|
||||||
least once to make sure that you are working on the same versions
|
|
||||||
and premises even with software marked as compatible in the table above.
|
|
||||||
|
|
||||||
\bigskip
|
|
||||||
|
|
||||||
c) Creating ISO images
|
|
||||||
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
In addition, the table indicates whether the burning application can convert
|
|
||||||
a selection of files into an ISO image and store that ISO image on hard disk
|
|
||||||
for further processing with dvdisaster.
|
|
||||||
|
|
||||||
\paragraph{Notes (why a certain software failed a test)}\quad
|
|
||||||
\medskip
|
|
||||||
|
|
||||||
$^{1)}${\bf brasero} can only create ISO images, not ISO/UDF. This is not
|
|
||||||
recommended for DVD-Video authoring and has the disadvantage that files
|
|
||||||
with sizes greater than 2GiB can not be used in a portable way (the tested
|
|
||||||
version can not use files larger than 2GiB at all even if it says otherwise).
|
|
||||||
|
|
||||||
\bigskip
|
|
||||||
|
|
||||||
$^{2)}${\bf brasero} does not support the ``disc at once'' writing strategy. This
|
|
||||||
creates two spurious unreadable sectors at the end of CD media. dvdisaster
|
|
||||||
can handle such media, but will issue a warning and requires a preferences
|
|
||||||
setting each time such media is processed.
|
|
||||||
|
|
||||||
\bigskip
|
|
||||||
|
|
||||||
$^{3)}${\bf xfburn} can not be used to write RS02/RS03 augmented images due to a
|
|
||||||
wrong implementation of padding sector handling. In a correct implementation,
|
|
||||||
a burning program would add 150 zero padding sectors to an image it has created
|
|
||||||
itself. However padding sectors must never be added to an image which was created
|
|
||||||
or manipulated by a foreign application, such as an image being augmented by dvdisaster.
|
|
||||||
This results in the image being read back with wrong checksums, and dvdisaster will
|
|
||||||
rightfully complain that the ``Image file is 150 sectors longer than expected.''.
|
|
||||||
Error correction files can - for the same reason - not be used when created from
|
|
||||||
the original image, but it is possible to re-read the image from the written
|
|
||||||
medium and create error correction files from that image.
|
|
||||||
@@ -15,8 +15,8 @@ the \href{http://www.gnu.org/licenses/gpl-3.0.txt}{GNU General Public License v3
|
|||||||
|
|
||||||
\bigskip
|
\bigskip
|
||||||
|
|
||||||
The dvdisaster developer site (\url{https://web.archive.org/web/20180428070843/http://dvdisaster.net}) contains
|
The dvdisaster developer site (\homepage) contains
|
||||||
the latest source code releases for the FreeBSD, GNU/Linux and NetBSD
|
source code releases for the FreeBSD, GNU/Linux and NetBSD
|
||||||
operating systems. These are mostly aimed at maintainers of binary packages for
|
operating systems. These are mostly aimed at maintainers of binary packages for
|
||||||
the beforementioned platforms. As an end user you might find it more convenient
|
the beforementioned platforms. As an end user you might find it more convenient
|
||||||
to install dvdisaster from the package system of your operating system bundle or
|
to install dvdisaster from the package system of your operating system bundle or
|
||||||
@@ -36,7 +36,7 @@ is optional; you can use dvdisaster directly from the build tree.
|
|||||||
\paragraph{Hardware requirements}\quad
|
\paragraph{Hardware requirements}\quad
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item x86, PowerPC or Sparc processor;
|
\item x86, ARM or PowerPC processor;
|
||||||
\item an up-to-date CD/DVD/BD drive with ATAPI, SATA or SCSI interface;
|
\item an up-to-date CD/DVD/BD drive with ATAPI, SATA or SCSI interface;
|
||||||
\item enough hard disk space for creating .iso images from processed media.
|
\item enough hard disk space for creating .iso images from processed media.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@@ -73,7 +73,7 @@ NetBSD & 6.1.5 \\
|
|||||||
|
|
||||||
\medskip
|
\medskip
|
||||||
|
|
||||||
Support for Windows and Mac OS has been ended
|
Support for Windows and Mac OS X has been ended
|
||||||
and is not planned to be resumed in the
|
and is not planned to be resumed in the
|
||||||
future (see \tlnk{qa-discontinued-os}{QA item 2.4 for an explanation)}.
|
future (see \tlnk{qa-discontinued-os}{QA item 2.4 for an explanation)}.
|
||||||
|
|
||||||
@@ -93,6 +93,13 @@ won't do, we have compiled the following list:
|
|||||||
|
|
||||||
\smallskip
|
\smallskip
|
||||||
|
|
||||||
|
The dvdisaster project uses the following web site for supplying software downloads:
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\homepage
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\begin{comment}
|
||||||
The dvdisaster project uses the following internet domains for publishing
|
The dvdisaster project uses the following internet domains for publishing
|
||||||
its web sites and supplying software downloads:
|
its web sites and supplying software downloads:
|
||||||
|
|
||||||
@@ -106,6 +113,8 @@ dvdisaster.org
|
|||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
All domains are forwarded to the same site at dvdisaster.net.
|
All domains are forwarded to the same site at dvdisaster.net.
|
||||||
|
\end{comment}
|
||||||
|
|
||||||
No other internet or download sites are run by the dvdisaster project.
|
No other internet or download sites are run by the dvdisaster project.
|
||||||
|
|
||||||
\paragraph{No money or personal data required.}\quad
|
\paragraph{No money or personal data required.}\quad
|
||||||
|
|||||||
@@ -2069,9 +2069,8 @@ want to re-invent medium writing in dvdisaster, as a lot of useful programs
|
|||||||
have already been written for this task. You should however pick a writing
|
have already been written for this task. You should however pick a writing
|
||||||
application which supports SAO/DAO (session at once / disc at once) writing
|
application which supports SAO/DAO (session at once / disc at once) writing
|
||||||
on CD media and does not modify ISO images supplied by third-party software
|
on CD media and does not modify ISO images supplied by third-party software
|
||||||
(like dvdisaster). Some common free burning programs for GNU/Linux have been
|
(like dvdisaster). Not all burning programs are \tlnk{howto-compat-overview}{compatible with dvdisaster}, so new programs should be
|
||||||
\tlnk{burning-compatibility}{evaluated in the burning software compatibility section}.
|
\tlnk{howto-compat-augment}{checked before using}. For a start we recommend the K3B burning program.
|
||||||
For a start try using the K3B burning program.
|
|
||||||
|
|
||||||
\bigskip
|
\bigskip
|
||||||
|
|
||||||
@@ -3625,14 +3624,6 @@ writing the error correction data to the medium. Make sure that your
|
|||||||
writing software does \tlnk{howto-compat-augment}{correctly transfer the error correction data}
|
writing software does \tlnk{howto-compat-augment}{correctly transfer the error correction data}
|
||||||
when using it with augmented images for the first time.
|
when using it with augmented images for the first time.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\smallskip
|
|
||||||
|
|
||||||
Please see also the \tlnk{burning-compatibility}{burning software compatibility list}. From time
|
|
||||||
to time the dvdisaster project evaluates some of the most popular burning
|
|
||||||
software for the GNU/Linux platform and summarizes the results there.
|
|
||||||
|
|
||||||
%\newpage
|
|
||||||
|
|
||||||
\subsubsection{Testing compatibility with CD/DVD/BD writing software for error correction files}
|
\subsubsection{Testing compatibility with CD/DVD/BD writing software for error correction files}
|
||||||
\label{howto-compat-file}
|
\label{howto-compat-file}
|
||||||
@@ -3646,6 +3637,8 @@ In order to save time you do the following:
|
|||||||
\item You create the error correction file from the same image.
|
\item You create the error correction file from the same image.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
\paragraph{Possible incompatibility:} The writing software creates a medium which
|
\paragraph{Possible incompatibility:} The writing software creates a medium which
|
||||||
does not exactly match the image. This might prevent the error correction from recovering
|
does not exactly match the image. This might prevent the error correction from recovering
|
||||||
the medium contents when it becomes defective.
|
the medium contents when it becomes defective.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
\documentclass[12pt,a4paper,twoside]{article}
|
\documentclass[12pt,a4paper,twoside]{article}
|
||||||
|
\usepackage[utf8x]{inputenc} % Aktiviert Eingabe von unicode-Zeichensätzen
|
||||||
\usepackage{times} % Skalierbarer und lesbarer Zeichensatz
|
\usepackage{times} % Skalierbarer und lesbarer Zeichensatz
|
||||||
\usepackage{ucs} % Benötigt für Eingabe von unicode-Zeichensätzen
|
\usepackage{ucs} % Benötigt für Eingabe von unicode-Zeichensätzen
|
||||||
\usepackage[utf8x]{inputenc} % Aktiviert Eingabe von unicode-Zeichensätzen
|
|
||||||
\usepackage{epsfig} % Makros zum Einfügen von Grafiken
|
\usepackage{epsfig} % Makros zum Einfügen von Grafiken
|
||||||
\usepackage{anysize} % Makros zum Einstellen der Seitenränder
|
\usepackage{anysize} % Makros zum Einstellen der Seitenränder
|
||||||
%\usepackage{makeidx} % Makros zum Erstellen des Indexes
|
%\usepackage{makeidx} % Makros zum Erstellen des Indexes
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
\usepackage{color}
|
\usepackage{color}
|
||||||
\usepackage[table]{xcolor}
|
\usepackage[table]{xcolor}
|
||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
|
\usepackage{comment}
|
||||||
|
|
||||||
\marginsize{30mm}{20mm}{20mm}{20mm} % Seitenränder links, rechts, oben, unten
|
\marginsize{30mm}{20mm}{20mm}{20mm} % Seitenränder links, rechts, oben, unten
|
||||||
\parindent0em % Keine amerikanische Einrückung am Anfang von Paragraphen
|
\parindent0em % Keine amerikanische Einrückung am Anfang von Paragraphen
|
||||||
@@ -40,7 +41,7 @@
|
|||||||
|
|
||||||
\hypersetup{
|
\hypersetup{
|
||||||
pdftitle={dvdisaster User's Manual},
|
pdftitle={dvdisaster User's Manual},
|
||||||
pdfauthor={Carsten Gnörlich},
|
pdfauthor={Written by the dvdisaster development team},
|
||||||
colorlinks=true,
|
colorlinks=true,
|
||||||
linkcolor=linkblue,
|
linkcolor=linkblue,
|
||||||
citecolor=linkblue,
|
citecolor=linkblue,
|
||||||
@@ -72,7 +73,7 @@
|
|||||||
\definecolor{lightorange}{RGB}{255,224,150}
|
\definecolor{lightorange}{RGB}{255,224,150}
|
||||||
\pagecolor{lightorange}
|
\pagecolor{lightorange}
|
||||||
\title{The dvdisaster User's Manual}
|
\title{The dvdisaster User's Manual}
|
||||||
\author{Carsten Gnörlich\\carsten@dvdisaster.org}
|
\author{Written by the dvdisaster development team\\support@dvdisaster.org}
|
||||||
\date{}
|
\date{}
|
||||||
\maketitle
|
\maketitle
|
||||||
\thispagestyle{empty}
|
\thispagestyle{empty}
|
||||||
@@ -92,7 +93,7 @@ for optical media such as CD, DVD and BD discs.
|
|||||||
Use cases for creating ecc data, recovering defective media
|
Use cases for creating ecc data, recovering defective media
|
||||||
using ecc data and for general maintenanance of optical
|
using ecc data and for general maintenanance of optical
|
||||||
media are given.
|
media are given.
|
||||||
See \url{http://dvdisaster.org} for additional resources on
|
See \homepage for additional resources on
|
||||||
the dvdisaster project, e.g. for the {\em blue} manual (codecs.pdf)
|
the dvdisaster project, e.g. for the {\em blue} manual (codecs.pdf)
|
||||||
containing a formal specification of the error correction data format.
|
containing a formal specification of the error correction data format.
|
||||||
\end{abstract}
|
\end{abstract}
|
||||||
@@ -100,9 +101,10 @@ containing a formal specification of the error correction data format.
|
|||||||
\vfill
|
\vfill
|
||||||
\begin{center}
|
\begin{center}
|
||||||
{\em
|
{\em
|
||||||
Copyright 2008-2017 Carsten Gnörlich.
|
Copyright 2008-2017 Carsten Gnörlich.\\
|
||||||
Verbatim copying and distribution of this entire article is permitted in any medium,
|
Copyright 2019-2021 The dvdisaster development team.\\
|
||||||
provided this notice is preserved.}
|
Verbatim copying and distribution of this entire article is permitted in
|
||||||
|
any medium, provided this notice is preserved.}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
@@ -131,9 +133,6 @@ provided this notice is preserved.}
|
|||||||
\input{background}
|
\input{background}
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\input{burning-compatibility}
|
|
||||||
\newpage
|
|
||||||
|
|
||||||
\input{defect-reporting}
|
\input{defect-reporting}
|
||||||
|
|
||||||
\label{LastPage}\label{missing}
|
\label{LastPage}\label{missing}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ protected media, you're looking at the wrong place. Such functions are
|
|||||||
outside the scope of dvdisaster's internal design and goals.
|
outside the scope of dvdisaster's internal design and goals.
|
||||||
Contrary to some myths saying otherwise: dvdisaster contains
|
Contrary to some myths saying otherwise: dvdisaster contains
|
||||||
no hidden program fragments or switches for reading protected discs.
|
no hidden program fragments or switches for reading protected discs.
|
||||||
Check the source code for yourself if you don't trust me.
|
Check the source code for yourself if you don't trust us.
|
||||||
|
|
||||||
|
|
||||||
\subsection{How to use this manual}
|
\subsection{How to use this manual}
|
||||||
@@ -79,9 +79,8 @@ and finally a few \tlnk{background-eccfile-storage}{hints for storing error corr
|
|||||||
\smallskip
|
\smallskip
|
||||||
|
|
||||||
As not all optical disc burning software may be compatible with dvdisaster,
|
As not all optical disc burning software may be compatible with dvdisaster,
|
||||||
you might want to check
|
you might want to
|
||||||
the \tlnk{burning-compatibility}{compatibility table} and the additional
|
the \tlnk{howto-compat-overview}{perform compatibility tests} before using it .
|
||||||
information provided with it.
|
|
||||||
|
|
||||||
\smallskip
|
\smallskip
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,19 @@
|
|||||||
\section*{Preface}
|
\section*{Preface}
|
||||||
|
\markboth{Preface}{Preface}
|
||||||
\label{preface}
|
\label{preface}
|
||||||
|
|
||||||
|
After the publishing of version 0.79.5, the project has been dormant for another half decade. As time has passed by, it is foreseeable that optical media will become extinct just like floppy discs did long ago. Still, it is important to preserve the contents of already existing optical media. Towards this end, we will maintain dvdisaster to keep it usable on current hardware and OS versions.
|
||||||
|
|
||||||
|
We do not plan for a rapid release cycle. Neither will many new features be introduduced like it was at the beginning of the project. Instead, we will strive to fill in the missing gaps left over from the still open RS03 release cycle. Afterwards, dvdisaster shall be kept sound and complete as long as optical media are still in use.
|
||||||
|
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
{\em -- -- The dvdisaster development team, Spring 2021}
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\section*{Preface for version 0.79.5}
|
||||||
|
|
||||||
Since the release of dvdisaster 0.79.3\footnote{Version 0.79.4 was never finished
|
Since the release of dvdisaster 0.79.3\footnote{Version 0.79.4 was never finished
|
||||||
and released.}, nearly five years have passed.
|
and released.}, nearly five years have passed.
|
||||||
This was partly due to changed circumstances in its
|
This was partly due to changed circumstances in its
|
||||||
|
|||||||
@@ -359,6 +359,18 @@ Usable media by type:
|
|||||||
You are welcome, of course, to provide an unoffical translation of the
|
You are welcome, of course, to provide an unoffical translation of the
|
||||||
project documentation on your own webspace and at your own discretion. }
|
project documentation on your own webspace and at your own discretion. }
|
||||||
|
|
||||||
|
\qa{There are problems opening this manual from dvdisaster\label{qa-manual}}
|
||||||
|
{dvdisaster uses {\tt xdg-open} for bringing up the PDF viewer. {\tt xdg-open} keeps a record of file types and applications capable of displaying them. However on some systems, {\tt xdg-open} is either not configured properly for viewing PDF, or misconfigured to use inappropriate programs like {\em Gimp}.
|
||||||
|
|
||||||
|
\smallskip
|
||||||
|
|
||||||
|
\paragraph{Remedy.} Configure {\tt xdg-open} properly. Usually the configuration is found in the ``settings'' menu of your desktop. As an alternative, use the command line to configure it for {\em xpdf}:
|
||||||
|
|
||||||
|
\smallskip
|
||||||
|
|
||||||
|
{\tt xdg-mime default xpdf.desktop application/pdf}}
|
||||||
|
|
||||||
|
|
||||||
%\newpage
|
%\newpage
|
||||||
|
|
||||||
\subsection{Error messages}
|
\subsection{Error messages}
|
||||||
|
|||||||
@@ -1,83 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
/* dvdisaster: Additional error correction for optical media.
|
|
||||||
* Copyright (C) 2004-2017 Carsten Gnoerlich.
|
|
||||||
*
|
|
||||||
* Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
|
|
||||||
* Project homepage: http://www.dvdisaster.org
|
|
||||||
*
|
|
||||||
* This file is part of dvdisaster.
|
|
||||||
*
|
|
||||||
* dvdisaster is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* dvdisaster is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
// DVDISASTER_GUI_FILE
|
|
||||||
|
|
||||||
#include "dvdisaster.h"
|
|
||||||
|
|
||||||
#include "inlined-icons.h"
|
|
||||||
|
|
||||||
/***
|
|
||||||
*** Create our icon factory
|
|
||||||
***/
|
|
||||||
|
|
||||||
static GdkPixbuf* create_icon(GtkIconFactory *ifact, char *name, const guint8 *inline_data)
|
|
||||||
{ GdkPixbuf *pb;
|
|
||||||
GtkIconSet *iset;
|
|
||||||
int width, height, rowstride;
|
|
||||||
|
|
||||||
/* gdk_pixbuf_new_from_inline() deprecated; recommended to replace with GResource XML crap.
|
|
||||||
One day I'll get rid of GTK+. I swear.
|
|
||||||
|
|
||||||
pb = gdk_pixbuf_new_from_inline(-1, inline_data, FALSE, NULL);
|
|
||||||
*/
|
|
||||||
|
|
||||||
rowstride = (inline_data[12] << 24) + (inline_data[13] << 16) + (inline_data[14] << 8) + inline_data[15];
|
|
||||||
width = (inline_data[16] << 24) + (inline_data[17] << 16) + (inline_data[18] << 8) + inline_data[19];
|
|
||||||
height = (inline_data[20] << 24) + (inline_data[21] << 16) + (inline_data[22] << 8) + inline_data[23];
|
|
||||||
|
|
||||||
pb = gdk_pixbuf_new_from_data(inline_data+24, GDK_COLORSPACE_RGB, TRUE, 8,
|
|
||||||
width, height, rowstride, NULL, NULL);
|
|
||||||
|
|
||||||
iset = gtk_icon_set_new_from_pixbuf(pb);
|
|
||||||
|
|
||||||
gtk_icon_factory_add(ifact, name, iset);
|
|
||||||
return pb;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CreateIconFactory()
|
|
||||||
{ GtkIconFactory *ifact;
|
|
||||||
|
|
||||||
/*** Create and register our icon factory */
|
|
||||||
|
|
||||||
ifact = gtk_icon_factory_new();
|
|
||||||
gtk_icon_factory_add_default(ifact);
|
|
||||||
|
|
||||||
/*** Our action icons */
|
|
||||||
|
|
||||||
create_icon(ifact, "dvdisaster-open-ecc", dvdisaster_open_ecc);
|
|
||||||
create_icon(ifact, "dvdisaster-open-img", dvdisaster_open_img);
|
|
||||||
create_icon(ifact, "dvdisaster-cd", dvdisaster_cd);
|
|
||||||
|
|
||||||
create_icon(ifact, "dvdisaster-read", dvdisaster_read);
|
|
||||||
Closure->windowIcon = create_icon(ifact, "dvdisaster-create", dvdisaster_create);
|
|
||||||
create_icon(ifact, "dvdisaster-scan", dvdisaster_scan);
|
|
||||||
create_icon(ifact, "dvdisaster-fix", dvdisaster_fix);
|
|
||||||
create_icon(ifact, "dvdisaster-verify", dvdisaster_verify);
|
|
||||||
|
|
||||||
/*** Stock GTK icons to defeat theming */
|
|
||||||
|
|
||||||
create_icon(ifact, "dvdisaster-gtk-help", dvdisaster_gtk_help);
|
|
||||||
create_icon(ifact, "dvdisaster-gtk-index", dvdisaster_gtk_index);
|
|
||||||
create_icon(ifact, "dvdisaster-gtk-preferences", dvdisaster_gtk_preferences);
|
|
||||||
create_icon(ifact, "dvdisaster-gtk-quit", dvdisaster_gtk_quit);
|
|
||||||
create_icon(ifact, "dvdisaster-gtk-stop", dvdisaster_gtk_stop);
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
Files starting with "gtk-" have been taken from
|
|
||||||
the GTK+ 2.18 distribution in order to override
|
|
||||||
theming and keep the GUI consistent with the
|
|
||||||
online documentation.
|
|
||||||
BIN
icons/blank.png
|
Before Width: | Height: | Size: 757 B |
BIN
icons/cd.png
|
Before Width: | Height: | Size: 1.5 KiB |
87
icons/cd.svg
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
<svg version="1.1" viewBox="0 0 684.52 684.52" width="24" height="24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linearGradient5641" x1="193.55" x2="282.26" y1="407.2" y2="287.85" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#f5f5f5" offset="0"/>
|
||||||
|
<stop stop-color="#ffaaaa" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5661" x1="358.06" x2="230.65" y1="273.33" y2="328.17" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#f5f5f5" offset="0"/>
|
||||||
|
<stop stop-color="#ffaaaa" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5669" x1="424.19" x2="575.81" y1="250.75" y2="347.52" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#f5f5f5" offset="0"/>
|
||||||
|
<stop stop-color="#aaeeff" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5677" x1="580.65" x2="511.29" y1="362.04" y2="292.68" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#f5f5f5" offset="0"/>
|
||||||
|
<stop stop-color="#aaeeff" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5685" x1="590.32" x2="643.55" y1="353.98" y2="460.43" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#f5f5f5" offset="0"/>
|
||||||
|
<stop stop-color="#b3ff80" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5699" x1="638.71" x2="620.97" y1="515.27" y2="410.43" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#f5f5f5" offset="0"/>
|
||||||
|
<stop stop-color="#ccffaa" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5767" x1="630.65" x2="666.13" y1="624.94" y2="471.72" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffeeaa" offset="0"/>
|
||||||
|
<stop stop-color="#ffe9aa" offset=".052155"/>
|
||||||
|
<stop stop-color="#ffe5aa" offset=".10431"/>
|
||||||
|
<stop stop-color="#ffddaa" offset=".20862"/>
|
||||||
|
<stop stop-color="#ffccaa" offset=".41724"/>
|
||||||
|
<stop stop-color="#ffeeaa" offset=".65517"/>
|
||||||
|
<stop stop-color="#f5f5f5" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5779" x1="627.42" x2="596.77" y1="574.94" y2="633.01" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffccaa" offset="0"/>
|
||||||
|
<stop stop-color="#e9afaf" offset=".5"/>
|
||||||
|
<stop stop-color="#f4d7d7" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5797" x1="433.87" x2="609.68" y1="760.43" y2="612.04" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ff8080" offset="0"/>
|
||||||
|
<stop stop-color="#f4d7d7" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5805" x1="448.39" x2="512.9" y1="712.04" y2="670.1" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffeeaa" offset="0"/>
|
||||||
|
<stop stop-color="#ffaaaa" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5813" x1="462.9" x2="408.06" y1="737.85" y2="749.14" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffeeaa" offset="0"/>
|
||||||
|
<stop stop-color="#e3f4d7" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5821" x1="285.48" x2="424.19" y1="726.56" y2="745.91" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#c6e9af" offset="0"/>
|
||||||
|
<stop stop-color="#e3f4d7" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5829" x1="340.32" x2="214.52" y1="671.72" y2="586.23" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#c6e9af" offset="0"/>
|
||||||
|
<stop stop-color="#dee3db" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath id="center">
|
||||||
|
<path d="m0,0 h684.52 v684.52 h-684.52 z m342.26,242.26 a100,100 0 0 0 0,200 a100,100 0 0 0 0,-200 z"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path="url(#center)">
|
||||||
|
<g transform="translate(-22.258,-173.01)">
|
||||||
|
<circle transform="translate(-35.484,16.129)" cx="400" cy="499.14" r="332.26" fill="#f5f5f5" stroke="#000000" stroke-width="1px"/>
|
||||||
|
<g stroke-width="0">
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m107.67 341.22a332.26 332.26 0 0 1 94.996-109.39l197.34 267.31z" fill="url(#linearGradient5641)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m200.73 233.27a332.26 332.26 0 0 1 115.82-55.739l83.457 321.61z" fill="url(#linearGradient5661)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m470.72 174.49a332.26 332.26 0 0 1 125.85 56.767l-196.56 267.88z" fill="url(#linearGradient5669)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m674.13 311.39a332.26 332.26 0 0 1 40.843 81.975l-314.97 105.77z" fill="url(#linearGradient5685)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m594.34 229.64a332.26 332.26 0 0 1 51.612 46.104l-245.95 223.39z" fill="url(#linearGradient5677)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m714.73 392.66a332.26 332.26 0 0 1 17.524 107.08l-332.26-.60169z" fill="url(#linearGradient5699)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m717.49 597.08a332.26 332.26 0 0 1 -42.528 88.574l-274.97-186.52z" fill="url(#linearGradient5779)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m678.99 679.58a332.26 332.26 0 0 1 -86.271 90.211l-192.72-270.66z" fill="url(#linearGradient5797)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m592.8 769.74a332.26 332.26 0 0 1 -110.01 51.18l-82.788-321.78z" fill="url(#linearGradient5805)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m484.51 820.47a332.26 332.26 0 0 1 -64.896 10.348l-19.612-331.68z" fill="url(#linearGradient5813)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m419.22 830.84a332.26 332.26 0 0 1 -158.36-29.983l139.14-301.72z" fill="url(#linearGradient5821)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m262.06 801.41a332.26 332.26 0 0 1 -122.64-96.135l260.58-206.14z" fill="url(#linearGradient5829)"/>
|
||||||
|
<path transform="translate(-35.484,16.129)" d="m732.26 500.25a332.26 332.26 0 0 1 -14.855 97.129l-317.4-98.245z" fill="url(#linearGradient5767)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<circle cx="342.26" cy="342.26" r="332.26" fill="none" stroke="#000000" stroke-width="20"/>
|
||||||
|
<circle cx="342.26" cy="342.26" r="100" fill="none" stroke="#000000" stroke-width="20"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.0 KiB |
249
icons/close.svg
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="16"
|
||||||
|
height="16"
|
||||||
|
id="svg2"
|
||||||
|
inkscape:label="Pozadí"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docbase="/home/cornelius/GFX/ikony/GTK/my-stuff/24x24"
|
||||||
|
sodipodi:docname="gtk-close.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
inkscape:export-filename="/home/cornelius/GFX/ikony/GTK/my-stuff/24x24/gtk-close.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5148">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5150" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5152" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5911">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5913" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5915" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop5956" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop5958" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5948" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.08108108"
|
||||||
|
offset="1"
|
||||||
|
id="stop5950" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5946"
|
||||||
|
id="linearGradient5952"
|
||||||
|
x1="-5.3511"
|
||||||
|
y1="5.0481853"
|
||||||
|
x2="15.384415"
|
||||||
|
y2="27.678883"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.7639512,-0.7639512,0.7634549,0.7634549,-29.789061,11.470298)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5954"
|
||||||
|
id="linearGradient5960"
|
||||||
|
x1="-4.8494349"
|
||||||
|
y1="5.7728133"
|
||||||
|
x2="4.0133257"
|
||||||
|
y2="25.449255"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.7639512,-0.7639512,0.7634549,0.7634549,-29.784139,11.470299)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5954"
|
||||||
|
id="linearGradient4919"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.5807401,-0.8473808,0.5803628,0.8468302,-20.42943,12.693351)"
|
||||||
|
x1="-4.8494349"
|
||||||
|
y1="5.7728133"
|
||||||
|
x2="4.0133257"
|
||||||
|
y2="25.449255" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5954"
|
||||||
|
id="linearGradient4923"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.5807401,-0.8473808,0.5803628,0.8468302,-20.429431,-11.306649)"
|
||||||
|
x1="-4.8494349"
|
||||||
|
y1="5.7728133"
|
||||||
|
x2="4.0133257"
|
||||||
|
y2="25.449255" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5954"
|
||||||
|
id="linearGradient5906"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.5807401,-0.8473808,0.5803628,0.8468302,-20.42943,12.693351)"
|
||||||
|
x1="-4.8494349"
|
||||||
|
y1="5.7728133"
|
||||||
|
x2="4.0133257"
|
||||||
|
y2="25.449255" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5911"
|
||||||
|
id="linearGradient5917"
|
||||||
|
x1="15.593442"
|
||||||
|
y1="0.31719938"
|
||||||
|
x2="15.645549"
|
||||||
|
y2="34.768784"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.5989436,0,0,0.599606,0.7998062,0.7995311)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5954"
|
||||||
|
id="radialGradient5142"
|
||||||
|
cx="12.376248"
|
||||||
|
cy="6.7325096"
|
||||||
|
fx="12.376248"
|
||||||
|
fy="6.7325096"
|
||||||
|
r="9.999999"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.0812595,0,0,1.0824549,-5.1368659,-2.8938122)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5148"
|
||||||
|
id="radialGradient5154"
|
||||||
|
cx="12.25"
|
||||||
|
cy="19.1875"
|
||||||
|
fx="12.25"
|
||||||
|
fy="19.1875"
|
||||||
|
r="9"
|
||||||
|
gradientTransform="matrix(1,0,0,0.4236111,0,11.059462)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.22090517"
|
||||||
|
width="1.4418103"
|
||||||
|
y="-0.52148104"
|
||||||
|
height="2.0429621"
|
||||||
|
id="filter5280">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="1.6567888"
|
||||||
|
id="feGaussianBlur5282" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#e3e3e3"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1"
|
||||||
|
inkscape:cx="17.985112"
|
||||||
|
inkscape:cy="10.773953"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="16px"
|
||||||
|
height="16px"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="872"
|
||||||
|
inkscape:window-height="670"
|
||||||
|
inkscape:window-x="455"
|
||||||
|
inkscape:window-y="57" />
|
||||||
|
<metadata
|
||||||
|
id="metadata6">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title>gtk close</dc:title>
|
||||||
|
<dc:date>30.3.2007</dc:date>
|
||||||
|
<dc:creator>
|
||||||
|
<cc:Agent>
|
||||||
|
<dc:title>Josef Vybíral</dc:title>
|
||||||
|
</cc:Agent>
|
||||||
|
</dc:creator>
|
||||||
|
<cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/LGPL/2.1/" />
|
||||||
|
</cc:Work>
|
||||||
|
<cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/LGPL/2.1/">
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||||
|
</cc:License>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Vrstva 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<path
|
||||||
|
style="opacity:1;color:#000000;fill:url(#radialGradient5142);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="M 13.179286,1.8084745 C 12.768441,1.3971757 12.106937,1.3971757 11.696093,1.8084745 L 7.9881076,5.5205585 L 4.2801232,1.8084745 C 3.8692785,1.3971757 3.207774,1.3971757 2.7969294,1.8084745 L 1.8081334,2.7983636 C 1.3972888,3.2096624 1.3972888,3.8718983 1.8081334,4.2831971 L 5.5161181,7.9952811 L 1.8081334,11.707366 C 1.3972888,12.118665 1.3972888,12.780899 1.8081334,13.192198 L 2.7969294,14.182088 C 3.207774,14.593386 3.8692785,14.593386 4.2801232,14.182088 L 7.9881076,10.470004 L 11.696093,14.182088 C 12.106937,14.593386 12.768441,14.593386 13.179286,14.182088 L 14.168083,13.192198 C 14.578927,12.780899 14.578927,12.118665 14.168083,11.707366 L 10.460098,7.9952811 L 14.168083,4.2831971 C 14.578927,3.8718983 14.578927,3.2096624 14.168083,2.7983636 L 13.179286,1.8084745 z"
|
||||||
|
id="rect4917" />
|
||||||
|
<path
|
||||||
|
style="opacity:0.41954023;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5917);stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
d="M 12.584404,2.5750795 C 12.426421,2.4169241 12.261699,2.6378948 12.103719,2.7960503 L 7.9836392,6.9715741 L 3.690164,2.6191625 C 3.484578,2.4133493 3.4292506,2.6681775 3.2236647,2.8739906 L 2.7429806,3.3553037 C 2.5373944,3.561117 2.4384535,3.5550022 2.7464713,3.8633605 L 6.9178366,7.9948013 L 2.7465821,12.126131 C 2.5886017,12.284286 2.5444075,12.394758 2.7023879,12.552913 L 3.4340524,13.285386 C 3.5920331,13.443542 3.878866,13.130739 4.0368469,12.972582 L 7.9871304,8.9772795 L 12.110811,13.112165 C 12.316397,13.31798 12.415919,13.450563 12.621504,13.244748 L 13.102189,12.763433 C 13.307775,12.557621 13.307775,12.236776 13.102189,12.030961 L 9.0971278,7.9506071 L 13.179994,3.8738086 C 13.337976,3.7156533 13.429856,3.5540965 13.271871,3.3959409 L 12.584404,2.5750795 z"
|
||||||
|
id="rect4927"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="opacity:0.41954023;color:#000000;fill:url(#radialGradient5154);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5280);enable-background:accumulate"
|
||||||
|
id="path5146"
|
||||||
|
sodipodi:cx="12.25"
|
||||||
|
sodipodi:cy="19.1875"
|
||||||
|
sodipodi:rx="9"
|
||||||
|
sodipodi:ry="3.8125"
|
||||||
|
d="M 21.25,19.1875 A 9,3.8125 0 1 1 3.25,19.1875 A 9,3.8125 0 1 1 21.25,19.1875 z"
|
||||||
|
transform="matrix(0.6829588,0,0,0.4595453,-0.207397,4.9465899)" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 10 KiB |
@@ -1,20 +0,0 @@
|
|||||||
#FIG 3.2
|
|
||||||
Landscape
|
|
||||||
Center
|
|
||||||
Metric
|
|
||||||
A4
|
|
||||||
100.00
|
|
||||||
Single
|
|
||||||
-2
|
|
||||||
1200 2
|
|
||||||
5 1 0 20 0 7 50 0 -1 0.000 0 1 0 0 6300.000 8775.000 6300 6525 4050 8775 6300 11025
|
|
||||||
5 1 0 20 0 7 50 0 -1 0.000 0 0 0 0 6300.000 4275.000 6300 2025 8550 4275 6300 6525
|
|
||||||
5 1 0 1 0 7 50 0 10 0.000 0 1 0 0 11474.998 10456.000 11475 10119 11138 10457 11475 10793
|
|
||||||
5 1 0 1 0 7 55 0 20 0.000 0 0 0 0 11475.002 9782.000 11475 9445 11812 9781 11475 10119
|
|
||||||
5 1 0 1 0 7 59 0 10 0.000 0 0 0 0 11475.000 10125.000 11475 9450 12150 10125 11475 10800
|
|
||||||
1 3 0 20 0 7 50 0 -1 0.000 1 0.0000 6300 4275 569 569 6300 4275 6869 4275
|
|
||||||
1 3 0 20 0 7 50 0 -1 0.000 1 0.0000 6300 8775 544 544 6300 8775 6844 8775
|
|
||||||
1 3 0 20 0 7 50 0 -1 0.000 1 0.0000 6300 6525 4494 4494 6300 6525 10794 6525
|
|
||||||
1 3 0 1 0 7 50 0 10 0.000 1 0.0000 11475 9781 85 85 11475 9781 11560 9781
|
|
||||||
1 3 0 1 0 7 45 0 20 0.000 1 0.0000 11475 10457 81 81 11475 10457 11557 10457
|
|
||||||
1 1 0 1 0 7 60 0 20 0.000 1 0.0000 11475 10125 675 673 11475 10125 12149 10125
|
|
||||||
BIN
icons/create.png
|
Before Width: | Height: | Size: 1.1 KiB |
5
icons/create.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m407.84 27.68c244.16-58.56 512.8 101.28 578.88 343.04 77.6 240-62.56 521.12-300 604.64-225.12 90.88-504.16-16-612.8-232.32-114.08-206.56-51.36-488 139.84-626.4 57.12-43.52 124-73.6 194.08-88.96"/>
|
||||||
|
<path d="m113.76 275.84c83.04-143.36 248.32-234.56 414.08-226.24 112.96 4.16 212 108.8 208.32 222.24 2.56 83.36-48.32 162.56-121.44 200.48-60.48 34.24-134.72 13.76-196.96 42.88-119.36 43.84-190.72 187.52-150.72 308.8 12.16 45.44 40.64 83.52 68.8 120.16-96.16-47.36-183.68-118.08-232.96-215.04-75.36-139.36-71.36-317.6 10.88-453.28m368.32-99.52c-75.84 19.36-95.04 131.52-30.72 175.52 56 46.4 152.32 8.32 159.52-64.48 14.08-70.4-61.28-134.88-128.8-111.04M483.2 689.92c48.8-24.16 110.24 24.32 94.72 77.44-8.16 50.56-79.84 70.4-113.76 32.8-33.6-30.56-22.56-92.32 19.04-110.24" fill="#ffffff"/>
|
||||||
|
<path d="m688.96 80.32c96.64 47.84 184.48 119.04 233.28 217.12 74.72 139.68 69.44 317.6-13.28 452.8-85.92 146.56-258.24 237.44-427.84 223.2-68-6.08-127.84-51.84-162.4-109.12-56.8-91.2-31.2-219.52 53.12-284.96 46.72-42.88 111.2-50.72 171.84-53.92 120-8.8 219.2-116.96 224.32-236.16 7.2-78.08-29.76-151.04-79.04-208.96m-219.84 580.8c-70.08 29.28-76.48 138.4-10.56 175.84 62.4 43.04 158.72-8.96 153.28-85.6 3.68-71.04-80.32-122.24-142.72-90.24M483.36 210.08c48.48-24 109.76 24 94.56 76.8-7.68 50.56-78.72 70.72-113.12 33.92-34.24-30.4-23.52-92.96 18.56-110.72" fill="#4658f5"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
7
icons/fix-symbolic.svg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<style>
|
||||||
|
.blue { fill: #4658f5 !important; }
|
||||||
|
</style>
|
||||||
|
<path d="m130,117 h94.5 c-30,-40 -6.5,-87.3 40.5,-87.3 c47,0 70.5,47.3 40.5,87.3 h94.5 v94.5 c-40,-30 -87.3,-6.5 -87.3,40.5 c0,47 47.3,70.5 87.3,40.5 v121.5 h-94.5 c30,-40 6.5,-87.3 -40.5,-87.3 c-47,0 -70.5,47.3 -40.5,87.3 h-94.5 v-121.5 c-40,30 -87.3,6.5 -87.3,-40.5 c0,-47 47.3,-70.5 87.3,-40.5z" class="blue"/>
|
||||||
|
<path d="m121 9v99h-99v18h99v69.8c-18.4-8.52-37.7-8.56-53.5-1.05-20 9.5-33.8 30.7-33.8 57.3s13.8 47.8 33.8 57.3c15.8 7.51 35.1 7.47 53.5-1.05v96.8h-99v18h99v72h18v-72h85.5l7.2-14.4c-13.3-17.7-14.2-35.7-7.7-49.4 6.5-13.7 20.5-23.5 41-23.5s34.5 9.84 41 23.5c6.5 13.7 5.61 31.6-7.7 49.4l7.2 14.4h85.5v72h18v-72h99v-18h-99v-112l-14.4-7.2c-17.7 13.3-35.7 14.2-49.4 7.7-13.7-6.5-23.5-20.5-23.5-41s9.84-34.5 23.5-41c13.7-6.5 31.6-5.61 49.4 7.7l14.4-7.2v-85.5h99v-18h-99v-99h-18v99h-69.8c8.52-18.4 8.56-37.7 1.05-53.5-9.5-20-30.7-33.8-57.3-33.8s-47.8 13.8-57.3 33.8c-7.51 15.8-7.47 35.1 1.05 53.5h-69.8v-99zm144 29.7c20.5 0 34.5 9.84 41 23.5s5.61 31.6-7.7 49.4l7.2 14.4h85.5v69.8c-18.4-8.52-37.7-8.56-53.5-1.05-20 9.5-33.8 30.7-33.8 57.3s13.8 47.8 33.8 57.3c15.8 7.51 35.1 7.47 53.5-1.05v96.8h-69.8c8.52-18.4 8.56-37.7 1.05-53.5-9.5-20-30.7-33.8-57.3-33.8s-47.8 13.8-57.3 33.8c-7.51 15.8-7.47 35.1 1.05 53.5h-69.8v-112l-14.4-7.2c-17.7 13.3-35.7 14.2-49.4 7.7s-23.5-20.5-23.5-41 9.84-34.5 23.5-41 31.6-5.61 49.4 7.7l14.4-7.2v-85.5h85.5l7.2-14.4c-13.3-17.7-14.2-35.7-7.7-49.4s20.5-23.5 41-23.5z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
BIN
icons/fix.png
|
Before Width: | Height: | Size: 801 B |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 753 B |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 967 B |
|
Before Width: | Height: | Size: 1.0 KiB |
21
icons/icons.gresource.xml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/dvdisaster">
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">cd.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">close.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">create.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">fix-symbolic.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">log.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">manual.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">open-ecc.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">open-img.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">preferences.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">quit.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">read-symbolic.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">scan-symbolic.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">stop.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">strip.svg</file>
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">verify-symbolic.svg</file>
|
||||||
|
</gresource>
|
||||||
|
</gresources>
|
||||||
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#FIG 3.2
|
|
||||||
Landscape
|
|
||||||
Center
|
|
||||||
Metric
|
|
||||||
A4
|
|
||||||
100.00
|
|
||||||
Single
|
|
||||||
-2
|
|
||||||
1200 2
|
|
||||||
4 0 0 50 -1 18 160 0.0000 4 1695 6750 1980 8235 00111\001
|
|
||||||
4 0 0 50 -1 18 160 0.0000 4 1695 6750 1935 3240 01110\001
|
|
||||||
4 0 0 50 -1 18 160 0.0000 4 1695 6750 1935 5670 10011\001
|
|
||||||
64
icons/log.svg
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<svg version="1.0" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linearGradient4392">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#d3d7cf" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient3208">
|
||||||
|
<stop stop-color="#c17d11" offset="0"/>
|
||||||
|
<stop stop-color="#c17d11" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient id="radialGradient4462" cx="42.938" cy="13" r="5.5" gradientTransform="matrix(1 0 0 .87501 0 1.6249)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#f4dbb3" offset="0"/>
|
||||||
|
<stop stop-color="#e9b96e" offset="1"/>
|
||||||
|
</radialGradient>
|
||||||
|
<linearGradient id="linearGradient4464" x1="42.656" x2="42.656" y1="12.818" y2="15.543" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3208"/>
|
||||||
|
<linearGradient id="linearGradient4466" x1="42.656" x2="42.656" y1="12.531" y2="14.543" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3208"/>
|
||||||
|
<linearGradient id="linearGradient4470" x1="42.656" x2="42.656" y1="13.499" y2="15.57" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3208"/>
|
||||||
|
<linearGradient id="linearGradient4472" x1="41.406" x2="41.406" y1="10.062" y2="13.72" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#ffffff" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient4474" x1="43.406" x2="43.406" y1="12.154" y2="13.879" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#ffffff" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient4476" x1="45.469" x2="45.469" y1="12.094" y2="13.782" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#ffffff" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient2262" x1="-48.438" x2="-48.438" y1="2.6537" y2="4.1125" gradientTransform="translate(57,-1)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient4392"/>
|
||||||
|
<linearGradient id="linearGradient2267" x1="-48.438" x2="-48.438" y1="2.6537" y2="4.1125" gradientTransform="translate(57,2)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient4392"/>
|
||||||
|
<linearGradient id="linearGradient2271" x1="-48.438" x2="-48.438" y1="2.6537" y2="4.1125" gradientTransform="translate(57,5)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient4392"/>
|
||||||
|
<linearGradient id="linearGradient2275" x1="-48.438" x2="-48.438" y1="2.6537" y2="4.1125" gradientTransform="translate(57,8)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient4392"/>
|
||||||
|
</defs>
|
||||||
|
<g>
|
||||||
|
<rect x=".5" y=".5" width="13" height="14" rx="2.1224" ry="2.1224" fill="#d3d7cf" stroke="#888a85" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="m2.5 1h9c.831 0 1.5.669 1.5 1.5s-.669 1.5-1.5 1.5h-9c-.831 0-1.5-.669-1.5-1.5s.669-1.5 1.5-1.5z" fill="url(#linearGradient2262)" opacity=".99"/>
|
||||||
|
<path d="m2.5 4h9c.831 0 1.5.669 1.5 1.5s-.669 1.5-1.5 1.5h-9c-.831 0-1.5-.669-1.5-1.5s.669-1.5 1.5-1.5z" fill="url(#linearGradient2267)" opacity=".99"/>
|
||||||
|
<path d="m2.5 7h9c.831 0 1.5.669 1.5 1.5s-.669 1.5-1.5 1.5h-9c-.831 0-1.5-.669-1.5-1.5s.669-1.5 1.5-1.5z" fill="url(#linearGradient2271)" opacity=".99"/>
|
||||||
|
<path d="m2.5 10h9c.831 0 1.5.669 1.5 1.5s-.669 1.5-1.5 1.5h-9c-.831 0-1.5-.669-1.5-1.5s.669-1.5 1.5-1.5z" fill="url(#linearGradient2275)" opacity=".99"/>
|
||||||
|
</g>
|
||||||
|
<path d="m2.625 1.5312c-.62876 0-1.0938.46499-1.0938 1.0938v9.75c0 .62876.46499 1.0938 1.0938 1.0938h8.75c.62876 0 1.0938-.46499 1.0938-1.0938v-9.75c0-.62876-.46499-1.0938-1.0938-1.0938h-8.75z" fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="m8.5 3.5c-1.0882 0-2 .91179-2 2v2c-1.0882 0-2 .91179-2 2v2c0 .68616.15312 1.3067.40625 1.875.22197.078366.46929.125.71875.125h4.7812c1.1758 0 2.125-.9492 2.125-2.125v-4.875c-.010805-.000208-.020361 0-.03125 0-.38904 0-.69042.2388-1 .4375-.30958-.1987-.61096-.4375-1-.4375v-1c0-1.0882-.91179-2-2-2z" fill="#ffffff" opacity=".7" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<g transform="translate(-33,-3)">
|
||||||
|
<path d="m41.5 7.5c-.554 0-1 .446-1 1v4c0-.554-.446-1-1-1s-1 .446-1 1v2c0 2.4687 2.3552 4.0153 4.0647 4h3.0915c1.5203 0 2.8438-1.9444 2.8438-3v-3c0-.554-.446-1-1-1s-1 .446-1 1v-1c0-.554-.446-1-1-1s-1 .446-1 1c0-.554-.446-1-1-1s-1 .446-1 1v-3c0-.554-.446-1-1-1z" fill="url(#radialGradient4462)" stroke="#c17d11" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="m39.531 12.5-.0625 2c0 .92346.43497 1.645 1.0625 2.1875s1.4756.84872 2.0312.84375h3.0938c.34295 0 .84891-.30535 1.25-.78125s.625-1.1312.625-1.25v-3" fill="none" opacity=".54406" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<g fill="#c17d11" fill-rule="evenodd" stroke-linecap="round" stroke-width="1px">
|
||||||
|
<path d="m46.5 11.992v3.5026" stroke="url(#linearGradient4464)"/>
|
||||||
|
<path d="m44.5 10.903v3.5966" stroke="url(#linearGradient4466)"/>
|
||||||
|
<path d="m42.5 10.5v4" stroke="url(#linearGradient4466)"/>
|
||||||
|
<path d="m40.5 11.5v4" stroke="url(#linearGradient4470)"/>
|
||||||
|
</g>
|
||||||
|
<g fill="none" stroke-linecap="round" stroke-width="1px">
|
||||||
|
<path d="m41.5 8.5v6" opacity=".51724" stroke="url(#linearGradient4472)"/>
|
||||||
|
<path d="m43.5 11.5v3" opacity=".57088" stroke="url(#linearGradient4474)"/>
|
||||||
|
<path d="m45.5 11.5v3" opacity=".57088" stroke="url(#linearGradient4476)"/>
|
||||||
|
</g>
|
||||||
|
<g fill="#ffffff">
|
||||||
|
<path transform="matrix(1.1852 0 0 1.0667 -7.6666 -.96667)" d="m41.906 14.5a.42188.46875 0 11-.84375 0 .42188.46875 0 11.84375 0z"/>
|
||||||
|
<path transform="matrix(1.1852 0 0 1.0667 -5.6666 -.96667)" d="m41.906 14.5a.42188.46875 0 11-.84375 0 .42188.46875 0 11.84375 0z"/>
|
||||||
|
<path transform="matrix(1.1852 0 0 1.0667 -3.6666 -.96667)" d="m41.906 14.5a.42188.46875 0 11-.84375 0 .42188.46875 0 11.84375 0z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.9 KiB |
75
icons/manual.svg
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<svg version="1.0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<radialGradient id="radialGradient5881" cx="11.78" cy="20.024" r="10.739" gradientTransform="matrix(1 0 0 .28028 0 14.412)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#000000" offset="0"/>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="1"/>
|
||||||
|
</radialGradient>
|
||||||
|
<linearGradient id="linearGradient6262">
|
||||||
|
<stop stop-color="#000000" offset="0"/>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5525" x1="18" x2="10" y1="16.562" y2="10" gradientTransform="matrix(1.191 0 0 1.191 2.9446 3.2085)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#000000" offset="0"/>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5529" x1="18" x2="10" y1="16.562" y2="10" gradientTransform="matrix(-1.3964 0 0 -1.3964 23.376 23.277)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#ffffff" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient4923" x1="10.441" x2="12.805" y1="10.306" y2="15.184" gradientTransform="matrix(1.3964 0 0 1.3964 .80181 .80181)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#d8d8d4" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient id="radialGradient5992" cx="9.1462" cy="10.09" r="5.1972" gradientTransform="matrix(1.3623 0 0 1.3548 -2.2464 -2.4115)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#2e3436" offset="0"/>
|
||||||
|
<stop stop-color="#2e3436" stop-opacity="0" offset="1"/>
|
||||||
|
</radialGradient>
|
||||||
|
<linearGradient id="linearGradient6010" x1="3.8151" x2="17.837" y1="17.888" y2="4.3612" gradientTransform="translate(1,1)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#fd0000" offset="0"/>
|
||||||
|
<stop stop-color="#fd0000" offset=".14655"/>
|
||||||
|
<stop stop-color="#bc0000" offset=".5"/>
|
||||||
|
<stop stop-color="#fd0000" offset=".88793"/>
|
||||||
|
<stop stop-color="#fd0000" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient6446" x1="21.305" x2="26.458" y1="10.744" y2="6.0747" gradientTransform="matrix(0 .66345 -.66345 0 20.264 -.98633)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6262"/>
|
||||||
|
<linearGradient id="linearGradient6448" x1="21.305" x2="26.458" y1="10.744" y2="6.0747" gradientTransform="matrix(0 .66345 .66345 0 3.7467 -.85421)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6262"/>
|
||||||
|
<linearGradient id="linearGradient6450" x1="21.305" x2="26.458" y1="10.744" y2="6.0747" gradientTransform="matrix(0 -.66345 .66345 0 3.7467 24.865)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6262"/>
|
||||||
|
<linearGradient id="linearGradient6452" x1="21.305" x2="26.458" y1="10.744" y2="6.0747" gradientTransform="matrix(.66345 0 0 .66345 -.90937 3.7467)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6262"/>
|
||||||
|
<linearGradient id="linearGradient6458" x1="32.899" x2="27.251" y1="4.9968" y2="9.8403" gradientTransform="matrix(0 .67045 .67397 0 1.2947 1.3625)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6262"/>
|
||||||
|
<linearGradient id="linearGradient6460" x1="32.899" x2="27.251" y1="4.9968" y2="9.8403" gradientTransform="matrix(.67045 0 0 .67397 1.2231 1.368)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient6262"/>
|
||||||
|
</defs>
|
||||||
|
<path transform="matrix(1.0243 0 0 1.1628 -.065744 -2.7836)" d="m22.519 20.024a10.739 3.01 0 1 1 -21.479 0 10.739 3.01 0 1121.479 0z" color="#000000" fill="url(#radialGradient5881)" fill-rule="evenodd" opacity=".59825"/>
|
||||||
|
<g fill="none" stroke="#8f5902" stroke-width=".64071">
|
||||||
|
<path transform="matrix(1.3337 -1.3337 -.91322 -.91322 3.6669 24.791)" d="m3.7812 2.4406a1.4856 2.4673 0 1 1 -2.9711 0 1.4856 2.4673 0 112.9711 0z" color="#000000"/>
|
||||||
|
<path transform="matrix(1.3337 1.3337 -.91322 .91322 3.6669 -.79064)" d="m3.7812 2.4406a1.4856 2.4673 0 1 1 -2.9711 0 1.4856 2.4673 0 112.9711 0z" color="#000000"/>
|
||||||
|
<path transform="matrix(-1.3337 1.3337 .91322 .91322 20.333 -.79064)" d="m3.7812 2.4406a1.4856 2.4673 0 1 1 -2.9711 0 1.4856 2.4673 0 112.9711 0z" color="#000000"/>
|
||||||
|
<path transform="matrix(-1.3337 -1.3337 .91322 -.91322 20.333 24.791)" d="m3.7812 2.4406a1.4856 2.4673 0 1 1 -2.9711 0 1.4856 2.4673 0 112.9711 0z" color="#000000"/>
|
||||||
|
</g>
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<g>
|
||||||
|
<path d="m11.973 1.5c-5.781 0-10.473 4.6918-10.473 10.473 0 5.781 4.6918 10.473 10.473 10.473 5.781 0 10.473-4.6918 10.473-10.473 0-5.781-4.6918-10.473-10.473-10.473zm-.043637 5.5855c2.7169 0 4.931 2.214 4.931 4.931 0 2.7169-2.214 4.931-4.931 4.931-2.7169 0-4.931-2.214-4.931-4.931-3e-7-2.7169 2.214-4.931 4.931-4.931z" color="#000000" fill="url(#linearGradient4923)" stroke="#555753"/>
|
||||||
|
<path d="m6.5619 3.5946c-1.1926.83651-2.2638 1.764-2.9673 2.9673l3.7528 3.7091c.51643-1.3585 1.5896-2.4474 2.9673-2.9237l-3.7528-3.7528zm10.036 10.036c-.4763 1.3777-1.5652 2.4509-2.9237 2.9673l3.7528 3.7528c1.3412-.80576 2.3204-1.7926 2.9237-2.9673l-3.7528-3.7528z" color="#000000" fill="#fd0000"/>
|
||||||
|
<path d="m20.357 6.5555c-.83651-1.1926-1.764-2.2638-2.9673-2.9673l-3.7091 3.7528c1.3585.51643 2.4474 1.5896 2.9237 2.9673l3.7528-3.7528zm-10.036 10.036c-1.3777-.4763-2.4509-1.5652-2.9673-2.9237l-3.7528 3.7528c.80576 1.3412 1.7926 2.3204 2.9673 2.9237l3.7528-3.7528z" color="#000000" fill="url(#linearGradient6010)"/>
|
||||||
|
</g>
|
||||||
|
<path d="m4.1759 20.004.018967-.21839c-3.8644-4.4735-1.2377-11.097 1.6168-13.942 2.8546-2.8455 9.6144-5.4915 14.119-1.7016l.17227-.065092c-5.4673-4.5995-12.069-3.585-15.84.17455-3.7716 3.7596-4.7722 10.33-.087274 15.753z" fill="url(#linearGradient5529)"/>
|
||||||
|
</g>
|
||||||
|
<path transform="matrix(1.263 0 0 1.263 2.5 2.5543)" d="m15 7.5a7.5 7.5 0 11-15 0 7.5 7.5 0 1115 0z" color="#000000" fill="none" stroke="#ffffff" stroke-opacity=".54505" stroke-width=".79174"/>
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<path d="m19.321 6-.016177.18627c3.2961 3.8156 1.0557 9.465-1.3791 11.892-2.4348 2.427-8.2005 4.6839-12.043 1.4514l-.14693.05552c4.6633 3.9231 10.294 3.0578 13.511-.14888 3.217-3.2067 4.0704-8.8105.074438-13.436z" fill="url(#linearGradient5525)" opacity=".45415"/>
|
||||||
|
<g>
|
||||||
|
<path d="m16 8.4073c-.99467-.79317-1.7822-1.2434-3.1446-1.3888-3.3668-.35933-6.0007 2.1582-5.8118 5.8118.061186 1.1833.6696 2.0332 1.2784 2.953-1.3122-1.0675-2.6234-2.4334-2.7094-4.2535-.16944-3.5829 2.7502-6.5477 6.0235-6.0235 1.9827.3175 3.3176 1.3528 4.3639 2.9011z" color="#000000" fill="url(#radialGradient5992)" opacity=".69432"/>
|
||||||
|
<path d="m20.332 6.6511c-.83966-1.2033-1.7706-2.2842-2.9785-2.9941l-1.3645 1.3489c1.3636.52109 2.4566 1.6039 2.9347 2.9941l1.4083-1.3489z" color="#000000" fill="url(#linearGradient6460)"/>
|
||||||
|
<path d="m6.5778 20.472c-1.2033-.83966-2.2842-1.7706-2.9941-2.9785l1.3489-1.3645c.52109 1.3636 1.6039 2.4566 2.9941 2.9347l-1.3489 1.4083z" color="#000000" fill="url(#linearGradient6458)"/>
|
||||||
|
<path d="m18 8.9473c-.83088-1.1845-1.7521-2.2486-2.9473-2.9473l-1.3503 1.3279c1.3494.51296 2.4309 1.5789 2.904 2.9473l1.3936-1.3279z" color="#000000" fill="url(#linearGradient6452)" opacity=".62882"/>
|
||||||
|
<path d="m8.9473 5.9558c-1.1845.83088-2.2486 1.7521-2.9473 2.9473l1.3279 1.3503c.51296-1.3494 1.5789-2.4309 2.9473-2.904l-1.3279-1.3936z" color="#000000" fill="url(#linearGradient6450)" opacity=".62882"/>
|
||||||
|
<path d="m8.9473 18.055c-1.1845-.83088-2.2486-1.7521-2.9473-2.9473l1.3279-1.3503c.51296 1.3494 1.5789 2.4309 2.9473 2.904l-1.3279 1.3936z" color="#000000" fill="url(#linearGradient6448)" opacity=".62882"/>
|
||||||
|
<path d="m15.064 17.923c1.1845-.83088 2.2486-1.7521 2.9473-2.9473l-1.3279-1.3503c-.51296 1.3494-1.5789 2.4309-2.9473 2.904l1.3279 1.3936z" color="#000000" fill="url(#linearGradient6446)" opacity=".62882"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g fill="#ffffff" fill-opacity=".4009" fill-rule="evenodd">
|
||||||
|
<path d="m18.992 7.7806c-.71866-1.2163-1.5088-2.3288-2.855-2.855l-1.3079 1.2862c1.3071.49688 2.3547 1.5294 2.813 2.855l1.3499-1.2862z" color="#000000"/>
|
||||||
|
<path d="m5.1892 15.852c.71866 1.2163 1.5088 2.3288 2.855 2.855l1.3079-1.2862c-1.3071-.49688-2.3547-1.5294-2.813-2.855l-1.3499 1.2862z" color="#000000"/>
|
||||||
|
<path d="m15.589 18.5c1.2163-.71866 2.3288-1.5088 2.855-2.855l-1.2862-1.3079c-.49688 1.3071-1.5294 2.3547-2.855 2.813l1.2862 1.3499z" color="#000000"/>
|
||||||
|
<path d="m7.7868 4.8514c-1.2163.71866-2.3288 1.5088-2.855 2.855l1.2862 1.3079c.49688-1.3071 1.5294-2.3547 2.855-2.813l-1.2862-1.3499z" color="#000000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
42
icons/open-ecc.svg
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<svg version="1.0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<filter id="filter6052" x="-.14148" y="-.70742" width="1.283" height="2.4148">
|
||||||
|
<feGaussianBlur stdDeviation="1.1790392"/>
|
||||||
|
</filter>
|
||||||
|
<linearGradient id="linearGradient6062" x1="9.71" x2="24.286" y1="14.717" y2="-5.9536" gradientTransform="matrix(1.1176 0 0 1.1 -1.4118 -1.15)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#d3d7cf" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient6082" x1="17.688" x2="18.562" y1="4.5279" y2="3.7493" gradientTransform="matrix(1.3473 0 0 1.3356 -6.7303 -1.5077)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#cbcbcb" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient6114" x1="16.552" x2="16.552" y1="2.9627" y2="7.8356" gradientTransform="matrix(.98039 0 0 1.1 1.2941 -.8)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#000000" offset="0"/>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient4922" x1="18.964" x2="14.047" y1="6.5045" y2="3.6734" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#888a85" offset="0"/>
|
||||||
|
<stop stop-color="#5d5f5b" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g>
|
||||||
|
<rect x="2" y="19" width="20" height="4" rx="1.6351" ry="1.6351" color="#000000" fill="#000000" fill-rule="evenodd" filter="url(#filter6052)" opacity=".12664"/>
|
||||||
|
<path d="m4.3274.5h11.469l5.2822 5.3278c.28198.35946.43275.71893.42119 1.0784v13.795c0 .9964-.81503 1.7986-1.8274 1.7986h-15.345c-1.0124 0-1.8274-.80216-1.8274-1.7986v-18.403c0-.9964.81503-1.7986 1.8274-1.7986z" color="#000000" fill="url(#linearGradient6062)" fill-rule="evenodd" stroke="#888a85" stroke-width="1px"/>
|
||||||
|
<path d="m5.349 1.5h9.8721l5.2789 5.7474-.037354 12.436c0 1.0065-.82465 1.8167-1.849 1.8167h-13.265c-1.0243 0-1.849-.81026-1.849-1.8167v-16.367c0-1.0065.82465-1.8167 1.849-1.8167z" color="#000000" fill="none" stroke="#ffffff" stroke-width="1px"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(.016041 0 0 .016041 3.7357 5.04)" fill="#030305">
|
||||||
|
<path d="m407.84 27.68c244.16-58.56 512.8 101.28 578.88 343.04 77.6 240-62.56 521.12-300 604.64-225.12 90.88-504.16-16-612.8-232.32-114.08-206.56-51.36-488 139.84-626.4 57.12-43.52 124-73.6 194.08-88.96m-294.08 248.16c-82.24 135.68-86.24 313.92-10.88 453.28 49.28 96.96 136.8 167.68 232.96 215.04-28.16-36.64-56.64-74.72-68.8-120.16-40-121.28 31.36-264.96 150.72-308.8 62.24-29.12 136.48-8.64 196.96-42.88 73.12-37.92 124-117.12 121.44-200.48 3.68-113.44-95.36-218.08-208.32-222.24-165.76-8.32-331.04 82.88-414.08 226.24m575.2-195.52c49.28 57.92 86.24 130.88 79.04 208.96-5.12 119.2-104.32 227.36-224.32 236.16-60.64 3.2-125.12 11.04-171.84 53.92-84.32 65.44-109.92 193.76-53.12 284.96 34.56 57.28 94.4 103.04 162.4 109.12 169.6 14.24 341.92-76.64 427.84-223.2 82.72-135.2 88-313.12 13.28-452.8-48.8-98.08-136.64-169.28-233.28-217.12"/>
|
||||||
|
<path d="m482.08 176.32c67.52-23.84 142.88 40.64 128.8 111.04-7.2 72.8-103.52 110.88-159.52 64.48-64.32-44-45.12-156.16 30.72-175.52m1.28 33.76c-42.08 17.76-52.8 80.32-18.56 110.72 34.4 36.8 105.44 16.64 113.12-33.92 15.2-52.8-46.08-100.8-94.56-76.8m-14.24 451.04c62.4-32 146.4 19.2 142.72 90.24 5.44 76.64-90.88 128.64-153.28 85.6-65.92-37.44-59.52-146.56 10.56-175.84m14.08 28.8c-41.6 17.92-52.64 79.68-19.04 110.24 33.92 37.6 105.6 17.76 113.76-32.8 15.52-53.12-45.92-101.6-94.72-77.44"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(.016041 0 0 .016041 3.7357 5.04)" fill="#ffffff">
|
||||||
|
<path d="m113.76 275.84c83.04-143.36 248.32-234.56 414.08-226.24 112.96 4.16 212 108.8 208.32 222.24 2.56 83.36-48.32 162.56-121.44 200.48-60.48 34.24-134.72 13.76-196.96 42.88-119.36 43.84-190.72 187.52-150.72 308.8 12.16 45.44 40.64 83.52 68.8 120.16-96.16-47.36-183.68-118.08-232.96-215.04-75.36-139.36-71.36-317.6 10.88-453.28m368.32-99.52c-75.84 19.36-95.04 131.52-30.72 175.52 56 46.4 152.32 8.32 159.52-64.48 14.08-70.4-61.28-134.88-128.8-111.04"/>
|
||||||
|
<path d="m483.2 689.92c48.8-24.16 110.24 24.32 94.72 77.44-8.16 50.56-79.84 70.4-113.76 32.8-33.6-30.56-22.56-92.32 19.04-110.24"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(.016041 0 0 .016041 3.7357 5.04)" fill="#4658f5">
|
||||||
|
<path d="m688.96 80.32c96.64 47.84 184.48 119.04 233.28 217.12 74.72 139.68 69.44 317.6-13.28 452.8-85.92 146.56-258.24 237.44-427.84 223.2-68-6.08-127.84-51.84-162.4-109.12-56.8-91.2-31.2-219.52 53.12-284.96 46.72-42.88 111.2-50.72 171.84-53.92 120-8.8 219.2-116.96 224.32-236.16 7.2-78.08-29.76-151.04-79.04-208.96m-219.84 580.8c-70.08 29.28-76.48 138.4-10.56 175.84 62.4 43.04 158.72-8.96 153.28-85.6 3.68-71.04-80.32-122.24-142.72-90.24"/>
|
||||||
|
<path d="m483.36 210.08c48.48-24 109.76 24 94.56 76.8-7.68 50.56-78.72 70.72-113.12 33.92-34.24-30.4-23.52-92.96 18.56-110.72"/>
|
||||||
|
</g>
|
||||||
|
<path d="m16 2.0708 4.982 4.8486.018045 1.0806-4.9638-1e-7-.036229-5.9292z" fill="url(#linearGradient6114)" fill-rule="evenodd"/>
|
||||||
|
<path d="m21.005 6.5-5.4679-2e-7-.036601-5.6532" fill="url(#linearGradient6082)" fill-rule="evenodd" stroke="url(#linearGradient4922)" stroke-width="1px"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
34
icons/open-img.svg
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<svg version="1.0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<filter id="filter6052" x="-.14148" y="-.70742" width="1.283" height="2.4148">
|
||||||
|
<feGaussianBlur stdDeviation="1.1790392"/>
|
||||||
|
</filter>
|
||||||
|
<linearGradient id="linearGradient6062" x1="9.71" x2="24.286" y1="14.717" y2="-5.9536" gradientTransform="matrix(1.1176 0 0 1.1 -1.4118 -1.15)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#d3d7cf" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient6082" x1="17.688" x2="18.562" y1="4.5279" y2="3.7493" gradientTransform="matrix(1.3473 0 0 1.3356 -6.7303 -1.5077)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#cbcbcb" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient6114" x1="16.552" x2="16.552" y1="2.9627" y2="7.8356" gradientTransform="matrix(.98039 0 0 1.1 1.2941 -.8)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#000000" offset="0"/>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient4922" x1="18.964" x2="14.047" y1="6.5045" y2="3.6734" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#888a85" offset="0"/>
|
||||||
|
<stop stop-color="#5d5f5b" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g>
|
||||||
|
<rect x="2" y="19" width="20" height="4" rx="1.6351" ry="1.6351" color="#000000" fill="#000000" fill-rule="evenodd" filter="url(#filter6052)" opacity=".12664"/>
|
||||||
|
<path d="m4.3274.5h11.469l5.2822 5.3278c.28198.35946.43275.71893.42119 1.0784v13.795c0 .9964-.81503 1.7986-1.8274 1.7986h-15.345c-1.0124 0-1.8274-.80216-1.8274-1.7986v-18.403c0-.9964.81503-1.7986 1.8274-1.7986z" color="#000000" fill="url(#linearGradient6062)" fill-rule="evenodd" stroke="#888a85" stroke-width="1px"/>
|
||||||
|
<path d="m5.3211 1.4721h9.8721l5.2789 5.7474-.03735 12.436c0 1.0065-.82465 1.8167-1.849 1.8167h-13.265c-1.0243 0-1.849-.81026-1.849-1.8167v-16.367c0-1.0065.82465-1.8167 1.849-1.8167z" color="#000000" fill="none" stroke="#ffffff" stroke-width="1px"/>
|
||||||
|
</g>
|
||||||
|
<path d="m17.834 6.5c.051022.30182.13197.5406.24414.71875.25997.42091.68546.65039 1.1992.65039.47662 0 .86635-.1934 1.1387-.55859.14165-.19477.24361-.46305.30469-.81055h-.85938c-.014924.093317-.031412.1716-.050781.22266-.09903.25997-.2856.40234-.5332.40234-.22902 0-.40261-.11701-.50781-.33984-.029869-.064002-.053901-.16217-.074219-.28516h-.86133z" stroke-width=".3571"/>
|
||||||
|
<path d="m5.5117 3.2441c-.47041 0-.87253.19927-1.1387.56445-.25378.34043-.37109.89582-.37109 1.75 0 .7799.09814 1.3259.30859 1.6602.25997.42091.68741.65039 1.2012.65039.47662 0 .86635-.1934 1.1387-.55859.24759-.34043.37109-.90334.37109-1.7266 0-.80465-.098144-1.349-.30859-1.6895-.25997-.42091-.68741-.65039-1.2012-.65039zm3.5156.09375c-.13617.51994-.58667.78516-1.3418.78516v.57617h1.0508v3.0273h.86719v-4.3887h-.57617zm3.4414 0c-.13617.51994-.58668.78516-1.3418.78516v.57617h1.0508v3.0273h.86719v-4.3887h-.57617zm3.4414 0c-.13617.51994-.58667.78516-1.3418.78516v.57617h1.0508v3.0273h.86719v-4.3887h-.57617zm-10.398.60547c.22283 0 .40261.1245.50781.35352.086657.18569.13672.66296.13672 1.2695 0 .49519-.04324.97677-.11133 1.1562-.099034.25997-.2856.40234-.5332.40234-.22902 0-.40261-.11701-.50781-.33984-.086657-.18569-.13477-.64442-.13477-1.2324 0-.51994.04324-1.0139.11133-1.1934.092846-.26616.28365-.41602.53125-.41602z" stroke-width=".3571"/>
|
||||||
|
<path d="m16 2.0708 4.982 4.8486.018045 1.0806-4.9638-1e-7-.036229-5.9292z" fill="url(#linearGradient6114)" fill-rule="evenodd"/>
|
||||||
|
<path d="m21.005 6.5-5.4679-2e-7-.036601-5.6532" fill="url(#linearGradient6082)" fill-rule="evenodd" stroke="url(#linearGradient4922)" stroke-width="1px"/>
|
||||||
|
<path d="m5.2954 10.925v3.0268h.86657v-4.3884h-.57564c-.13617.51994-.58804.78608-1.3432.78608v.57564zm3.6581-1.4546c-.47041 0-.87275.19807-1.1389.56325-.25378.34043-.37138.8975-.37138 1.7517 0 .7799.099034 1.3246.30948 1.6588.25997.42091.68706.64992 1.2008.64992.47662 0 .86657-.19188 1.1389-.55708.24759-.34043.37138-.90371.37138-1.7269 0-.80465-.09903-1.3494-.30948-1.6898-.25997-.42091-.68706-.64992-1.2008-.64992zm0 .69945c.22283 0 .40234.1238.50755.35282.086657.18569.13617.66231.13617 1.2689 0 .49519-.043327.97799-.11142 1.1575-.099034.25997-.28473.40234-.53233.40234-.22902 0-.40234-.1176-.50755-.34044-.086657-.18569-.13617-.64374-.13617-1.2317 0-.51994.043327-1.0151.11142-1.1946.092846-.26616.28473-.4147.53233-.4147zm3.4415-.69945c-.47041 0-.87275.19807-1.1389.56325-.25378.34043-.37138.8975-.37138 1.7517 0 .7799.09903 1.3246.30948 1.6588.25997.42091.68706.64992 1.2008.64992.47662 0 .86657-.19188 1.1389-.55708.24759-.34043.37138-.90371.37138-1.7269 0-.80465-.09903-1.3494-.30948-1.6898-.25997-.42091-.68706-.64992-1.2008-.64992zm0 .69945c.22283 0 .40234.1238.50754.35282.08666.18569.13617.66231.13617 1.2689 0 .49519-.04333.97799-.11141 1.1575-.09904.25997-.28473.40234-.53233.40234-.22902 0-.40234-.1176-.50754-.34044-.08666-.18569-.13617-.64374-.13617-1.2317 0-.51994.04333-1.0151.11142-1.1946.09285-.26616.28473-.4147.53233-.4147zm3.2248.75516v3.0268h.86657v-4.3884h-.57564c-.13617.51994-.58804.78608-1.3432.78608v.57564zm3.4415 0v3.0268h.86657v-4.3884h-.57564c-.13617.51994-.58804.78608-1.3432.78608v.57564z" stroke-width=".3571"/>
|
||||||
|
<path d="m5.5121 15.697c-.47041 0-.87275.19807-1.1389.56325-.25378.34043-.37138.8975-.37138 1.7517 0 .7799.099034 1.3246.30949 1.6588.25997.42091.68706.64992 1.2008.64992.47662 0 .86657-.19188 1.1389-.55707.24759-.34043.37138-.90371.37138-1.7269 0-.80465-.099034-1.3494-.30948-1.6898-.25997-.42091-.68706-.64992-1.2008-.64992zm0 .69945c.22283 0 .40234.1238.50755.35282.086657.18569.13617.66231.13617 1.2689 0 .49519-.043327.97799-.11141 1.1575-.099034.25997-.28473.40234-.53233.40234-.22902 0-.40234-.1176-.50755-.34044-.086657-.18569-.13617-.64374-.13617-1.2317 0-.51994.043327-1.0151.11142-1.1946.092846-.26616.28473-.4147.53233-.4147zm3.4415-.69945c-.47041 0-.87275.19807-1.1389.56325-.25378.34043-.37138.8975-.37138 1.7517 0 .7799.099034 1.3246.30948 1.6588.25997.42091.68706.64992 1.2008.64992.47662 0 .86657-.19188 1.1389-.55707.24759-.34043.37138-.90371.37138-1.7269 0-.80465-.09903-1.3494-.30948-1.6898-.25997-.42091-.68706-.64992-1.2008-.64992zm0 .69945c.22283 0 .40234.1238.50755.35282.086657.18569.13617.66231.13617 1.2689 0 .49519-.043327.97799-.11142 1.1575-.099034.25997-.28473.40234-.53233.40234-.22902 0-.40234-.1176-.50755-.34044-.086657-.18569-.13617-.64374-.13617-1.2317 0-.51994.043327-1.0151.11142-1.1946.092846-.26616.28473-.4147.53233-.4147zm3.2248.75516v3.0268h.86657v-4.3884h-.57564c-.13617.51994-.58804.78608-1.3432.78608v.57564zm3.4415 0v3.0268h.86657v-4.3884h-.57564c-.13617.51994-.58804.78608-1.3432.78608v.57564zm3.4415 0v3.0268h.86657v-4.3884h-.57564c-.13617.51994-.58804.78608-1.3432.78608v.57564z" stroke-width=".3571"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.8 KiB |
41
icons/preferences.svg
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<svg version="1.0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linearGradient5916">
|
||||||
|
<stop stop-color="#eeeeec" offset="0"/>
|
||||||
|
<stop stop-color="#eeeeec" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient id="radialGradient5922" cx="17.563" cy="3.4949" r="2.2188" gradientTransform="matrix(-.76879 .72066 -.89296 -.95259 35.055 -5.9452)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient5916"/>
|
||||||
|
<radialGradient id="radialGradient5926" cx="17.654" cy="3.6021" r="2.2188" gradientTransform="matrix(-.3081 .48507 -.80332 -.51025 15.173 -4.5605)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient5916"/>
|
||||||
|
<linearGradient id="linearGradient5149" x1="4.3601" x2="5.8711" y1="17.388" y2="18.979" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#84abd5" offset="0"/>
|
||||||
|
<stop stop-color="#d0dfef" offset=".5"/>
|
||||||
|
<stop stop-color="#84abd5" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5159" x1="1" x2="23" y1="12" y2="12" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#888b85" offset="0"/>
|
||||||
|
<stop stop-color="#555753" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5245" x1="4.8768" x2="8.2158" y1="16.336" y2="20.755" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#2c67bd" offset="0"/>
|
||||||
|
<stop stop-color="#173662" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<g>
|
||||||
|
<path d="m1.5 6.7723 1.3404 2.5915c.97227 2.0329 2.9802.90343 4.6915.40213l6.7245 6.7245c-.67527 1.8354-1.675 3.4541.40213 4.6915l2.5691 1.3181 1.5191-1.5191-1.4521-1.4074-.022341-1.4074.75958-.75958 1.3851-.089361 1.4968 1.4968 1.5862-1.5862-1.4074-2.4798c-1.1932-1.9887-2.9189-.95025-4.7138-.42447l-6.6798-6.6798c.85275-1.8004 1.1665-3.609-.42447-4.7138l-2.5021-1.4298-1.5862 1.5862 1.5191 1.5191-.089362 1.3851-.75957.75957-1.4074-.02234-1.4298-1.4745-1.5191 1.5191z" fill="#d3d7cf" stroke="url(#linearGradient5159)" stroke-width="1px"/>
|
||||||
|
<path d="m6.4195 2.6779 1.9283 1.204.62436.70093.0062081.73497-.9437 2.9239 2.9831 2.6296.53033-.61872-2.4514-2.363c.96944-2.4841 1.0846-3.6668-.10869-4.5065l-2.1207-1.2871-.44777.58193z" fill="#ffffff"/>
|
||||||
|
<path d="m3.5198 6.6646-1.0002 1.0158-.34773-.81694.88388-.88388.41984.50823.044194.17678z" fill="#ffffff"/>
|
||||||
|
</g>
|
||||||
|
<path d="m12.906 14.469 1.5-1.4062-.90625-.875-1.4375 1.5625.84375.71875z" fill="#2e3436" opacity=".27976"/>
|
||||||
|
<g>
|
||||||
|
<path d="m18.512 2.6768-2.6025 2.1981.20703 1.386-10.336 10.361 1.5379 1.4882 10.37-10.28 1.395.20527 2.2611-2.4756-2.8322-2.8831z" fill="#d3d7cf" stroke="#888a85" stroke-width="1px"/>
|
||||||
|
<path d="m8.4599 13.456-6.0147 4.2319s-.70335 1.0484.2475 2.0019l1.6329 1.6374c.69563.69755 2.054.17594 2.054.17594l4.2529-5.8459-2.1727-2.2012z" fill="#d4e2f1" stroke="url(#linearGradient5245)" stroke-width="1px"/>
|
||||||
|
<path d="m8.3511 14.533-4.8494 3.8395c-.45144 1.0464 1.407 2.4861 2.2202 1.8456l3.9057-4.4964-1.2764-1.1887z" fill="url(#linearGradient5149)"/>
|
||||||
|
<path d="m18.952 3.8475-1.7472 1.4767.1875 1.328-7.4407 7.3028-.40533-.429 7.116-7.1004-.17867-1.3563 1.9095-1.812.5589.59015z" fill="#ffffff"/>
|
||||||
|
<path d="m18.469 3.1953 2.1891 2.3699-1.8141 1.9973-2.3849-2.4954 2.0099-1.8718z" fill="url(#radialGradient5922)"/>
|
||||||
|
<path d="m6.8693 2.0937 2.0781 1.25-1.7031 1.1562-1.3068-1.386.93181-1.0202z" fill="url(#radialGradient5926)"/>
|
||||||
|
<path d="m13.75 12.438 2.5625 2.5s2.5-1.25 3.4375-.75 2.0625 2.9375 2.0625 2.9375-1.1875-2.0625-2.0625-2.3125-3.5625.9375-3.5625.9375l-2.875-2.8125.4375-.5z" color="#000000" fill="#ffffff"/>
|
||||||
|
<path d="m17.854 16.841-1.8562 1.149-.088388 1.9445 1.591 1.591.53033-.53033-1.3258-1.2374.088388-1.6794 1.0607-1.2374z" color="#000000" fill="#ffffff"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.8 KiB |
@@ -1,35 +0,0 @@
|
|||||||
#FIG 3.2
|
|
||||||
Landscape
|
|
||||||
Center
|
|
||||||
Metric
|
|
||||||
A4
|
|
||||||
100.00
|
|
||||||
Single
|
|
||||||
-2
|
|
||||||
1200 2
|
|
||||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
|
||||||
4950 2700 9450 2700 9450 7650 4950 7650 4950 2700
|
|
||||||
2 1 0 20 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
|
||||||
3150 2700 10845 2700
|
|
||||||
2 1 0 20 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
|
||||||
3150 7650 10800 7650
|
|
||||||
2 1 0 20 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
|
||||||
4950 900 4950 9000
|
|
||||||
2 1 0 20 0 7 5 -1 -1 0.000 0 0 -1 0 0 2
|
|
||||||
9450 900 9450 9045
|
|
||||||
3 0 0 20 0 7 50 -1 -1 0.000 0 0 0 7
|
|
||||||
6525 2700 6300 2250 6300 1575 7200 1080 8100 1575 8100 2250
|
|
||||||
7875 2700
|
|
||||||
0.000 1.000 1.000 1.000 1.000 1.000 0.000
|
|
||||||
3 0 0 20 0 7 50 -1 -1 0.000 0 0 0 7
|
|
||||||
4950 4275 4500 4050 3825 4050 3330 4950 3825 5850 4500 5850
|
|
||||||
4950 5625
|
|
||||||
0.000 1.000 1.000 1.000 1.000 1.000 0.000
|
|
||||||
3 0 0 20 0 7 50 -1 -1 0.000 0 0 0 7
|
|
||||||
9450 4320 9000 4095 8325 4095 7830 4995 8325 5895 9000 5895
|
|
||||||
9450 5670
|
|
||||||
0.000 1.000 1.000 1.000 1.000 1.000 0.000
|
|
||||||
3 0 0 20 0 7 50 -1 -1 0.000 0 0 0 7
|
|
||||||
6525 7650 6300 7200 6300 6525 7200 6030 8100 6525 8100 7200
|
|
||||||
7875 7650
|
|
||||||
0.000 1.000 1.000 1.000 1.000 1.000 0.000
|
|
||||||
31
icons/quit.svg
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<svg version="1.0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linearGradient5934" x1="-.19819" x2="-.19819" y1="-1.3415" y2="8.9255" gradientTransform="matrix(-.90643 0 0 .90643 15.831 1.1871)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#ffffff" offset="0"/>
|
||||||
|
<stop stop-color="#ffffff" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5946" x1="32.9" x2="32.9" y1="20.085" y2="9.2824" gradientTransform="translate(-17)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#346703" offset="0"/>
|
||||||
|
<stop stop-color="#ffffff" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5956" x1="8.4617" x2="15.305" y1="13.076" y2="13.076" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#e0e1de" offset="0"/>
|
||||||
|
<stop stop-color="#777c70" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient5970" x1="12.191" x2="12.191" y1="1.7234" y2="6.2786" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#000000" offset="0"/>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<rect x="7.5" y="1.5" width="15" height="21" rx="0" ry="0" fill="url(#linearGradient5946)" stroke="#2e3436" stroke-linecap="round"/>
|
||||||
|
<path d="m9 22 8-4v-16h-9v20h1z" fill="url(#linearGradient5956)" fill-rule="evenodd"/>
|
||||||
|
<rect x="8.4375" y="2.5" width="13.062" height="19" fill="none" opacity=".20109" stroke="#ffffff" stroke-linecap="round"/>
|
||||||
|
<g transform="translate(-3 3.9688)">
|
||||||
|
<path d="m8.4349 1.625 6.0312 6.0312-6.0312 5.875v-2.9375h-4.9349v-6h4.9349v-2.9688z" fill="#cc0000" fill-rule="evenodd" stroke="#820000" stroke-width="1px"/>
|
||||||
|
<path transform="matrix(-1,0,0,1,16,0)" d="m6.5312 3.9186-3.5853 3.6439 3.5853 3.5868v-1.5861h4.9349v-4h-4.9349v-1.6446z" fill="none" stroke="#ffffff" stroke-opacity=".36486" stroke-width="1px"/>
|
||||||
|
<path transform="matrix(-1,0,0,1,16,0)" d="m2.9705 6.8523c1.0727.42953 2.3242 1.1258 3.9963 1.1258 2.4392 0 4.3718.059238 4.8703-.94984l.17591-2.0148h-5.0179v-2.1398l-4.0246 3.9786z" color="#000000" fill="url(#linearGradient5934)"/>
|
||||||
|
</g>
|
||||||
|
<path transform="matrix(1.4846 0 0 1.0557 -7.4375 -.93773)" d="m15.787 10.834a1.0104 1.4208 0 1 1 -2.0207 0 1.0104 1.4208 0 112.0207 0z" fill="#2e3436"/>
|
||||||
|
<rect x="8" y="2" width="9" height="5" fill="url(#linearGradient5970)" opacity=".39674"/>
|
||||||
|
<path d="m7.875 22 9.625-4.7737v-15.726" fill="none" stroke="#2e3436" stroke-width="1px"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.5 KiB |
5
icons/read-symbolic.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m4.732.19079c-1.3173 0-2.444.55467-3.1893 1.5773-.71067.95333-1.04 2.5133-1.04 4.9053 0 2.184.27733 3.7093.86667 4.6453.728 1.1787 1.924 1.82 3.3627 1.82 1.3347 0 2.4267-.53733 3.1893-1.56.69333-.95333 1.04-2.5307 1.04-4.836 0-2.2533-.27733-3.7787-.86666-4.732-.728-1.1787-1.924-1.82-3.3627-1.82zm0 1.9587c.624 0 1.1267.34667 1.4213.988.24267.52.38133 1.8547.38133 3.5533 0 1.3867-.12133 2.7387-.312 3.2413-.27733.728-.79733 1.1267-1.4907 1.1267-.64133 0-1.1267-.32933-1.4213-.95333-.24267-.52-.38133-1.8027-.38133-3.4493 0-1.456.12133-2.8427.312-3.3453.26-.74533.79733-1.1613 1.4907-1.1613zm9.0306 2.1147v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612zm9.6373 0v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612zm9.6373 0v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612zm10.244-4.0733c-1.3173 0-2.444.55467-3.1893 1.5773-.71067.95333-1.04 2.5133-1.04 4.9053 0 2.184.27733 3.7093.86666 4.6453.728 1.1787 1.924 1.82 3.3627 1.82 1.3347 0 2.4267-.53733 3.1893-1.56.69333-.95333 1.04-2.5307 1.04-4.836 0-2.2533-.27733-3.7787-.86666-4.732-.728-1.1787-1.924-1.82-3.3627-1.82zm0 1.9587c.624 0 1.1267.34667 1.4213.988.24267.52.38133 1.8547.38133 3.5533 0 1.3867-.12133 2.7387-.312 3.2413-.27733.728-.79733 1.1267-1.4907 1.1267-.64133 0-1.1267-.32933-1.4213-.95333-.24267-.52-.38133-1.8027-.38133-3.4493 0-1.456.12133-2.8427.312-3.3453.26-.74533.79733-1.1613 1.4907-1.1613z" opacity=".5"/>
|
||||||
|
<path d="m4.1253 21.699v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612zm10.244-4.0733c-1.3173 0-2.444.55466-3.1893 1.5773-.71067.95333-1.04 2.5133-1.04 4.9053 0 2.184.27733 3.7093.86666 4.6453.728 1.1787 1.924 1.82 3.3627 1.82 1.3347 0 2.4267-.53733 3.1893-1.56.69333-.95333 1.04-2.5307 1.04-4.836 0-2.2533-.27733-3.7787-.86666-4.732-.728-1.1787-1.924-1.82-3.3627-1.82zm0 1.9587c.624 0 1.1267.34667 1.4213.988.24267.52.38133 1.8547.38133 3.5533 0 1.3867-.12133 2.7387-.312 3.2413-.27733.728-.79733 1.1267-1.4907 1.1267-.64133 0-1.1267-.32933-1.4213-.95333-.24267-.52-.38133-1.8027-.38133-3.4493 0-1.456.12133-2.8427.312-3.3453.26-.74533.79733-1.1613 1.4907-1.1613zm9.6373-1.9587c-1.3173 0-2.444.55466-3.1893 1.5773-.71067.95333-1.04 2.5133-1.04 4.9053 0 2.184.27733 3.7093.86666 4.6453.728 1.1787 1.924 1.82 3.3627 1.82 1.3347 0 2.4267-.53733 3.1893-1.56.69333-.95333 1.04-2.5307 1.04-4.836 0-2.2533-.27733-3.7787-.86666-4.732-.728-1.1787-1.924-1.82-3.3627-1.82zm0 1.9587c.624 0 1.1267.34667 1.4213.988.24267.52.38133 1.8547.38133 3.5533 0 1.3867-.12133 2.7387-.312 3.2413-.27733.728-.79733 1.1267-1.4907 1.1267-.64133 0-1.1267-.32933-1.4213-.95333-.24267-.52-.38133-1.8027-.38133-3.4493 0-1.456.12133-2.8427.312-3.3453.26-.74533.79733-1.1613 1.4907-1.1613zm9.0306 2.1147v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612zm9.6373 0v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612z"/>
|
||||||
|
<path d="m4.732 35.061c-1.3173 0-2.444.55467-3.1893 1.5773-.71067.95333-1.04 2.5133-1.04 4.9053 0 2.184.27733 3.7093.86667 4.6453.728 1.1787 1.924 1.82 3.3627 1.82 1.3347 0 2.4267-.53733 3.1893-1.56.69333-.95333 1.04-2.5307 1.04-4.836 0-2.2533-.27733-3.7787-.86666-4.732-.728-1.1787-1.924-1.82-3.3627-1.82zm0 1.9587c.624 0 1.1267.34667 1.4213.988.24267.52.38133 1.8547.38133 3.5533 0 1.3867-.12133 2.7387-.312 3.2413-.27733.728-.79733 1.1267-1.4907 1.1267-.64133 0-1.1267-.32933-1.4213-.95333-.24267-.52-.38133-1.8027-.38133-3.4493 0-1.456.12133-2.8427.312-3.3453.26-.74533.79733-1.1613 1.4907-1.1613zm9.6373-1.9587c-1.3173 0-2.444.55467-3.1893 1.5773-.71067.95333-1.04 2.5133-1.04 4.9053 0 2.184.27733 3.7093.86666 4.6453.728 1.1787 1.924 1.82 3.3627 1.82 1.3347 0 2.4267-.53733 3.1893-1.56.69333-.95333 1.04-2.5307 1.04-4.836 0-2.2533-.27733-3.7787-.86666-4.732-.728-1.1787-1.924-1.82-3.3627-1.82zm0 1.9587c.624 0 1.1267.34667 1.4213.988.24267.52.38133 1.8547.38133 3.5533 0 1.3867-.12133 2.7387-.312 3.2413-.27733.728-.79733 1.1267-1.4907 1.1267-.64133 0-1.1267-.32933-1.4213-.95333-.24267-.52-.38133-1.8027-.38133-3.4493 0-1.456.12133-2.8427.312-3.3453.26-.74533.79733-1.1613 1.4907-1.1613zm9.0306 2.1147v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612zm9.6373 0v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612zm9.6373 0v8.476h2.4267v-12.289h-1.612c-.38133 1.456-1.6467 2.2013-3.7613 2.2013v1.612z" opacity=".5"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.4 KiB |
BIN
icons/read.png
|
Before Width: | Height: | Size: 781 B |
9
icons/scan-symbolic.svg
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<svg version="1.1" viewBox="0 0 576 576" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<style>
|
||||||
|
.no-fill {
|
||||||
|
fill: none !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<path d="m49.2 329.6c49.768-155.03 234.28-230.88 504-235.2" class="no-fill" stroke="#4658f5" stroke-width="24"/>
|
||||||
|
<path d="m38 56v8h-26v16h26v80h-26v16h26v80h-26v16h26v80h-26v16h26v80h-26v16h26v21h16v-21h104v18h16v-18h104v15h16v-15h104v15h16v-15h104v15h16v-15h16v-16h-496v-392z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 439 B |
@@ -1,35 +0,0 @@
|
|||||||
#FIG 3.2
|
|
||||||
Landscape
|
|
||||||
Center
|
|
||||||
Metric
|
|
||||||
A4
|
|
||||||
100.00
|
|
||||||
Single
|
|
||||||
-2
|
|
||||||
1200 2
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
1710 7965 1080 7965
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
1710 6165 1080 6165
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
1710 4365 1080 4365
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
3960 7965 3960 8460
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
1710 2565 1125 2565
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
6210 7965 6210 8415
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
8460 7965 8460 8415
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
10710 7965 10710 8415
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
1710 765 1125 765
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 2
|
|
||||||
1710 8010 1710 8505
|
|
||||||
2 1 0 20 0 7 50 0 -1 0.000 0 0 -1 0 0 3
|
|
||||||
1710 450 1710 7965 11160 7965
|
|
||||||
3 0 0 30 1 7 51 0 -1 0.000 0 0 0 8
|
|
||||||
1755 5580 2160 4545 2700 3870 3420 3195 4590 2385 6435 1710
|
|
||||||
8865 1260 11205 1170
|
|
||||||
0.000 1.000 1.000 1.000 1.000 1.000 1.000 0.000
|
|
||||||
BIN
icons/scan.png
|
Before Width: | Height: | Size: 406 B |
@@ -1,626 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="210mm"
|
|
||||||
height="297mm"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48.5 r10040"
|
|
||||||
sodipodi:docname="medium.svg">
|
|
||||||
<defs
|
|
||||||
id="defs4">
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5823">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#c6e9af;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5825" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#dee3db;stop-opacity:0"
|
|
||||||
offset="1"
|
|
||||||
id="stop5827" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5815">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#c6e9af;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5817" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#e3f4d7;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5819" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5807">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffeeaa;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5809" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#e3f4d7;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5811" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5799">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffeeaa;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5801" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffaaaa;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5803" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5791">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff8080;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5793" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f4d7d7;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5795" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5773">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffccaa;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5775" />
|
|
||||||
<stop
|
|
||||||
id="stop5787"
|
|
||||||
offset="0.5"
|
|
||||||
style="stop-color:#e9afaf;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f4d7d7;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5777" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5761">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffeeaa;stop-opacity:1"
|
|
||||||
offset="0"
|
|
||||||
id="stop5763" />
|
|
||||||
<stop
|
|
||||||
id="stop5785"
|
|
||||||
offset="0.05215516"
|
|
||||||
style="stop-color:#ffe9aa;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5783"
|
|
||||||
offset="0.10431032"
|
|
||||||
style="stop-color:#ffe5aa;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5781"
|
|
||||||
offset="0.20862064"
|
|
||||||
style="stop-color:#ffddaa;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5771"
|
|
||||||
offset="0.41724128"
|
|
||||||
style="stop-color:#ffccaa;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
id="stop5769"
|
|
||||||
offset="0.65517235"
|
|
||||||
style="stop-color:#ffeeaa;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop5765" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5745">
|
|
||||||
<stop
|
|
||||||
id="stop5747"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#faf1cf;stop-opacity:1;"
|
|
||||||
offset="0.5"
|
|
||||||
id="stop5751" />
|
|
||||||
<stop
|
|
||||||
id="stop5749"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#ffeeaa;stop-opacity:1" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5737"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
id="stop5739"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5741"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#ccffaa;stop-opacity:0" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5729">
|
|
||||||
<stop
|
|
||||||
id="stop5731"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5733"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#ff9955;stop-opacity:1" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5703"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
id="stop5705"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5707"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#ccffaa;stop-opacity:0" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5693">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5695" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ccffaa;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5697" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5679">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5681" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#b3ff80;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5683" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5671">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5673" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#aaeeff;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5675" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5663">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5665" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#aaeeff;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5667" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5655">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5657" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffaaaa;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5659" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="linearGradient5643">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5645" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffaaaa;stop-opacity:1"
|
|
||||||
offset="1"
|
|
||||||
id="stop5647" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5361"
|
|
||||||
osb:paint="solid">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop5363" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3897">
|
|
||||||
<stop
|
|
||||||
id="stop3923"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#f5f5f5;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff5555;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3901" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5643"
|
|
||||||
id="linearGradient5641"
|
|
||||||
x1="193.54839"
|
|
||||||
y1="407.20087"
|
|
||||||
x2="282.25806"
|
|
||||||
y2="287.84604"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5655"
|
|
||||||
id="linearGradient5661"
|
|
||||||
x1="358.06451"
|
|
||||||
y1="273.32993"
|
|
||||||
x2="230.64516"
|
|
||||||
y2="328.16864"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5663"
|
|
||||||
id="linearGradient5669"
|
|
||||||
x1="424.19354"
|
|
||||||
y1="250.74927"
|
|
||||||
x2="575.80646"
|
|
||||||
y2="347.52347"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5671"
|
|
||||||
id="linearGradient5677"
|
|
||||||
x1="580.64514"
|
|
||||||
y1="362.03961"
|
|
||||||
x2="511.29031"
|
|
||||||
y2="292.68475"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5679"
|
|
||||||
id="linearGradient5685"
|
|
||||||
x1="590.32257"
|
|
||||||
y1="353.9751"
|
|
||||||
x2="643.5484"
|
|
||||||
y2="460.4267"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5693"
|
|
||||||
id="linearGradient5699"
|
|
||||||
x1="638.70966"
|
|
||||||
y1="515.26538"
|
|
||||||
x2="620.96771"
|
|
||||||
y2="410.4267"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5703"
|
|
||||||
id="linearGradient5701"
|
|
||||||
x1="661.29034"
|
|
||||||
y1="471.71701"
|
|
||||||
x2="601.61292"
|
|
||||||
y2="603.9751"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5737"
|
|
||||||
id="linearGradient5735"
|
|
||||||
x1="662.9032"
|
|
||||||
y1="476.55573"
|
|
||||||
x2="622.58063"
|
|
||||||
y2="592.68475"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5761"
|
|
||||||
id="linearGradient5767"
|
|
||||||
x1="630.64514"
|
|
||||||
y1="624.94287"
|
|
||||||
x2="666.12903"
|
|
||||||
y2="471.71701"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5773"
|
|
||||||
id="linearGradient5779"
|
|
||||||
x1="627.41943"
|
|
||||||
y1="574.94281"
|
|
||||||
x2="596.77417"
|
|
||||||
y2="633.00732"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5791"
|
|
||||||
id="linearGradient5797"
|
|
||||||
x1="433.87097"
|
|
||||||
y1="760.4267"
|
|
||||||
x2="609.67743"
|
|
||||||
y2="612.03955"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5799"
|
|
||||||
id="linearGradient5805"
|
|
||||||
x1="448.38708"
|
|
||||||
y1="712.03961"
|
|
||||||
x2="512.90326"
|
|
||||||
y2="670.10413"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5807"
|
|
||||||
id="linearGradient5813"
|
|
||||||
x1="462.90326"
|
|
||||||
y1="737.84607"
|
|
||||||
x2="408.06451"
|
|
||||||
y2="749.13641"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5815"
|
|
||||||
id="linearGradient5821"
|
|
||||||
x1="285.48386"
|
|
||||||
y1="726.55573"
|
|
||||||
x2="424.19354"
|
|
||||||
y2="745.91058"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient5823"
|
|
||||||
id="linearGradient5829"
|
|
||||||
x1="340.32257"
|
|
||||||
y1="671.71704"
|
|
||||||
x2="214.51613"
|
|
||||||
y2="586.23315"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="0.62"
|
|
||||||
inkscape:cx="372.04724"
|
|
||||||
inkscape:cy="514.28571"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1037"
|
|
||||||
inkscape:window-height="877"
|
|
||||||
inkscape:window-x="716"
|
|
||||||
inkscape:window-y="229"
|
|
||||||
inkscape:window-maximized="0" />
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Ebene 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1">
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:#f5f5f5;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
|
|
||||||
id="path2991"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 732.25806,499.13638 a 332.25806,332.25806 0 1 1 -664.516117,0 332.25806,332.25806 0 1 1 664.516117,0 z"
|
|
||||||
transform="translate(-35.483871,16.129032)" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5641);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="M 107.66738,341.22168 A 332.25806,332.25806 0 0 1 202.66289,231.82855 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.483871,16.129036)"
|
|
||||||
sodipodi:start="3.6368718"
|
|
||||||
sodipodi:end="4.0764574" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5661);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="M 200.72631,233.2691 A 332.25806,332.25806 0 0 1 316.54347,177.53037 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.483871,16.129038)"
|
|
||||||
sodipodi:start="4.0691931"
|
|
||||||
sodipodi:end="4.45849" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5669);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 470.71562,174.49086 a 332.25806,332.25806 0 0 1 125.84556,56.7666 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.483867,16.129038)"
|
|
||||||
sodipodi:start="4.9268629"
|
|
||||||
sodipodi:end="5.3454209" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5685);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 674.1297,311.39102 a 332.25806,332.25806 0 0 1 40.84343,81.97511 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.129035)"
|
|
||||||
sodipodi:start="5.6826807"
|
|
||||||
sodipodi:end="5.9592099" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5677);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-6"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 594.3381,229.64034 a 332.25806,332.25806 0 0 1 51.61224,46.10435 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.129035)"
|
|
||||||
sodipodi:start="5.3371471"
|
|
||||||
sodipodi:end="5.5458146" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5699);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 714.73363,392.6556 a 332.25806,332.25806 0 0 1 17.52388,107.08247 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.129032)"
|
|
||||||
sodipodi:start="5.9569532"
|
|
||||||
sodipodi:end="6.2849962" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5779);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7-8-2"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="M 717.49385,597.08062 A 332.25806,332.25806 0 0 1 674.966,685.65479 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.12903)"
|
|
||||||
sodipodi:start="0.29922907"
|
|
||||||
sodipodi:end="0.59603562" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5797);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7-8-2-6"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 678.98875,679.5822 a 332.25806,332.25806 0 0 1 -86.27104,90.21135 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.12903)"
|
|
||||||
sodipodi:start="0.57411199"
|
|
||||||
sodipodi:end="0.95203795" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5805);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7-8-2-6-2"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="M 592.79974,769.73512 A 332.25806,332.25806 0 0 1 482.78848,820.91501 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.12903)"
|
|
||||||
sodipodi:start="0.95173485"
|
|
||||||
sodipodi:end="1.318974" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5813);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7-8-2-6-2-0"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="M 484.50864,820.46753 A 332.25806,332.25806 0 0 1 419.61229,830.8151 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.12903)"
|
|
||||||
sodipodi:start="1.3136245"
|
|
||||||
sodipodi:end="1.5117347" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5821);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7-8-2-6-2-0-9"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="M 419.21619,830.83829 A 332.25806,332.25806 0 0 1 260.85593,800.85536 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.12903)"
|
|
||||||
sodipodi:start="1.5129289"
|
|
||||||
sodipodi:end="2.0029012" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5829);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7-8-2-6-2-0-9-5"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="M 262.0576,801.40664 A 332.25806,332.25806 0 0 1 139.41706,705.27213 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.483869,16.12903)"
|
|
||||||
sodipodi:start="1.9989221"
|
|
||||||
sodipodi:end="2.4723291" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient5767);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
id="path2991-7-7-7-4-7-8-2-8"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 732.25618,500.25304 a 332.25806,332.25806 0 0 1 -14.8554,97.12876 L 400,499.13638 z"
|
|
||||||
transform="translate(-35.48387,16.12903)"
|
|
||||||
sodipodi:start="0.0033608276"
|
|
||||||
sodipodi:end="0.30017785" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
|
||||||
id="path2991-0"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="332.25806"
|
|
||||||
sodipodi:ry="332.25806"
|
|
||||||
d="m 732.25806,499.13638 a 332.25806,332.25806 0 1 1 -664.516117,0 332.25806,332.25806 0 1 1 664.516117,0 z"
|
|
||||||
transform="translate(-35.483871,16.129036)" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:#ffffff;stroke:#000000;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1"
|
|
||||||
id="path2991-0-9"
|
|
||||||
sodipodi:cx="400"
|
|
||||||
sodipodi:cy="499.13638"
|
|
||||||
sodipodi:rx="99.999992"
|
|
||||||
sodipodi:ry="99.999992"
|
|
||||||
d="m 499.99999,499.13638 a 99.999992,99.999992 0 1 1 -199.99998,0 99.999992,99.999992 0 1 1 199.99998,0 z"
|
|
||||||
transform="translate(-35.483871,16.129036)" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 21 KiB |
169
icons/stop.svg
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
id="svg2"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.44.1"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docbase="/home/hbons/Desktop"
|
||||||
|
sodipodi:docname="gtk-stop.svg"
|
||||||
|
inkscape:export-filename="/home/hbons/Desktop/process-stop.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7810">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#eeeeec;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7812" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#eeeeec;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7814" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5111">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#eeeeec;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop5113" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#eeeeec;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5115" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient30505">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop30507" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop30509" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient30505"
|
||||||
|
id="radialGradient30511"
|
||||||
|
cx="25.375"
|
||||||
|
cy="47.350433"
|
||||||
|
fx="25.375"
|
||||||
|
fy="47.350433"
|
||||||
|
r="17.125000"
|
||||||
|
gradientTransform="matrix(1,0,0,0.343066,0,28.49453)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5111"
|
||||||
|
id="linearGradient5117"
|
||||||
|
x1="11.018858"
|
||||||
|
y1="5.1061416"
|
||||||
|
x2="11.018858"
|
||||||
|
y2="14.598754"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7810"
|
||||||
|
id="linearGradient7816"
|
||||||
|
x1="12.272322"
|
||||||
|
y1="0.43931913"
|
||||||
|
x2="12.272322"
|
||||||
|
y2="17.85289"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7810"
|
||||||
|
id="linearGradient8777"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="12.272322"
|
||||||
|
y1="0.43931913"
|
||||||
|
x2="12.272322"
|
||||||
|
y2="17.85289" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="22.4"
|
||||||
|
inkscape:cx="28.151628"
|
||||||
|
inkscape:cy="8.2497073"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="24px"
|
||||||
|
height="24px"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:window-width="1274"
|
||||||
|
inkscape:window-height="972"
|
||||||
|
inkscape:window-x="289"
|
||||||
|
inkscape:window-y="132" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="opacity:0.4;color:black;fill:url(#radialGradient30511);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
|
||||||
|
id="path30503"
|
||||||
|
sodipodi:cx="25.375"
|
||||||
|
sodipodi:cy="43.375"
|
||||||
|
sodipodi:rx="17.125"
|
||||||
|
sodipodi:ry="5.875"
|
||||||
|
d="M 42.5 43.375 A 17.125 5.875 0 1 1 8.25,43.375 A 17.125 5.875 0 1 1 42.5 43.375 z"
|
||||||
|
transform="matrix(-0.583942,0,0,0.425533,26.81752,2.042521)"
|
||||||
|
inkscape:export-xdpi="108.67924"
|
||||||
|
inkscape:export-ydpi="108.67924" />
|
||||||
|
<path
|
||||||
|
style="fill:#ef4e29;fill-opacity:1;stroke:#a02b00;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 7.5,2.5 L 2.5,7.5 L 2.5,16.5 L 7.5,21.5 L 16.5,21.5 L 21.5,16.5 L 21.5,7.5 L 16.5,2.5 L 7.5,2.5 z "
|
||||||
|
id="rect6915"
|
||||||
|
sodipodi:nodetypes="ccccccccc"
|
||||||
|
transform="translate(-7e-6,0)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="inkscape:offset"
|
||||||
|
inkscape:radius="-1.0267857"
|
||||||
|
inkscape:original="M 7.5 2.5 L 2.5 7.5 L 2.5 16.5 L 7.5 21.5 L 16.5 21.5 L 21.5 16.5 L 21.5 7.5 L 16.5 2.5 L 7.5 2.5 z "
|
||||||
|
style="opacity:0.4;fill:url(#linearGradient7816);fill-opacity:1;stroke:#eeeeec;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path7808"
|
||||||
|
d="M 7.90625,3.53125 L 3.53125,7.90625 L 3.53125,16.09375 L 7.90625,20.46875 L 16.09375,20.46875 L 20.46875,16.09375 L 20.46875,7.90625 L 16.09375,3.53125 L 7.90625,3.53125 z "
|
||||||
|
transform="translate(-7e-6,0)" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#c00;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 10.5,5.5 L 10.5,10.5 L 5.5,10.5 L 5.5,13.5 L 10.5,13.5 L 10.5,18.5 L 13.5,18.5 L 13.5,13.5 L 18.5,13.5 L 18.5,10.5 L 13.5,10.5 L 13.5,5.5 L 10.5,5.5 z "
|
||||||
|
id="rect5279"
|
||||||
|
transform="matrix(0.707107,0.707107,-0.707107,0.707107,11.99998,-4.970563)" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.9 KiB |
17
icons/strip.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 25.708 25.708" fill="#4658f5">
|
||||||
|
<path d="M23.354,7.23c0,0-1.439-1.239-2.652-0.548c-0.934,0.537-6.867,3.514-9.514,4.84L7.44,9.379
|
||||||
|
C7.847,8.658,7.915,7.824,7.696,7.02c-0.277-1.016-1.01-1.979-2.092-2.598C3.659,3.307,1.321,3.731,0.388,5.369
|
||||||
|
c-0.416,0.723-0.484,1.563-0.266,2.373c0.277,1.016,1.01,1.98,2.092,2.602c0.478,0.27,0.976,0.449,1.471,0.541v0.001
|
||||||
|
c0.004,0.001,0.008,0.001,0.012,0.003c0.039,0.006,0.084,0.015,0.127,0.02c3.086,0.459,4.664,1.33,5.43,1.944
|
||||||
|
c-0.766,0.616-2.344,1.485-5.43,1.945c-0.043,0.005-0.088,0.013-0.127,0.019c-0.004,0.002-0.008,0.002-0.012,0.004l0,0
|
||||||
|
c-0.494,0.092-0.992,0.271-1.471,0.542c-1.082,0.622-1.814,1.585-2.092,2.602c-0.219,0.808-0.15,1.648,0.266,2.375
|
||||||
|
c0.934,1.635,3.271,2.061,5.217,0.946c1.082-0.621,1.814-1.584,2.092-2.602c0.219-0.803,0.15-1.635-0.256-2.357l3.748-2.142
|
||||||
|
c2.646,1.325,8.58,4.305,9.514,4.839c1.213,0.691,2.652-0.547,2.652-0.547l-9.838-5.624L23.354,7.23z M5.843,8.487
|
||||||
|
C5.417,9.229,4.173,9.35,3.126,8.751C2.511,8.401,2.048,7.843,1.89,7.263C1.821,7.004,1.776,6.625,1.978,6.278
|
||||||
|
c0.424-0.741,1.668-0.862,2.715-0.264c0.625,0.355,1.074,0.898,1.234,1.488C5.999,7.758,6.04,8.139,5.843,8.487z M5.927,18.203
|
||||||
|
c-0.16,0.591-0.609,1.133-1.234,1.489c-1.047,0.6-2.291,0.478-2.715-0.265c-0.201-0.348-0.156-0.726-0.088-0.982
|
||||||
|
c0.158-0.582,0.621-1.14,1.236-1.492c1.047-0.598,2.291-0.477,2.717,0.266C6.04,17.569,5.999,17.947,5.927,18.203z"/>
|
||||||
|
<rect x="15.864" y="12.367" width="2.41" height="0.992"/>
|
||||||
|
<rect x="19.478" y="12.367" width="2.408" height="0.992"/>
|
||||||
|
<rect x="23.302" y="12.357" width="2.406" height="0.991"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
16
icons/verify-symbolic.svg
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<svg cursor="default" version="1.0" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<style>
|
||||||
|
.blue { fill: #4658f5 !important; }
|
||||||
|
.white { fill: #ffffff !important; }
|
||||||
|
.black { fill: #000000 !important; }
|
||||||
|
</style>
|
||||||
|
<path d="m2.6909.19079c-.68159 0-1.2645.28699-1.6502.81612-.3677.49326-.5381 1.3004-.5381 2.538 0 1.13.14349 1.9192.44842 2.4035.37667.60985.99548.94167 1.7399.94167.69056 0 1.2556-.27802 1.6502-.80715.35873-.49326.5381-1.3094.5381-2.5022 0-1.1659-.14349-1.9551-.44842-2.4483-.37667-.60984-.99548-.94167-1.7399-.94167zm0 1.0134c.32286 0 .58294.17937.7354.51119.12556.26905.1973.95961.1973 1.8385 0 .71746-.062778 1.417-.16143 1.6771-.14349.37667-.41254.58294-.77127.58294-.33183 0-.58294-.1704-.7354-.49326-.12556-.26905-.1973-.9327-.1973-1.7847 0-.75334.062778-1.4708.16143-1.7309.13452-.38564.41254-.60088.77127-.60088zm4.6725 1.0941v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405zm4.9864 0v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405zm4.9864 0v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405zm5.3003-2.1076c-.68159 0-1.2645.28699-1.6502.81612-.3677.49326-.5381 1.3004-.5381 2.538 0 1.13.14349 1.9192.44842 2.4035.37667.60985.99548.94167 1.7399.94167.69056 0 1.2556-.27802 1.6502-.80715.35873-.49326.5381-1.3094.5381-2.5022 0-1.1659-.14349-1.9551-.44842-2.4483-.37667-.60984-.99548-.94167-1.7399-.94167zm0 1.0134c.32286 0 .58294.17937.7354.51119.12556.26905.1973.95961.1973 1.8385 0 .71746-.06278 1.417-.16143 1.6771-.14349.37667-.41254.58294-.77127.58294-.33183 0-.58294-.1704-.7354-.49326-.12556-.26905-.1973-.9327-.1973-1.7847 0-.75334.06278-1.4708.16143-1.7309.13452-.38564.41254-.60088.77128-.60088z" opacity=".5"/>
|
||||||
|
<path d="m2.377 11.319v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405zm5.3003-2.1076c-.68159 0-1.2645.28699-1.6502.81612-.3677.49326-.5381 1.3004-.5381 2.538 0 1.13.14349 1.9192.44842 2.4035.37667.60984.99548.94167 1.7399.94167.69056 0 1.2556-.27802 1.6502-.80715.35873-.49326.5381-1.3094.5381-2.5022 0-1.1659-.14349-1.9551-.44842-2.4483-.37667-.60984-.99548-.94167-1.7399-.94167zm0 1.0134c.32286 0 .58294.17937.7354.51119.12556.26905.1973.95961.1973 1.8385 0 .71746-.062778 1.417-.16143 1.6771-.14349.37667-.41254.58294-.77127.58294-.33183 0-.58294-.1704-.7354-.49326-.12556-.26905-.1973-.9327-.1973-1.7847 0-.75334.062778-1.4708.16143-1.7309.13452-.38564.41254-.60088.77127-.60088zm4.9864-1.0134c-.68159 0-1.2645.28699-1.6502.81612-.3677.49326-.5381 1.3004-.5381 2.538 0 1.13.14349 1.9192.44842 2.4035.37667.60984.99548.94167 1.7399.94167.69056 0 1.2556-.27802 1.6502-.80715.35873-.49326.5381-1.3094.5381-2.5022 0-1.1659-.14349-1.9551-.44842-2.4483-.37667-.60984-.99548-.94167-1.7399-.94167zm0 1.0134c.32286 0 .58294.17937.7354.51119.12556.26905.1973.95961.1973 1.8385 0 .71746-.06278 1.417-.16143 1.6771-.14349.37667-.41254.58294-.77128.58294-.33183 0-.58294-.1704-.7354-.49326-.12556-.26905-.1973-.9327-.1973-1.7847 0-.75334.06278-1.4708.16143-1.7309.13452-.38564.41254-.60088.77128-.60088zm4.6725 1.0941v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405zm4.9864 0v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405z"/>
|
||||||
|
<path d="m2.6909 18.233c-.68159 0-1.2645.28699-1.6502.81612-.3677.49326-.5381 1.3004-.5381 2.538 0 1.13.14349 1.9192.44842 2.4035.37667.60984.99548.94167 1.7399.94167.69056 0 1.2556-.27802 1.6502-.80715.35873-.49326.5381-1.3094.5381-2.5022 0-1.1659-.14349-1.9551-.44842-2.4483-.37667-.60984-.99548-.94167-1.7399-.94167zm0 1.0134c.32286 0 .58294.17937.7354.51119.12556.26905.1973.95961.1973 1.8385 0 .71746-.062778 1.417-.16143 1.6771-.14349.37667-.41254.58294-.77127.58294-.33183 0-.58294-.1704-.7354-.49326-.12556-.26905-.1973-.9327-.1973-1.7847 0-.75334.062778-1.4708.16143-1.7309.13452-.38564.41254-.60088.77127-.60088zm4.9864-1.0134c-.68159 0-1.2645.28699-1.6502.81612-.3677.49326-.5381 1.3004-.5381 2.538 0 1.13.14349 1.9192.44842 2.4035.37667.60984.99548.94167 1.7399.94167.69056 0 1.2556-.27802 1.6502-.80715.35873-.49326.5381-1.3094.5381-2.5022 0-1.1659-.14349-1.9551-.44842-2.4483-.37667-.60984-.99548-.94167-1.7399-.94167zm0 1.0134c.32286 0 .58294.17937.7354.51119.12556.26905.1973.95961.1973 1.8385 0 .71746-.062778 1.417-.16143 1.6771-.14349.37667-.41254.58294-.77127.58294-.33183 0-.58294-.1704-.7354-.49326-.12556-.26905-.1973-.9327-.1973-1.7847 0-.75334.062778-1.4708.16143-1.7309.13452-.38564.41254-.60088.77127-.60088zm4.6725 1.0941v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405zm4.9864 0v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405zm4.9864 0v4.3855h1.2556v-6.3585h-.83405c-.1973.75334-.85199 1.139-1.9461 1.139v.83405z" opacity=".5"/>
|
||||||
|
<path d="m36 12-24 26c-.27.29-.26.74.026 1 .29.27.74.26 1-.026l24-26c.27-.29.26-.74-.026-1-.28-.26-.73-.27-1 .026z"/>
|
||||||
|
<g transform="matrix(.023438 0 0 .023438 23.333 22.866)">
|
||||||
|
<path d="m407.84 27.68c244.16-58.56 512.8 101.28 578.88 343.04 77.6 240-62.56 521.12-300 604.64-225.12 90.88-504.16-16-612.8-232.32-114.08-206.56-51.36-488 139.84-626.4 57.12-43.52 124-73.6 194.08-88.96" class="black"/>
|
||||||
|
<path d="m113.76 275.84c83.04-143.36 248.32-234.56 414.08-226.24 112.96 4.16 212 108.8 208.32 222.24 2.56 83.36-48.32 162.56-121.44 200.48-60.48 34.24-134.72 13.76-196.96 42.88-119.36 43.84-190.72 187.52-150.72 308.8 12.16 45.44 40.64 83.52 68.8 120.16-96.16-47.36-183.68-118.08-232.96-215.04-75.36-139.36-71.36-317.6 10.88-453.28m368.32-99.52c-75.84 19.36-95.04 131.52-30.72 175.52 56 46.4 152.32 8.32 159.52-64.48 14.08-70.4-61.28-134.88-128.8-111.04M483.2 689.92c48.8-24.16 110.24 24.32 94.72 77.44-8.16 50.56-79.84 70.4-113.76 32.8-33.6-30.56-22.56-92.32 19.04-110.24" class="white"/>
|
||||||
|
<path d="m688.96 80.32c96.64 47.84 184.48 119.04 233.28 217.12 74.72 139.68 69.44 317.6-13.28 452.8-85.92 146.56-258.24 237.44-427.84 223.2-68-6.08-127.84-51.84-162.4-109.12-56.8-91.2-31.2-219.52 53.12-284.96 46.72-42.88 111.2-50.72 171.84-53.92 120-8.8 219.2-116.96 224.32-236.16 7.2-78.08-29.76-151.04-79.04-208.96m-219.84 580.8c-70.08 29.28-76.48 138.4-10.56 175.84 62.4 43.04 158.72-8.96 153.28-85.6 3.68-71.04-80.32-122.24-142.72-90.24M483.36 210.08c48.48-24 109.76 24 94.56 76.8-7.68 50.56-78.72 70.72-113.12 33.92-34.24-30.4-23.52-92.96 18.56-110.72" class="blue"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.3 KiB |
@@ -1,27 +0,0 @@
|
|||||||
#FIG 3.2
|
|
||||||
Landscape
|
|
||||||
Center
|
|
||||||
Metric
|
|
||||||
A4
|
|
||||||
100.00
|
|
||||||
Single
|
|
||||||
-2
|
|
||||||
1200 2
|
|
||||||
6 8595 9495 15885 16785
|
|
||||||
5 1 0 20 0 7 50 0 -1 0.000 0 1 0 0 12240.000 14871.000 12240 13140 10509 14871 12240 16602
|
|
||||||
5 1 0 20 0 7 50 0 -1 0.000 0 0 0 0 12240.000 11409.000 12240 9678 13971 11409 12240 13140
|
|
||||||
1 3 0 20 0 7 50 0 -1 0.000 1 0.0000 12240 14871 500 500 12240 14871 12740 14871
|
|
||||||
1 3 0 20 0 7 50 0 -1 0.000 1 0.0000 12240 13140 3457 3457 12240 13140 15697 13140
|
|
||||||
1 3 0 20 0 7 50 0 -1 0.000 1 0.0000 12240 11409 500 500 12240 11409 12740 11409
|
|
||||||
-6
|
|
||||||
6 1665 2520 7200 9270
|
|
||||||
6 1665 2520 7200 9270
|
|
||||||
4 0 0 50 -1 18 160 0.0000 4 1695 6750 1710 9270 00111\001
|
|
||||||
4 0 0 50 -1 18 160 0.0000 4 1695 6750 1665 4275 01110\001
|
|
||||||
4 0 0 50 -1 18 160 0.0000 4 1695 6750 1665 6705 10011\001
|
|
||||||
-6
|
|
||||||
-6
|
|
||||||
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
|
|
||||||
1350 2250 16200 2250 16200 17100 1350 17100 1350 2250
|
|
||||||
2 1 0 30 0 7 50 -1 -1 0.000 0 1 -1 0 0 2
|
|
||||||
12600 5805 4905 13905
|
|
||||||
BIN
icons/verify.png
|
Before Width: | Height: | Size: 969 B |
@@ -7,7 +7,7 @@ cat > Makefile <<EOF
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
for i in ../*.c; do
|
for i in ../src/*.c; do
|
||||||
cfiles="$cfiles $i"
|
cfiles="$cfiles $i"
|
||||||
nopath=`echo $i | sed -e 's/..\///'`
|
nopath=`echo $i | sed -e 's/..\///'`
|
||||||
cfiles2="$cfiles2 $nopath"
|
cfiles2="$cfiles2 $nopath"
|
||||||
@@ -34,7 +34,7 @@ messages.pot: \$(CFILES)
|
|||||||
@cd ..; xgettext --no-wrap -cTRANSLATORS: -o locale/messages.pot -k_ -k_utf \$(CFILES_NP)
|
@cd ..; xgettext --no-wrap -cTRANSLATORS: -o locale/messages.pot -k_ -k_utf \$(CFILES_NP)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f messages.pot
|
@rm -f messages.pot
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|||||||
5196
locale/cs.po
5421
locale/de.po
3978
locale/it.po
4662
locale/pt_BR.po
4745
locale/ru.po
4082
locale/sv.po
26
macinst/Info.plist
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key></key>
|
||||||
|
<string></string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>dvdisaster</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>dvdisaster</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.dvdisaster.dvdisaster</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>dvdisaster</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>0.79.10</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>CGCG</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
<string>© 2004-2009 Carsten Gnörlich et al</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
BIN
macinst/dvdisaster.icns
Normal file
@@ -7,11 +7,19 @@ DATABASE=./database
|
|||||||
RNDSEQ="./fixed-random-sequence"
|
RNDSEQ="./fixed-random-sequence"
|
||||||
|
|
||||||
NON_EXISTENT_DEVICE=/dev/sdz
|
NON_EXISTENT_DEVICE=/dev/sdz
|
||||||
|
|
||||||
|
# directory for permanently storing test files
|
||||||
ISODIR=/var/tmp/regtest
|
ISODIR=/var/tmp/regtest
|
||||||
if ! test -d $ISODIR; then
|
if ! test -d $ISODIR; then
|
||||||
echo "$ISODIR does not exist."
|
echo "$ISODIR does not exist."
|
||||||
echo "Please create it manually, or edit common.bash"
|
echo "Please create it manually, or edit common.bash"
|
||||||
exit 0
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# directory for temporary files; e.g. to keep them away from SSDs
|
||||||
|
TMPDIR=/dev/shm
|
||||||
|
if ! test -d $TMPDIR; then
|
||||||
|
TMPDIR=/var/tmp
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LOGDIR="/dev/shm"
|
LOGDIR="/dev/shm"
|
||||||
@@ -23,33 +31,38 @@ DIFFLOG="$LOGDIR/difflog.txt"
|
|||||||
NEWLOG="$LOGDIR/newlog.txt"
|
NEWLOG="$LOGDIR/newlog.txt"
|
||||||
TMPLOG="$LOGDIR/tmplog.txt"
|
TMPLOG="$LOGDIR/tmplog.txt"
|
||||||
|
|
||||||
MD5SUM=md5sum
|
UNAME="$(uname -s)"
|
||||||
|
|
||||||
|
if [ "$UNAME" = Darwin ]; then
|
||||||
|
MD5SUM="md5 -r"
|
||||||
|
else
|
||||||
|
MD5SUM=md5sum
|
||||||
|
fi
|
||||||
|
|
||||||
if ! $MD5SUM $RNDSEQ >/dev/null 2>&1; then
|
if ! $MD5SUM $RNDSEQ >/dev/null 2>&1; then
|
||||||
MD5SUM=../simple-md5sum
|
MD5SUM=../simple-md5sum
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Assemble sed expressions for removal of variable output contents
|
nbfailed=0
|
||||||
|
|
||||||
SED_REMOVE_ISO_DIR="([a-zA-Z]:/[a-zA-Z0-9/]+)?${ISODIR}/"
|
|
||||||
|
|
||||||
# For MSYS2
|
# For MSYS2
|
||||||
|
|
||||||
if [ -n "$ORIGINAL_TEMP" ]; then
|
if [ -n "$ORIGINAL_TEMP" ]; then
|
||||||
ISODIR="$ORIGINAL_TEMP"
|
ISODIR="$ORIGINAL_TEMP"
|
||||||
# /c/ => C:/
|
# /c/ => C:/
|
||||||
SED_REMOVE_ISO_DIR="$(echo "$ISODIR" | cut -c2 | tr a-z A-Z):$(echo "$ISODIR" | cut -c3-)/"
|
|
||||||
NON_EXISTENT_DEVICE=V:
|
NON_EXISTENT_DEVICE=V:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
if test "$1" == "--help" || test "$1" == "-h"; then
|
if test "$1" == "--help" || test "$1" == "-h"; then
|
||||||
echo "Usage: $0 [gui] [all|cont <test case>]"
|
echo "Usage: $0 [gui] [all|[cont|only] <test case>]"
|
||||||
exit 0;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
doall="no"
|
doall="no"
|
||||||
cont_at="false"
|
cont_at="false"
|
||||||
|
only_this_one="false"
|
||||||
gui_mode="false"
|
gui_mode="false"
|
||||||
|
|
||||||
param=($*)
|
param=($*)
|
||||||
@@ -59,6 +72,7 @@ case "${param[0]}" in
|
|||||||
gui_mode="true"
|
gui_mode="true"
|
||||||
param[0]="${param[1]}"
|
param[0]="${param[1]}"
|
||||||
param[1]="${param[2]}"
|
param[1]="${param[2]}"
|
||||||
|
param[2]="${param[3]}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -69,6 +83,9 @@ case "${param[0]}" in
|
|||||||
cont)
|
cont)
|
||||||
cont_at="${param[1]}"
|
cont_at="${param[1]}"
|
||||||
;;
|
;;
|
||||||
|
only)
|
||||||
|
only_this_one="${param[1]}"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Sanity check
|
# Sanity check
|
||||||
@@ -78,7 +95,7 @@ if test -x $NEWVER; then
|
|||||||
echo "OK"
|
echo "OK"
|
||||||
else
|
else
|
||||||
echo "missing."
|
echo "missing."
|
||||||
exit 0
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### Helper functions
|
### Helper functions
|
||||||
@@ -103,7 +120,7 @@ function file_exists()
|
|||||||
|
|
||||||
function try()
|
function try()
|
||||||
{ local doit=$(grep "${CODEC_PREFIX}_$2 " $CONFIGFILE)
|
{ local doit=$(grep "${CODEC_PREFIX}_$2 " $CONFIGFILE)
|
||||||
if echo "$OS" | grep -q Windows && test -e "$CONFIGFILE_WIN" && grep -q "${CODEC_PREFIX}_$2 " "$CONFIGFILE_WIN"; then
|
if [[ $OS =~ Windows ]] && test -e "$CONFIGFILE_WIN" && grep -q "${CODEC_PREFIX}_$2 " "$CONFIGFILE_WIN"; then
|
||||||
doit=$(grep "${CODEC_PREFIX}_$2 " "$CONFIGFILE_WIN")
|
doit=$(grep "${CODEC_PREFIX}_$2 " "$CONFIGFILE_WIN")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -118,9 +135,19 @@ function try()
|
|||||||
cont_at="false"
|
cont_at="false"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$only_this_one" != "false"; then
|
||||||
|
if test "$only_this_one" != "${CODEC_PREFIX}_$2"; then
|
||||||
|
return 1
|
||||||
|
elif test "$only_this_one" == "done_please_exit"; then
|
||||||
|
exit $nbfailed
|
||||||
|
else
|
||||||
|
only_this_one="done_please_exit"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
doit=$(echo $doit | cut -d\ -f 2)
|
doit=$(echo $doit | cut -d\ -f 2)
|
||||||
|
|
||||||
if test $doall = "yes" || test $doit = "yes"; then
|
if test $doall = "yes" || test $doit = "yes" || test $only_this_one != "false"; then
|
||||||
# Clean up temporary files
|
# Clean up temporary files
|
||||||
if test -n "$TMPISO" && test -f "$TMPISO"; then
|
if test -n "$TMPISO" && test -f "$TMPISO"; then
|
||||||
rm -f $TMPISO
|
rm -f $TMPISO
|
||||||
@@ -136,10 +163,16 @@ function try()
|
|||||||
REGTEST_SECTION="Test"
|
REGTEST_SECTION="Test"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "[ ] ${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - "
|
if [ "$REGTEST_NO_UTF8" != 1 ]; then
|
||||||
|
echo -n "[ ] "
|
||||||
|
fi
|
||||||
|
echo -n "${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - "
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
echo "[-] ${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - SKIPPED ($doit, ${CODEC_PREFIX}_$2)"
|
if [ "$REGTEST_NO_UTF8" != 1 ]; then
|
||||||
|
echo -n "[-] "
|
||||||
|
fi
|
||||||
|
echo "${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - SKIPPED ($doit, ${CODEC_PREFIX}_$2)"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -173,7 +206,7 @@ function run_regtest()
|
|||||||
local testeccopt=""
|
local testeccopt=""
|
||||||
local image_md5=""
|
local image_md5=""
|
||||||
local ecc_md5=""
|
local ecc_md5=""
|
||||||
local pass="true"
|
local pass="false"
|
||||||
|
|
||||||
local fail_on_bad=$(grep "FAIL_ON_BAD" $CONFIGFILE)
|
local fail_on_bad=$(grep "FAIL_ON_BAD" $CONFIGFILE)
|
||||||
fail_on_bad=$(echo $fail_on_bad | cut -d\ -f 2)
|
fail_on_bad=$(echo $fail_on_bad | cut -d\ -f 2)
|
||||||
@@ -183,64 +216,95 @@ function run_regtest()
|
|||||||
|
|
||||||
local interactive_diff=$(grep "INTERACTIVE_DIFF" $CONFIGFILE)
|
local interactive_diff=$(grep "INTERACTIVE_DIFF" $CONFIGFILE)
|
||||||
interactive_diff=$(echo $interactive_diff | cut -d\ -f 2)
|
interactive_diff=$(echo $interactive_diff | cut -d\ -f 2)
|
||||||
|
|
||||||
|
if test -z "$testecc"; then
|
||||||
|
echo -e "broken test case $1\n--> run_regtest: 4 arguments required to ensure deterministic test behaviour."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if test -n "${testecc}"; then
|
if test -n "${testecc}"; then
|
||||||
testeccopt="-e ${testecc}"
|
testeccopt="-e ${testecc}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
REFLOG=${DATABASE}/${CODEC_PREFIX}_${testsymbol}
|
REFLOG="${DATABASE}/${CODEC_PREFIX}_${testsymbol}"
|
||||||
|
if [ "$UNAME" = "Darwin" ] && [ -f "$REFLOG.darwin" ]; then
|
||||||
|
REFLOG="$REFLOG.darwin"
|
||||||
|
elif [[ $OS =~ Windows ]] && [ -f "$REFLOG.win" ]; then
|
||||||
|
REFLOG="$REFLOG.win"
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$gui_mode" == "false"; then
|
if test "$gui_mode" == "false"; then
|
||||||
rm -f $NEWLOG
|
rm -f $NEWLOG
|
||||||
|
|
||||||
echo "LANG=en_EN.UTF-8 $NEWVER --regtest --no-progress -i${testiso} ${testeccopt} ${extra_args} ${testparms}" >>$LOGFILE
|
echo "LANG=en_EN.UTF-8 $NEWVER --regtest --no-progress -i${testiso} ${testeccopt} ${extra_args} ${testparms}" >>$LOGFILE
|
||||||
LANG=en_EN.UTF-8 $NEWVER --regtest --no-progress -i${testiso} ${testeccopt} ${extra_args} ${testparms} 2>&1 | tail -n +3 >>$NEWLOG
|
LANG=en_EN.UTF-8 $NEWVER --regtest --no-progress -i${testiso} ${testeccopt} ${extra_args} ${testparms} 2>&1 | tail -n +4 >>$NEWLOG
|
||||||
|
|
||||||
if ! test -r $REFLOG; then
|
if ! test -r $REFLOG; then
|
||||||
echo -e "FAIL\n$REFLOG missing in log file database"
|
pass="false"
|
||||||
return
|
if [ "$REGTEST_NO_UTF8" = 1 ]; then
|
||||||
fi
|
echo "BAD; '$REFLOG' is missing in log file database"
|
||||||
|
else
|
||||||
|
printf "%b\r%b\n" "BAD; '$REFLOG' is missing in log file database" "[\e[31m✘\e[0m]"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# ignore the memory tracker line when no memory leaks
|
||||||
|
# have been found
|
||||||
|
|
||||||
# ignore the memory tracker line when no memory leaks
|
grep -va "dvdisaster: No memory leaks found." $NEWLOG >$TMPLOG
|
||||||
# have been found
|
mv $TMPLOG $NEWLOG
|
||||||
|
|
||||||
grep -va "dvdisaster: No memory leaks found." $NEWLOG >$TMPLOG
|
|
||||||
mv $TMPLOG $NEWLOG
|
|
||||||
|
|
||||||
# ignore log lines specified by user
|
|
||||||
|
|
||||||
if test -n "$IGNORE_LOG_LINE"; then
|
|
||||||
grep -Eva "$IGNORE_LOG_LINE" $NEWLOG >$TMPLOG
|
|
||||||
mv $TMPLOG $NEWLOG
|
|
||||||
fi
|
|
||||||
|
|
||||||
filter=cat
|
# ignore log lines specified by user
|
||||||
echo "$options" | grep -qw SORTED && filter=sort
|
|
||||||
if [ "${CODEC_PREFIX}_${testsymbol}" = RS01_scan_no_device ] || [ "${CODEC_PREFIX}_${testsymbol}" = RS01_read_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]"
|
|
||||||
cat ${DIFFLOG}
|
|
||||||
|
|
||||||
if test "$interactive_diff" == "yes"; then
|
if test -n "$IGNORE_LOG_LINE"; then
|
||||||
echo
|
grep -Eva "$IGNORE_LOG_LINE" $NEWLOG >$TMPLOG
|
||||||
echo ">> The diff can also be seen with: vimdiff $REFLOG $NEWLOG"
|
mv $TMPLOG $NEWLOG
|
||||||
read -n 1 -p ">> Press 'a' to accept this diff; any other key to fail this test:" -e answer
|
fi
|
||||||
if test "$answer" == "a"; then
|
|
||||||
cp $REFLOG $LOGDIR
|
filter=cat
|
||||||
head -n 2 $LOGDIR/${CODEC_PREFIX}_${testsymbol} >$REFLOG
|
echo "$options" | grep -qw SORTED && filter=sort
|
||||||
sed -e "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG >>$REFLOG
|
|
||||||
pass="skip"
|
# for Windows, just remove any path we find:
|
||||||
else
|
sed -i -re "s=[A-Z]:/[A-Za-z0-9_/-]+/==g" $NEWLOG
|
||||||
pass="false"
|
|
||||||
fi
|
# remove all paths to get reproducible output:
|
||||||
else
|
sed -i -re "s=$TMPDIR/*==g;s=$ISODIR/*==g;s=regtest/==g" $NEWLOG
|
||||||
pass="false"
|
|
||||||
fi
|
# remote tmp path of github actions
|
||||||
fi
|
sed -i -re "s=[-A-Za-z0-9_~]+/AppData/Local/Temp/==g" $NEWLOG
|
||||||
|
|
||||||
|
if ! diff <(tail -n +3 $REFLOG | $filter) <(cat $NEWLOG | $filter) >${DIFFLOG}; then
|
||||||
|
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
|
||||||
|
while true; do
|
||||||
|
read -n 1 -p ">> Press 'a' to accept this diff; 'i' to ignore; '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
|
||||||
|
cat $NEWLOG >>$REFLOG
|
||||||
|
pass="skip"
|
||||||
|
elif test "$answer" == "v"; then
|
||||||
|
vimdiff $REFLOG $NEWLOG
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
if test "$answer" == "i"; then
|
||||||
|
pass="skip"
|
||||||
|
else
|
||||||
|
pass="false"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
pass="true"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
else # gui mode
|
else # gui mode
|
||||||
replace_config last-image "$testiso"
|
replace_config last-image "$testiso"
|
||||||
if test -n "${testecc}"; then
|
if test -n "${testecc}"; then
|
||||||
@@ -253,30 +317,38 @@ function run_regtest()
|
|||||||
xterm_pid=$!
|
xterm_pid=$!
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LANG=en_EN.UTF-8 $NEWVER --regtest $extra_args --resource-file $LOGDIR/.dvdisaster-regtest >>$NEWLOG 2>&1
|
LANG=en_EN.UTF-8 timeout 15 $NEWVER --regtest $extra_args --resource-file $LOGDIR/.dvdisaster-regtest >>$NEWLOG 2>&1
|
||||||
rm -f $LOGDIR/.dvdisaster-regtest
|
rm -f $LOGDIR/.dvdisaster-regtest
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unset extra_args
|
unset extra_args
|
||||||
|
|
||||||
image_md5=$(head -n 1 $REFLOG)
|
if test -r "$REFLOG"; then
|
||||||
ecc_md5=$(head -n 2 $REFLOG | tail -n 1)
|
image_md5=$(head -n 1 $REFLOG)
|
||||||
|
ecc_md5=$(head -n 2 $REFLOG | tail -n 1)
|
||||||
|
else
|
||||||
|
image_md5=ignore
|
||||||
|
ecc_md5=ignore
|
||||||
|
fi
|
||||||
|
|
||||||
if test ${image_md5} != "ignore"; then
|
if test "${image_md5}" != "ignore"; then
|
||||||
md5=$($MD5SUM ${testiso} | cut -d\ -f 1)
|
md5=$($MD5SUM ${testiso} | cut -d\ -f 1)
|
||||||
if test "$image_md5" != "$md5"; then
|
if test "$image_md5" != "$md5"; then
|
||||||
echo "BAD; md5 sum mismatch in image file:"
|
if [ "$REGTEST_NO_UTF8" = 1 ]; then
|
||||||
printf "%b\r%b\n" "BAD; md5 sum mismatch in image file:" "[\e[31m✘\e[0m]"
|
echo "BAD; md5 sum mismatch in image file:"
|
||||||
|
else
|
||||||
|
printf "%b\r%b\n" "BAD; md5 sum mismatch in image file:" "[\e[31m✘\e[0m]"
|
||||||
|
fi
|
||||||
echo "... expected image: $image_md5"
|
echo "... expected image: $image_md5"
|
||||||
echo "... generated image: $md5"
|
echo "... generated image: $md5"
|
||||||
pass="false"
|
pass="false"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test ${ecc_md5} != "ignore"; then
|
if test "${ecc_md5}" != "ignore"; then
|
||||||
md5=$($MD5SUM ${testecc} | cut -d\ -f 1)
|
md5=$($MD5SUM ${testecc} | cut -d\ -f 1)
|
||||||
if test "$ecc_md5" != "$md5"; then
|
if test "$ecc_md5" != "$md5"; then
|
||||||
if [ "$pass" = false ]; then
|
if [ "$pass" = false ] || [ "$REGTEST_NO_UTF8" = 1 ]; then
|
||||||
echo "BAD; md5 sum mismatch in ecc file:"
|
echo "BAD; md5 sum mismatch in ecc file:"
|
||||||
else
|
else
|
||||||
printf "%b\r%b\n" "BAD; md5 sum mismatch in ecc file:" "[\e[31m✘\e[0m]"
|
printf "%b\r%b\n" "BAD; md5 sum mismatch in ecc file:" "[\e[31m✘\e[0m]"
|
||||||
@@ -289,16 +361,22 @@ function run_regtest()
|
|||||||
|
|
||||||
case "${pass}" in
|
case "${pass}" in
|
||||||
true)
|
true)
|
||||||
printf "%b\r%b\n" "GOOD" "[\e[32m✓\e[0m]"
|
if [ "$REGTEST_NO_UTF8" = 1 ]; then
|
||||||
|
echo GOOD
|
||||||
|
else
|
||||||
|
printf "%b\r%b\n" "GOOD" "[\e[32m✓\e[0m]"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
skip)
|
skip)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
nbfailed=$((nbfailed + 1))
|
||||||
|
[ $nbfailed -ge 256 ] && nbfailed=255
|
||||||
echo "test symbol for config: $testsymbol"
|
echo "test symbol for config: $testsymbol"
|
||||||
if test "$fail_on_bad" == "yes"; then
|
if test "$fail_on_bad" == "yes"; then
|
||||||
next=$(grep -A 1 ${CODEC_PREFIX}_$testsymbol config.txt | tail -n 1 | cut -d\ -f 1)
|
next=$(grep -A 1 "${CODEC_PREFIX}_$testsymbol" config.txt | tail -n 1 | cut -d\ -f 1)
|
||||||
echo "FAIL_ON_BAD set to yes -- exiting"
|
echo "FAIL_ON_BAD set to yes -- exiting"
|
||||||
if test "$gui_mode" == "true"; then
|
if test "$gui_mode" == "true"; then
|
||||||
guiarg="gui"
|
guiarg="gui"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Global toggles
|
# Global toggles
|
||||||
|
|
||||||
FAIL_ON_BAD yes
|
FAIL_ON_BAD no
|
||||||
SPAWN_LOG_WINDOW no
|
SPAWN_LOG_WINDOW no
|
||||||
INTERACTIVE_DIFF yes
|
INTERACTIVE_DIFF yes
|
||||||
|
|
||||||
@@ -170,6 +170,11 @@ RS01_adaptive_medium_with_dsm yes
|
|||||||
|
|
||||||
### RS02 tests
|
### RS02 tests
|
||||||
|
|
||||||
|
# Strip tests
|
||||||
|
|
||||||
|
RS02_strip_ecc yes
|
||||||
|
RS02_strip_ecc_not yes
|
||||||
|
|
||||||
# Verify tests
|
# Verify tests
|
||||||
RS02_good yes
|
RS02_good yes
|
||||||
RS02_good_quick yes
|
RS02_good_quick yes
|
||||||
@@ -227,8 +232,8 @@ RS02_ecc_create_after_partial_read yes
|
|||||||
RS02_fix_no_read_perm yes
|
RS02_fix_no_read_perm yes
|
||||||
RS02_fix_no_write_perm yes
|
RS02_fix_no_write_perm yes
|
||||||
RS02_fix_good_image yes
|
RS02_fix_good_image yes
|
||||||
RS02_fix_image_plus137 yes
|
RS02_fix_image_plus137 no
|
||||||
RS02_fix_image_error_in_plus137 yes
|
RS02_fix_image_error_in_plus137 no
|
||||||
RS02_fix_truncated_image yes
|
RS02_fix_truncated_image yes
|
||||||
RS02_fix_trailing_bytes yes
|
RS02_fix_trailing_bytes yes
|
||||||
RS02_fix_trailing_tao yes
|
RS02_fix_trailing_tao yes
|
||||||
@@ -335,6 +340,11 @@ RS02_adaptive_with_wrong_rs03_file yes
|
|||||||
|
|
||||||
### RS03 augmented image tests
|
### RS03 augmented image tests
|
||||||
|
|
||||||
|
# Strip tests
|
||||||
|
|
||||||
|
RS03i_strip_ecc yes
|
||||||
|
RS03i_strip_ecc_not yes
|
||||||
|
|
||||||
# Verify tests
|
# Verify tests
|
||||||
|
|
||||||
RS03i_good yes
|
RS03i_good yes
|
||||||
@@ -368,6 +378,8 @@ RS03i_missing_header yes
|
|||||||
RS03i_missing_header2 yes
|
RS03i_missing_header2 yes
|
||||||
RS03i_missing_header3 yes
|
RS03i_missing_header3 yes
|
||||||
RS03i_missing_header4 yes
|
RS03i_missing_header4 yes
|
||||||
|
RS03i_missing_header5 yes
|
||||||
|
RS03i_missing_header6 yes
|
||||||
RS03i_missing_header_truncated yes
|
RS03i_missing_header_truncated yes
|
||||||
RS03i_missing_header_no_crcsec yes
|
RS03i_missing_header_no_crcsec yes
|
||||||
RS03i_random_image yes
|
RS03i_random_image yes
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
|||||||
Using READ CD.
|
Using READ CD.
|
||||||
Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
|
Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
|
||||||
|
|
||||||
|
RS01-type ECC found
|
||||||
Adaptive reading: Trying to collect enough data for error correction.
|
Adaptive reading: Trying to collect enough data for error correction.
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Device: sim-cd, Simulated CD drive 1.00
|
|||||||
Using READ CD.
|
Using READ CD.
|
||||||
Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
|
Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
|
||||||
|
|
||||||
|
RS01-type ECC found
|
||||||
Adaptive reading: Trying to collect enough data for error correction.
|
Adaptive reading: Trying to collect enough data for error correction.
|
||||||
Creating new rs01-tmp.iso image.
|
Creating new rs01-tmp.iso image.
|
||||||
Repairable: 0.0% (correctable: 0; now reading [0..20999], size 21000)
|
Repairable: 0.0% (correctable: 0; now reading [0..20999], size 21000)
|
||||||
|
|||||||