From 00ab10de74bb8d67d426e6181cdad904e607c95a Mon Sep 17 00:00:00 2001 From: Jascha Geerds Date: Mon, 27 Apr 2015 23:50:56 +0200 Subject: [PATCH] dvdisaster: Apply debian's patches to allow ROM type and encrypted DVDs --- pkgs/tools/cd-dvd/dvdisaster/default.nix | 22 ++++++++++++++----- pkgs/tools/cd-dvd/dvdisaster/dvdrom.patch | 19 ++++++++++++++++ pkgs/tools/cd-dvd/dvdisaster/encryption.patch | 21 ++++++++++++++++++ 3 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 pkgs/tools/cd-dvd/dvdisaster/dvdrom.patch create mode 100644 pkgs/tools/cd-dvd/dvdisaster/encryption.patch diff --git a/pkgs/tools/cd-dvd/dvdisaster/default.nix b/pkgs/tools/cd-dvd/dvdisaster/default.nix index 1bdf363300b6..472ef056f1f1 100644 --- a/pkgs/tools/cd-dvd/dvdisaster/default.nix +++ b/pkgs/tools/cd-dvd/dvdisaster/default.nix @@ -1,5 +1,6 @@ { stdenv, fetchurl, pkgconfig, which, gettext, intltool , glib, gtk2 +, enableSoftening ? true }: stdenv.mkDerivation rec { @@ -10,6 +11,11 @@ stdenv.mkDerivation rec { sha256 = "e9787dea39aeafa38b26604752561bc895083c17b588489d857ac05c58be196b"; }; + patches = stdenv.lib.optional enableSoftening [ + ./encryption.patch + ./dvdrom.patch + ]; + postPatch = '' patchShebangs ./ ''; @@ -22,11 +28,17 @@ stdenv.mkDerivation rec { glib gtk2 ]; - meta = { + meta = with stdenv.lib; { homepage = http://dvdisaster.net/; - description = - "Stores data on CD/DVD/BD in a way that it is fully recoverable even " + - "after some read errors have developed"; - license = stdenv.lib.licenses.gpl2; + description = "data loss/scratch/aging protection for CD/DVD media"; + longDescription = '' + dvdisaster provides a margin of safety against data loss on CD and + DVD media caused by scratches or aging media. It creates error correction + data which is used to recover unreadable sectors if the disc becomes + damaged at a later time. + ''; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ jgeerds ]; }; } diff --git a/pkgs/tools/cd-dvd/dvdisaster/dvdrom.patch b/pkgs/tools/cd-dvd/dvdisaster/dvdrom.patch new file mode 100644 index 000000000000..ce3f3de2bc03 --- /dev/null +++ b/pkgs/tools/cd-dvd/dvdisaster/dvdrom.patch @@ -0,0 +1,19 @@ +Author: Corey Wright +Description: Adds support for DVD-ROM medium-type. + +Index: dvdisaster/scsi-layer.c +=================================================================== +--- dvdisaster.orig/scsi-layer.c 2012-03-06 11:10:17.147044691 +0900 ++++ dvdisaster/scsi-layer.c 2012-03-06 11:10:30.927044292 +0900 +@@ -913,6 +913,11 @@ + break; + } + ++ if(layer_type & 0x01) ++ { dh->typeDescr = g_strdup("DVD-ROM"); ++ break; ++ } ++ + if(layer_type & 0x06) /* strange thing: (re-)writeable but neither plus nor dash */ + { dh->typeDescr = g_strdup("DVD-ROM (fake)"); + dh->subType = DVD; diff --git a/pkgs/tools/cd-dvd/dvdisaster/encryption.patch b/pkgs/tools/cd-dvd/dvdisaster/encryption.patch new file mode 100644 index 000000000000..a9383cb13cfe --- /dev/null +++ b/pkgs/tools/cd-dvd/dvdisaster/encryption.patch @@ -0,0 +1,21 @@ +Author: n/a +Description: Disables to skip on encrypted disks (e.g. DVD with CSS-Encryption). + +Index: dvdisaster/scsi-layer.c +=================================================================== +--- dvdisaster.orig/scsi-layer.c 2012-04-08 21:51:10.995588783 +0900 ++++ dvdisaster/scsi-layer.c 2012-04-08 21:51:29.259678075 +0900 +@@ -2693,11 +2693,12 @@ + return NULL; + } + } +- ++/* + if(dh->mainType == DVD && query_copyright(dh)) + { CloseDevice(dh); + Stop(_("This software does not support encrypted media.\n")); + } ++*/ + + /* Create the bitmap of simulated defects */ +