1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-16 07:58:04 +00:00

sysutils/dvdisaster: Update to 0.79.5

* Pass maintainership to submitter
* Switch to new MASTER_SITES as the previous one ceased to exist
* Switch to GCC as upstream officially supports GCC only (it still compiles
  with CLANG if appropriate patching of the GNUMakefile is used. But the
  chances are somewhat higher that it might introduce subtle errors during
  runtime because some valid statements are optimized out by CLANG)
* Add desktop and icon file
* Add missing library dependencies
* Add additional documentation that describes how dvdisaster accesses
  optical drives with FreeBSD
* Add more information to pkg-message and make it dynamic
* Include two patches from Debian that fix the missing language fields with
  .po files. [1]
* Remove debug options that are not really useful for end users
* Remove redundant configure script arguments
* Remove redundant do-configure target
* Sort pkg-plist

While I'm here:

* Fix the license
* Simplify the makefile targets further by using only option helpers and
  thus remove the need for <bsd.port.{pre,post}.mk>

Changelog since 0.72.6 (summary):

The most prominent feature of this version is that the multithreaded RS03
codec reached production quality, and all required features have been
implemented.

A few things will be added with the next releases:

* Adaptive reading is currently disabled as it does not support RS03 yet and
  would crash or misbehave on RS03 error correction data
* A heuristic for an exhaustive re-discovery of RS03 structures in a badly
  damaged medium is missing in the decoder

But these things should not keep you from using RS03, as the encoder is
complete and future decoder enhancements do not affect already created RS03
data.

0.79.4 (07-10-2012 / not released)

* Optical drives would only be detected for /dev/pass[0-9] on FreeBSD. Fixed
  to work with arbitrary /dev/pass numbers.
* Blocked menu selection when any other action is in progress
* Made actions properly shut down (e.g. remove incomplete ecc data) when
  closing the window or pushing the "Quit" button.
* Changed sources for clean compile on gcc 4.4.3
* Added #include <zlib.h> for libpng 1.5 compatibility
* Introduced internal Image object for unified access to optical media and
  on disk ISO images; lots of internal changes and fixes due to that
* Added --ignore-iso-size option
* Fixed bug in pngpack
* Added remaining patches for Czech online manual.
* More comprehensive and unified version information for banner, --version,
  log window and log file to aid in working on bug reports
* Hardcoded icons to defeat theming
* Changed glib.h include for compatibility with glib 2.32
* Removed Darwin / Mac OS X support
* Synced with dvdisaster 0.72.4 fixes
* Completed RS01 and RS03 specification in the papers subdir

0.79.3 (21-11-2010)

* Fixed and documented -n command line options for RS02.
* Reworked configure for current NetBSD release

PR:		236423
Submitted by:	Bob Eager <bob@eager.cx>
Approved by:	tcberner (mentor)
Obtained from:	Debian [1]
Differential Revision:	https://reviews.freebsd.org/D19807
This commit is contained in:
Kai Knoblich 2019-04-07 21:00:25 +00:00
parent 8766321431
commit 37406deaa6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=498334
11 changed files with 236 additions and 111 deletions

View File

