summary refs log tree commit diff
path: root/pkgs/tools/cd-dvd/cdimgtools
diff options
context:
space:
mode:
authorhhm <heehooman+vcs-ci@gmail.com>2019-02-11 17:24:38 -0500
committerhhm <heehooman+vcs-ci@gmail.com>2019-02-26 22:17:21 -0500
commitfdca55e6fe9c23e297fd13b200b416a0ad82e479 (patch)
tree47253d461876f84d7d9508267a71ae23b5d385f8 /pkgs/tools/cd-dvd/cdimgtools
parent749da56b0c2f4c3ef6132290c836be96766cf79c (diff)
downloadnixpkgs-fdca55e6fe9c23e297fd13b200b416a0ad82e479.tar
nixpkgs-fdca55e6fe9c23e297fd13b200b416a0ad82e479.tar.gz
nixpkgs-fdca55e6fe9c23e297fd13b200b416a0ad82e479.tar.bz2
nixpkgs-fdca55e6fe9c23e297fd13b200b416a0ad82e479.tar.lz
nixpkgs-fdca55e6fe9c23e297fd13b200b416a0ad82e479.tar.xz
nixpkgs-fdca55e6fe9c23e297fd13b200b416a0ad82e479.tar.zst
nixpkgs-fdca55e6fe9c23e297fd13b200b416a0ad82e479.zip
cdimgtools: init at 0.3
Diffstat (limited to 'pkgs/tools/cd-dvd/cdimgtools')
-rw-r--r--pkgs/tools/cd-dvd/cdimgtools/default.nix36
-rw-r--r--pkgs/tools/cd-dvd/cdimgtools/nrgtool_fix_my.patch12
-rw-r--r--pkgs/tools/cd-dvd/cdimgtools/removed_dvdcss_interface_2.patch53
3 files changed, 101 insertions, 0 deletions
diff --git a/pkgs/tools/cd-dvd/cdimgtools/default.nix b/pkgs/tools/cd-dvd/cdimgtools/default.nix
new file mode 100644
index 00000000000..888711a8501
--- /dev/null
+++ b/pkgs/tools/cd-dvd/cdimgtools/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromRepoOrCz, autoreconfHook, makeWrapper, libdvdcss, libdvdread, perl, perlPackages, asciidoc, xmlto, sourceHighlight, docbook_xsl, docbook_xml_dtd_45 }:
+
+stdenv.mkDerivation rec {
+  name = "cdimgtools-${version}";
+  version = "0.3";
+
+  src = fetchFromRepoOrCz {
+    repo = "cdimgtools";
+    rev = "version/0.3";
+    sha256 = "1hxg3glxj26fh9xnv184sfdc2wi4cnzvn7chz47wcqdsd0d5fn8w";
+  };
+
+  nativeBuildInputs = [ autoreconfHook makeWrapper asciidoc perlPackages.PodPerldoc xmlto sourceHighlight docbook_xsl docbook_xml_dtd_45 ];
+
+  buildInputs = [ perl perlPackages.StringEscape perlPackages.DataHexdumper libdvdcss libdvdread ];
+
+  patches = [ ./nrgtool_fix_my.patch ./removed_dvdcss_interface_2.patch];
+
+  postFixup = ''
+    for cmd in raw96cdconv nrgtool; do
+      wrapProgram "$out/bin/$cmd" --prefix PERL5LIB : "$PERL5LIB"
+    done
+  '';
+
+  outputs = [ "out" "doc" ];
+
+  installTargets = [ "install" "install-doc" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://repo.or.cz/cdimgtools.git/blob_plain/refs/heads/release:/README.html;
+    description = "Tools to inspect and manipulate CD/DVD optical disc images";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ hhm ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/tools/cd-dvd/cdimgtools/nrgtool_fix_my.patch b/pkgs/tools/cd-dvd/cdimgtools/nrgtool_fix_my.patch
new file mode 100644
index 00000000000..5ed389c46ca
--- /dev/null
+++ b/pkgs/tools/cd-dvd/cdimgtools/nrgtool_fix_my.patch
@@ -0,0 +1,12 @@
+Fixes an error in nrgtool.
+--- a/nrgtool
++++ b/nrgtool
+@@ -162,7 +162,7 @@ sub process_file {
+ 	}
+ 	seek $nrg, 0, SEEK_SET if ($iff_only);
+ 	seek $nrg, $offset, SEEK_SET unless ($iff_only);
+-	while (my $_ = read_chunk($nrg, $iff)) {
++	while ($_ = read_chunk($nrg, $iff)) {
+ 		if ($_ < -1) {
+ 			warn  "ERROR while reading an IFF chunk; aborting\n";
+ 			return;
diff --git a/pkgs/tools/cd-dvd/cdimgtools/removed_dvdcss_interface_2.patch b/pkgs/tools/cd-dvd/cdimgtools/removed_dvdcss_interface_2.patch
new file mode 100644
index 00000000000..cb265eae05b
--- /dev/null
+++ b/pkgs/tools/cd-dvd/cdimgtools/removed_dvdcss_interface_2.patch
@@ -0,0 +1,53 @@
+Removes the deprecated and removed `dvdcss_interface_2` libdvdcss function.
+
+This does not change any functionality; it only modifies the printing of software version information.
+--- a/cssdec.c
++++ b/cssdec.c
+@@ -102,8 +102,8 @@ int main( int argc, char *argv[] )
+ 			b_keyonly = 1;
+ 			break;
+ 		case 'V':
+-			printf( "%s version %s (libdvdcss version %s)\n",
+-			  progname, progversion, dvdcss_interface_2 );
++			printf( "%s version %s\n",
++			  progname, progversion );
+ 			exit( EX_SUCCESS );
+ 			break;
+ 		case '?':
+@@ -126,8 +126,8 @@ int main( int argc, char *argv[] )
+ 	if( argc >= 3 ) end = (int)strtol( argv[2], (char **)NULL, 0 );
+ 
+ 	/* Initialize libdvdcss */
+-	printe( 2, "%s version %s (libdvdcss version %s)",
+-	  progname, progversion, dvdcss_interface_2 );
++	printe( 2, "%s version %s",
++	  progname, progversion );
+ 	dvdcss = dvdcss_open( (char *)dvdfile );
+ 	if( dvdcss == NULL )
+ 	{
+diff --git a/dvdimgdecss.c b/dvdimgdecss.c
+index 0b7006d..b7d251a 100644
+--- a/dvdimgdecss.c
++++ b/dvdimgdecss.c
+@@ -157,8 +157,8 @@ int main( int argc, char *argv[] )
+ 			dvdread_decrypt = 1;
+ 			break;
+ 		case 'V':
+-			printf( "%s version %s (libdvdcss version %s)\n",
+-			  progname, progversion, dvdcss_interface_2 );
++			printf( "%s version %s\n",
++			  progname, progversion );
+ 			exit( EX_SUCCESS );
+ 			break;
+ 		case '?':
+@@ -180,8 +180,8 @@ int main( int argc, char *argv[] )
+ 	if( !imgfile ) verbosity++;
+ 
+ 	/* Open the DVD */
+-	printe( 2, "%s: version %s (libdvdcss version %s)\n",
+-	  progname, progversion, dvdcss_interface_2 );
++	printe( 2, "%s: version %s\n",
++	  progname, progversion );
+ 	dvdcss = dvdcss_open( dvdfile );
+ 	if( dvdcss == NULL ) {
+ 		printe( 1, "opening of the DVD (%s) with libdvdcss failed\n", dvdfile );