@ -2,98 +2,67 @@
# $FreeBSD$
PORTNAME= dvdisaster
PORTVERSION= 0.72.6
PORTREVISION= 1
PORTVERSION= 0.79.5
CATEGORIES= sysutils
MASTER_SITES= http://dvdisaster.net/downloads/
MASTER_SITES= http://www.ml1.org.uk/distfiles/ \
http://www.ancientgeek.org.uk/distfiles/
MAINTAINER= ports@FreeBSD.org
COMMENT= CD/DVD error recovery tool
MAINTAINER= bob@eager.cx
COMMENT= Optical disc error correction data and recovery tool
LICENSE= GPLv2
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= bash:shells/bash
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2
USES= gmake gnome pkgconfig
USE_GCC= yes
USE_GNOME= gdkpixbuf2 gtk20 cairo
CFLAGS+= -Wno-stringop-overflow
MAKEFILE= GNUmakefile
USES= gmake pkgconfig tar:bzip2
USE_GNOME= gtk20 cairo
GNU_CONFIGURE= yes
HAS_CONFIGURE= yes
CONFIGURE_LOG= configure.log
CONFIGURE_ARGS= --prefix=${PREFIX} \
--docsubdir="/" \
--png-includes=${LOCALBASE}/include \
--png-libraries=${LOCALBASE}/lib \
--phpmountdir=${LOCALBASE}/www/${PORTNAME} \
CONFIGURE_ARGS= --docsubdir="/" \
--localedir=${PREFIX}/share/locale \
--buildroot=${STAGEDIR}
MAKE_JOBS_UNSAFE= yes
PORTDOCS= *
SUB_FILES= pkg-message DEVICES.md DEVICES.html
OPTIONS_DEFINE= DOCS NLS
OPTIONS_GROUP= DEBUG
OPTIONS_GROUP_DEBUG= EFENCE MEMDEBUG
OPTIONS_SUB= yes
EFENCE_DESC= Electric Fence malloc() debugger
MEMDEBUG_DESC= Enable memory debugging
DOCS_CONFIGURE_ON= --docdir=${DOCSDIR}
MEMDEBUG_CONFIGURE_ON= -with-memdebug=yes
EFENCE_LIB_DEPENDS= libefence.so.0:devel/ElectricFence
EFENCE_CONFIGURE_ON= -with-efence=yes
NLS_USES= gettext
NLS_CONFIGURE_OFF= -with-nls=no
.include <bsd.port.pre.mk>
post-patch:
${REINPLACE_CMD} -e '/REQUIRE_GCC/d' \
${WRKSRC}/configure ${WRKSRC}/tools/configure
${REINPLACE_CMD} -e '/dvdisaster uninstaller/,+12 d' \
${REINPLACE_CMD} -e '/dvdisaster uninstaller/,+19 d' \
${WRKSRC}/GNUmakefile.template
${REINPLACE_CMD} -e 's|(ctx)|(*ctx)|' \
${WRKSRC}/md5.c
${REINPLACE_CMD} -e 's|stdout, msg|stdout, "msg\\n"|' \
${WRKSRC}/tools/memory.c
.if ! ${PORT_OPTIONS:MDOCS}
post-patch-DOCS-off:
${REINPLACE_CMD} -e 's|THESE_ARE_THE_DEVEL_SOURCES;|GNUmakefile;|; \
/install -d $$(BUILDROOT)$$(DOCSUBDIR)/,+18 d' \
/install -d $$(BUILDROOT)$$(DOCSUBDIR)/,+7 d' \
${WRKSRC}/GNUmakefile.template
.elif ${ARCH} == i386
${REINPLACE_CMD} -e 's|THESE_ARE_THE_DEVEL_SOURCES;|GNUmakefile;|; \
/install -m 644 README.MODIFYING/{N;p;s/.*/ install -m 644 TODO $$(BUILDROOT)$$(DOCSUBDIR)/;}; \
/install -m 644 TODO $$(BUILDROOT)$$(DOCSUBDIR)/,+13 d' \
${WRKSRC}/GNUmakefile.template
.endif
post-patch-NLS-off:
${REINPLACE_CMD} -e 's|DOC_LOCALES = cs de en ru|DOC_LOCALES = en|; \
${REINPLACE_CMD} -Ee 's|(PO_LOCALES)|#\1|; \
s|install -m 644 CREDITS\*|install -m 644 CREDITS\.en|' \
${WRKSRC}/GNUmakefile.template
do-configure:
@(cd ${CONFIGURE_WRKSRC} && \
if ! ${SETENV} CC="${CC}" CXX="${CXX}" \
CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
INSTALL="${INSTALL} -c " \
INSTALL_DATA="${INSTALL_DATA}" \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
${CONFIGURE_ENV} bash configure ${CONFIGURE_ARGS}; then \
${ECHO_CMD} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \
(${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT} 75 79 ; \
${FALSE}; \
fi)
post-install:
.if ! ${PORT_OPTIONS:MEFENCE} || ! ${PORT_OPTIONS:MMEMDEBUG}
@${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
${INSTALL_DATA} ${WRKSRC}/contrib/dvdisaster48.png ${STAGEDIR}${PREFIX}/share/pixmaps/
@${MKDIR} ${STAGEDIR}${PREFIX}/share/applications
${INSTALL_DATA} ${WRKSRC}/contrib/dvdisaster.desktop ${STAGEDIR}${PREFIX}/share/applications/
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
.endif
.include <bsd.port.post.mk>
post-install-DOCS-on:
${INSTALL_MAN} ${WRKDIR}/DEVICES.md ${STAGEDIR}${DOCSDIR}
${INSTALL_MAN} ${WRKDIR}/DEVICES.html ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>

View File

@ -1,2 +1,3 @@
SHA256 (dvdisaster-0.72.6.tar.bz2) = e9787dea39aeafa38b26604752561bc895083c17b588489d857ac05c58be196b
SIZE (dvdisaster-0.72.6.tar.bz2) = 5048399
TIMESTAMP = 1551738342
SHA256 (dvdisaster-0.79.5.tar.gz) = d6efa1643945fe7b16382f4164a68bdad14de48c8506d844d740cd3a2b143e55
SIZE (dvdisaster-0.79.5.tar.gz) = 9722312

View File

@ -0,0 +1,80 @@
<h1>Useful hints for dvdisaster</h1>
<h2>Device access</h2>
<p>dvdisaster tries to read <code>/dev/pass*</code> to list available optical drives,
so it will not detect any available drives if the user running
dvdisaster does not have permissions to read <code>/dev/pass*</code>.</p>
<p>The solution is to create the file <code>/etc/devfs.rules</code>, containing
something like the following.</p>
<pre><code> [localrules=10]
add path 'pass*' mode 0775 group mygroup
</code></pre>
<p>You also need to add this line to <code>/etc/rc.conf</code>:</p>
<pre><code> devfs_system_ruleset="localrules"
</code></pre>
<p>You can use anything you like for <code>localrules</code>, and the number does not have to be <code>10</code>.
See <code>devfs.rules(5)</code> for more details.</p>
<p>If <code>/etc/devfs.rules</code> already exists, add the line starting <code>add</code> to the section for the ruleset
mentioned in <code>/etc/rc.conf</code>.</p>
<p>For this to take effect, either reboot, or issue the command:</p>
<pre><code> # service devfs restart
</code></pre>
<p>as root.</p>
<h2>Missing optical drives</h2>
<p>The most common problem encountered is that dvdisaster does not detect
optical drives on older versions of FreeBSD.</p>
<p>FreeBSD 9.x does not pre-install a uniform CD-ROM driver for SCSI and
ATAPI drives, thus it cannot use any ATAPI drives in an out-of-the-box
FreeBSD 9.x installation. Normally, this can be fixed by loading a
kernel module called <code>atapicam</code>.</p>
<h3>Loading the <code>atapicam</code> kernel module by hand</h3>
<p>To manually load the required kernel module, issue the command:</p>
<pre><code> # kldload atapicam
</code></pre>
<p>To see if any optical drives are available:</p>
<pre><code> # camcontrol devlist
&lt;NAME OF YOUR DRIVE&gt; at scbus1 target 0 lun 0 (pass0,cd0)
</code></pre>
<h3>Loading the <code>atapicam</code> kernel module permanently</h3>
<p>If the above step works, the module can be loaded automatically at boot time by adding
the line:</p>
<pre><code> atapicam_load="YES"
</code></pre>
<p>to the file <code>/boot/loader.conf</code>.</p>
<h3>Building the <code>atapicam</code> module</h3>
<p>If the atapicam kernel module is not available (check the contents
of /boot/kernel) you will need to recompile the kernel with the following
additional device line in the kernel configuration:</p>
<pre><code> device atapicam
</code></pre>
<p>This will actually build the module into the kernel. To build it separately,
see <code>make.conf(5)</code>.</p>
<p>The devices <code>ata</code>, <code>scbus</code>, <code>cd</code>, and <code>pass</code> are also required, but are included by
default in FreeBSD 6.0 and later.</p>

View File

@ -0,0 +1,76 @@
Useful hints for dvdisaster
===========================
Device access
-------------
dvdisaster tries to read `/dev/pass*` to list available optical drives,
so it will not detect any available drives if the user running
dvdisaster does not have permissions to read `/dev/pass*`.
The solution is to create the file `/etc/devfs.rules`, containing
something like the following.
[localrules=10]
add path 'pass*' mode 0775 group mygroup
You also need to add this line to `/etc/rc.conf`:
devfs_system_ruleset="localrules"
You can use anything you like for `localrules`, and the number does not have to be `10`.
See `devfs.rules(5)` for more details.
If `/etc/devfs.rules` already exists, add the line starting `add` to the section for the ruleset
mentioned in `/etc/rc.conf`.
For this to take effect, either reboot, or issue the command:
# service devfs restart
as root.
Missing optical drives
----------------------
The most common problem encountered is that dvdisaster does not detect
optical drives on older versions of FreeBSD.
FreeBSD 9.x does not pre-install a uniform CD-ROM driver for SCSI and
ATAPI drives, thus it cannot use any ATAPI drives in an out-of-the-box
FreeBSD 9.x installation. Normally, this can be fixed by loading a
kernel module called `atapicam`.
### Loading the `atapicam` kernel module by hand
To manually load the required kernel module, issue the command:
# kldload atapicam
To see if any optical drives are available:
# camcontrol devlist
<NAME OF YOUR DRIVE> at scbus1 target 0 lun 0 (pass0,cd0)
### Loading the `atapicam` kernel module permanently
If the above step works, the module can be loaded automatically at boot time by adding
the line:
atapicam_load="YES"
to the file `/boot/loader.conf`.
### Building the `atapicam` module
If the atapicam kernel module is not available (check the contents
of /boot/kernel) you will need to recompile the kernel with the following
additional device line in the kernel configuration:
device atapicam
This will actually build the module into the kernel. To build it separately,
see `make.conf(5)`.
The devices `ata`, `scbus`, `cd`, and `pass` are also required, but are included by
default in FreeBSD 6.0 and later.

View File

@ -0,0 +1,11 @@
--- icon-factory.c.orig 2019-03-06 11:28:20 UTC
+++ icon-factory.c
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
*/
+#define GDK_PIXBUF_VERSION_MIN_REQUIRED GDK_PIXBUF_VERSION_2_30
+
#include "dvdisaster.h"
#include "inlined-icons.h"

View File

@ -0,0 +1,12 @@
Taken from Debian "13-fix-missing-language-field-in-po-files.patch"
--- locale/pt_BR.po.orig 2019-03-06 10:42:22 UTC
+++ locale/pt_BR.po
@@ -11,7 +11,7 @@ msgstr ""
"PO-Revision-Date: 2010-06-09 11:13+0200\n"
"Last-Translator: cg <cg@dvdisaster.org>\n"
"Language-Team: Portuguese\n"
-"Language: \n"
+"Language: Portuguese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

View File

@ -0,0 +1,12 @@
Taken from Debian "13-fix-missing-language-field-in-po-files.patch"
--- locale/ru.po.orig 2019-03-06 10:41:55 UTC
+++ locale/ru.po
@@ -13,7 +13,7 @@ msgstr ""
"PO-Revision-Date: 2009-07-23 08:11+0300\n"
"Last-Translator: Igor Gorbounov <igor.gorbounov@gmail.com>\n"
"Language-Team: Russian\n"
-"Language: \n"
+"Language: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

View File

@ -0,0 +1,8 @@
----------------------------------------------------------------------
If there are problems detecting optical drives, please see the files
DEVICES.md or DEVICES.html in the directory:
%%DOCSDIR%%
Note that the documentation option (DOCS) must be selected for these
files to be installed.
----------------------------------------------------------------------

View File

@ -1,4 +1,3 @@
The dvdisaster project:
dvdisaster provides a margin of safety against data loss on CD and DVD media
caused by aging or scratches.
@ -17,4 +16,4 @@ If you create the error correction data in time and keep it at a safe place,
you have a good chance of recovering the medium contents from typical read
errors and to transfer your complete data onto a new medium.
WWW: http://dvdisaster.net/
WWW: http://www.bobeager.uk/software.html

View File

@ -1,43 +0,0 @@
===============================================================================
dvdisaster has been installed.
Note that dvdisaster tries to read /dev/pass* to list available CD/DVD drives,
so the program will not detect any available drives if the user running
dvdisaster does not have permissions to read /dev/pass*
FreeBSD 9.x does not pre-install an uniform CD-ROM driver for SCSI and ATAPI
drives. Therefore dvdisaster cannot use any ATAPI drives in an out-of-the-box
FreeBSD 9.x installation.
* Loading the atapicam kernel module by hand
To manually load the required kernel module, do:
root@freebsd# kldload atapicam
Use the follwing command to see if any CD/DVD/BD drives became available:
root@freebsd# camcontrol devlist
<NAME OF YOUR DRIVE> at scbus1 target 0 lun 0 (pass0,cd0)
* (Optionally) loading the atapicam kernel module permanently
If the above step works you can load the kernel module at boot time by adding
atapicam_load="YES"
at the end of /boot/loader.conf
* (Optionally) recompiling the kernel
If the atapicam kernel module is not available (check the contents
of /boot/kernel) you will need to recompile the kernel with the following
additional device line in the kernel configuration:
device atapicam
The devices ata, scbus, cd, and pass are also required, but are included by
default in FreeBSD 6.0 and later.
===============================================================================

View File

@ -1,11 +1,11 @@
bin/dvdisaster
man/cs/man1/dvdisaster.1.gz
man/de/man1/dvdisaster.1.gz
man/it/man1/dvdisaster.1.gz
man/man1/dvdisaster.1.gz
share/applications/dvdisaster.desktop
share/pixmaps/dvdisaster48.png
%%NLS%%share/locale/cs/LC_MESSAGES/dvdisaster.mo
%%NLS%%share/locale/de/LC_MESSAGES/dvdisaster.mo
%%NLS%%share/locale/it/LC_MESSAGES/dvdisaster.mo
%%NLS%%share/locale/pt_BR/LC_MESSAGES/dvdisaster.mo
%%NLS%%share/locale/ru/LC_MESSAGES/dvdisaster.mo
%%NLS%%share/locale/sv/LC_MESSAGES/dvdisaster.mo
%%NLS%%share/locale/pt_BR/LC_MESSAGES/dvdisaster.mo