diff --git a/pkgs/applications/misc/cdrtools/fix-paths.patch b/pkgs/applications/misc/cdrtools/fix-paths.patch deleted file mode 100644 index f4a54121088..00000000000 --- a/pkgs/applications/misc/cdrtools/fix-paths.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -ru3 cdrtools-3.01-old/DEFAULTS/Defaults.linux cdrtools-3.01/DEFAULTS/Defaults.linux ---- cdrtools-3.01-old/DEFAULTS/Defaults.linux 2015-12-11 17:37:21.505848835 +0300 -+++ cdrtools-3.01/DEFAULTS/Defaults.linux 2015-12-11 17:37:32.155828925 +0300 -@@ -57,7 +57,8 @@ - # Installation config stuff - # - ########################################################################### --INS_BASE= /opt/schily -+#INS_BASE= /opt/schily -+INS_BASE= $(out) - INS_KBASE= / - INS_RBASE= / - # -Only in cdrtools-3.01/DEFAULTS: Defaults.linux.orig -diff -ru3 cdrtools-3.01-old/RULES/rules.prg cdrtools-3.01/RULES/rules.prg ---- cdrtools-3.01-old/RULES/rules.prg 2015-12-11 17:37:21.500848844 +0300 -+++ cdrtools-3.01/RULES/rules.prg 2015-12-11 17:38:29.890720987 +0300 -@@ -43,10 +43,10 @@ - # - #SHELL= /bin/sh - --LN= /bin/ln --SYMLINK= /bin/ln -s --RM= /bin/rm --MV= /bin/mv -+LN= ln -+SYMLINK= ln -s -+RM= rm -+MV= mv - LORDER= lorder - TSORT= tsort - CTAGS= vctags diff --git a/pkgs/applications/misc/cdrtools/default.nix b/pkgs/tools/cd-dvd/cdrtools/default.nix similarity index 58% rename from pkgs/applications/misc/cdrtools/default.nix rename to pkgs/tools/cd-dvd/cdrtools/default.nix index 20bfe727f6d..f4f07143a20 100644 --- a/pkgs/applications/misc/cdrtools/default.nix +++ b/pkgs/tools/cd-dvd/cdrtools/default.nix @@ -1,33 +1,33 @@ -{ stdenv, fetchurl, acl, libcap, Carbon, IOKit }: +{ stdenv, fetchurl, m4, acl, libcap, Carbon, IOKit }: stdenv.mkDerivation rec { pname = "cdrtools"; - version = "3.02a06"; + version = "3.02a09"; src = fetchurl { url = "mirror://sourceforge/cdrtools/${pname}-${version}.tar.bz2"; - sha256 = "1cayhfbhj5g2vgmkmq5scr23k0ka5fsn0dhn0n9yllj386csnygd"; + sha256 = "10ayj48jax2pvsv6j5gybwfsx7b74zdjj84znwag7wwf8n7l6a5a"; }; - patches = [ ./fix-paths.patch ]; - + nativeBuildInputs = [ m4 ]; buildInputs = if stdenv.isDarwin then [ Carbon IOKit ] else [ acl libcap ]; postPatch = '' sed "/\.mk3/d" -i libschily/Targets.man substituteInPlace man/Makefile --replace "man4" "" + substituteInPlace RULES/rules.prg --replace "/bin/" "" ''; dontConfigure = true; - GMAKE_NOWARN = true; + makeFlags = [ "GMAKE_NOWARN=true" "INS_BASE=/" "INS_RBASE=/" "DESTDIR=${placeholder "out"}" ]; - makeFlags = [ "INS_BASE=/" "INS_RBASE=/" "DESTDIR=$(out)" ]; + enableParallelBuilding = false; # parallel building fails on some linux machines meta = with stdenv.lib; { - homepage = https://sourceforge.net/projects/cdrtools/; + homepage = "http://cdrtools.sourceforge.net/private/cdrecord.html"; description = "Highly portable CD/DVD/BluRay command line recording software"; - license = with licenses; [ gpl2 lgpl2 cddl ]; + license = with licenses; [ cddl gpl2 lgpl21 ]; platforms = with platforms; linux ++ darwin; # Licensing issues: This package contains code licensed under CDDL, GPL2 # and LGPL2. There is a debate regarding the legality of distributing this diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix b/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix index 40ca08c9260..40925a14537 100644 --- a/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix +++ b/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix @@ -1,38 +1,41 @@ -{stdenv, fetchurl, cdrkit, m4}: +{ stdenv, fetchurl, fetchpatch, cdrtools, m4 }: -stdenv.mkDerivation { - name = "dvd+rw-tools-7.1"; +stdenv.mkDerivation rec { + pname = "dvd+rw-tools"; + version = "7.1"; src = fetchurl { - url = http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-7.1.tar.gz; + url = "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${pname}-${version}.tar.gz"; sha256 = "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq"; }; - # Patches from Gentoo / Fedora - # https://bugs.gentoo.org/257360 - # https://bugzilla.redhat.com/show_bug.cgi?id=426068 - # https://bugzilla.redhat.com/show_bug.cgi?id=243036 - patches = [ - ./dvd+rw-tools-7.0-dvddl.patch - ./dvd+rw-tools-7.0-glibc2.6.90.patch - ./dvd+rw-tools-7.0-wctomb.patch - ./dvd+rw-tools-7.0-wexit.patch - ./dvd+rw-tools-7.1-layerbreaksetup.patch - ]; + # Patches from Gentoo + patches = [ ] + ++ builtins.map ({pfile, sha256}: fetchpatch { + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-cdr/dvd+rw-tools/files/${pfile}?id=b510df361241e8f16314b1f14642305f0111dac6"; + inherit sha256; + }) + [{ pfile = "dvd+rw-tools-7.0-dvddl-r1.patch"; sha256 = "12l33jq6405shfwdycrj52qmd07h5bsp1vjaddknfri456azjny5"; } + { pfile = "dvd+rw-tools-7.0-glibc2.6.90.patch"; sha256 = "1fb3gap2in782pa4164h1w0ha8ggsq3inissa1k0zn2p2r3rb5ln"; } + { pfile = "dvd+rw-tools-7.0-reload.patch"; sha256 = "12v2y2y6ci5hh6lbmsk97dzgznrm4bxwhc81mq684ix0qspb9mq4"; } + { pfile = "dvd+rw-tools-7.0-sysmacros.patch"; sha256 = "1rkb26cyhfxklkmna3l9b4797f6gzlxyqqin44jwnq3jmwfrs6v0"; } + { pfile = "dvd+rw-tools-7.0-wctomb-r1.patch"; sha256 = "1xg770l0b4bjn30y7nqg619v4m5ickcn2n8hv9k2an6r191daq58"; } + { pfile = "dvd+rw-tools-7.0-wexit.patch"; sha256 = "0sqzlkm19fmjx4lzxkxwn2ymrj9fq0zk0jkys3xm6xvd2ibb6kxl"; } + { pfile = "dvd+rw-tools-7.1-bluray_pow_freespace.patch"; sha256 = "0iscz8fs5002ymk6wl2fz4x06b7bdnc57rfz8kbv3216acqi5rv3"; } + { pfile = "dvd+rw-tools-7.1-bluray_srm+pow.patch"; sha256 = "0sy40m12w987i6g0cyxv8cfmab4vp7cd222lv05apknfi2y7smmw"; } + { pfile = "dvd+rw-tools-7.1-lastshort.patch"; sha256 = "01wspv70sil20khkg5kj086b1x8rrig4yhcq9s88bdjd42nv0vpx"; } + { pfile = "dvd+rw-tools-7.1-noevent.patch"; sha256 = "1kbmxpg15wci33f2h6pxxvf3qm0kpyzx9wj5a3l67sk34hvza3z6"; } + ]; - buildInputs = [cdrkit m4]; + nativeBuildInputs = [ m4 ]; + buildInputs = [ cdrtools ]; - preBuild = '' - makeFlags="prefix=$out" - ''; + makeFlags = [ "prefix=${placeholder "out"}" ]; - # Incompatibility with Linux 2.6.23 headers, see - # http://www.mail-archive.com/cdwrite@other.debian.org/msg11464.html - NIX_CFLAGS_COMPILE = "-DINT_MAX=__INT_MAX__"; - - meta = { - homepage = http://fy.chalmers.se/~appro/linux/DVD+RW/tools; - description = "Tools for burning DVDs"; - platforms = stdenv.lib.platforms.linux; + meta = with stdenv.lib; { + homepage = "http://fy.chalmers.se/~appro/linux/DVD+RW/tools"; + description = "Tools for mastering Blu-ray and DVD+-RW/+-R media"; + platforms = platforms.linux; + license = with licenses; [ gpl2 publicDomain ]; }; } diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-dvddl.patch b/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-dvddl.patch deleted file mode 100644 index c1c6fb3332a..00000000000 --- a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-dvddl.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- ./growisofs_mmc.cpp.joe 2006-04-27 20:45:00.788446635 +0200 -+++ ./growisofs_mmc.cpp 2006-04-27 20:46:01.666824300 +0200 -@@ -1412,9 +1412,7 @@ - blocks += 15, blocks &= ~15; - - if (blocks <= split) -- fprintf (stderr,":-( more than 50%% of space will be *wasted*!\n" -- " use single layer media for this recording\n"), -- exit (FATAL_START(EMEDIUMTYPE)); -+ fprintf (stderr,":-? more than 50%% of space will be *wasted*!\n"); - - blocks /= 16; - blocks += 1; diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-glibc2.6.90.patch b/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-glibc2.6.90.patch deleted file mode 100644 index 49742d3c4db..00000000000 --- a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-glibc2.6.90.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 dvd+rw-tools-7.0/transport.hxx ---- dvd+rw-tools-7.0/transport.hxx.glibc2.6.90 2007-08-15 12:56:17.000000000 +0200 -+++ dvd+rw-tools-7.0/transport.hxx 2007-08-15 12:56:42.000000000 +0200 -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-wctomb.patch b/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-wctomb.patch deleted file mode 100644 index 3d13fc8d273..00000000000 --- a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-wctomb.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./transport.hxx~ 2008-03-25 21:24:47.000000000 -0400 -+++ ./transport.hxx 2008-03-25 21:25:36.000000000 -0400 -@@ -116,7 +116,7 @@ - extern "C" char *plusminus_locale() - { static class __plusminus { - private: -- char str[4]; -+ char str[MB_LEN_MAX]; - public: - __plusminus() { setlocale(LC_CTYPE,ENV_LOCALE); - int l = wctomb(str,(wchar_t)(unsigned char)'±'); diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-wexit.patch b/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-wexit.patch deleted file mode 100644 index e7910cbdd7b..00000000000 --- a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.0-wexit.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- dvd+rw-tools-7.0/dvd+rw-format.cpp.wexit 2007-06-21 12:42:30.000000000 +0200 -+++ dvd+rw-tools-7.0/dvd+rw-format.cpp 2007-06-21 12:44:13.000000000 +0200 -@@ -245,7 +245,7 @@ int main (int argc, char *argv[]) - alarm(1); - while ((waitpid(pid,&i,0) != pid) && !WIFEXITED(i)) ; - if (WEXITSTATUS(i) == 0) fprintf (stderr,"\n"); -- exit (0); -+ exit (WEXITSTATUS(i)); - } - #endif - diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.1-layerbreaksetup.patch b/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.1-layerbreaksetup.patch deleted file mode 100644 index 7636f8393df..00000000000 --- a/pkgs/tools/cd-dvd/dvd+rw-tools/dvd+rw-tools-7.1-layerbreaksetup.patch +++ /dev/null @@ -1,93 +0,0 @@ -diff -ur dvd+rw-tools-7.1-orig/growisofs.c dvd+rw-tools-7.1/growisofs.c ---- dvd+rw-tools-7.1-orig/growisofs.c 2008-03-04 10:15:03.000000000 +0100 -+++ dvd+rw-tools-7.1/growisofs.c 2009-09-06 22:39:33.000000000 +0200 -@@ -535,7 +535,7 @@ - */ - int get_mmc_profile (void *fd); - int plusminus_r_C_parm (void *fd,char *C_parm); --pwrite64_t poor_mans_setup (void *fd,off64_t leadout); -+pwrite64_t poor_mans_setup (void *fd,off64_t leadout,unsigned int lbreak); - char *plusminus_locale (); - int __1x (); - /* -@@ -2447,7 +2447,7 @@ - goto out; - } - if (!progress.final) progress.final = tracksize; -- tracksize = layer_break*CD_BLOCK*2; -+ //tracksize = layer_break*CD_BLOCK*2; - } - } - else if (capacity > outoff) -@@ -2648,7 +2648,7 @@ - * further details on poor_mans_setup - */ - pwrite64_method = poor_mans_setup (ioctl_handle, -- outoff+tracksize); -+ outoff+tracksize, (unsigned int)layer_break); - } - - if (!progress.final) -diff -ur dvd+rw-tools-7.1-orig/growisofs_mmc.cpp dvd+rw-tools-7.1/growisofs_mmc.cpp ---- dvd+rw-tools-7.1-orig/growisofs_mmc.cpp 2008-03-04 18:47:49.000000000 +0100 -+++ dvd+rw-tools-7.1/growisofs_mmc.cpp 2009-09-06 20:52:46.000000000 +0200 -@@ -1612,7 +1612,7 @@ - return 0; - } - --static void plus_r_dl_split (Scsi_Command &cmd,off64_t size) -+static void plus_r_dl_split (Scsi_Command &cmd,off64_t size,unsigned int lbreak) - { int err; - unsigned int blocks,split; - unsigned char dvd_20[4+8]; -@@ -1644,10 +1644,17 @@ - " use single layer media for this recording\n"), - exit (FATAL_START(EMEDIUMTYPE)); - -- blocks /= 16; -- blocks += 1; -- blocks /= 2; -- blocks *= 16; -+ if (lbreak) -+ { -+ blocks=lbreak; -+ } -+ else -+ { -+ blocks /= 16; -+ blocks += 1; -+ blocks /= 2; -+ blocks *= 16; -+ } - - fprintf (stderr,"%s: splitting layers at %u blocks\n", - ioctl_device,blocks); -@@ -2010,7 +2017,7 @@ - typedef ssize_t (*pwrite64_t)(int,const void *,size_t,off64_t); - - extern "C" --pwrite64_t poor_mans_setup (void *fd,off64_t leadout) -+pwrite64_t poor_mans_setup (void *fd,off64_t leadout,unsigned int lbreak) - { Scsi_Command cmd(ioctl_handle=fd); - int err,profile=mmc_profile&0xFFFF; - -@@ -2059,7 +2066,7 @@ - case 0x2B: // DVD+R Double Layer - plusminus_pages_setup(cmd,profile); - if (profile==0x2B && next_track==1 && dvd_compat && leadout) -- plus_r_dl_split (cmd,leadout); -+ plus_r_dl_split (cmd,leadout,lbreak); - atexit (plus_r_finalize); - if (next_wr_addr) - { atsignals (no_r_finalize); -diff -ur dvd+rw-tools-7.1-orig/transport.hxx dvd+rw-tools-7.1/transport.hxx ---- dvd+rw-tools-7.1-orig/transport.hxx 2008-03-01 11:34:43.000000000 +0100 -+++ dvd+rw-tools-7.1/transport.hxx 2009-09-06 20:53:53.000000000 +0200 -@@ -9,6 +9,7 @@ - #if defined(__unix) || defined(__unix__) - #include - #include -+#include - #include - #include - #include diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8fadaeb7c8f..4f97772762c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2203,6 +2203,10 @@ in cdrkit = callPackage ../tools/cd-dvd/cdrkit { }; + cdrtools = callPackage ../tools/cd-dvd/cdrtools { + inherit (darwin.apple_sdk.frameworks) Carbon IOKit; + }; + mdf2iso = callPackage ../tools/cd-dvd/mdf2iso { }; nrg2iso = callPackage ../tools/cd-dvd/nrg2iso { }; @@ -17840,10 +17844,6 @@ in inherit (darwin.apple_sdk.frameworks) Carbon; }; - cdrtools = callPackage ../applications/misc/cdrtools { - inherit (darwin.apple_sdk.frameworks) Carbon IOKit; - }; - centerim = callPackage ../applications/networking/instant-messengers/centerim { }; cgit = callPackage ../applications/version-management/git-and-tools/cgit {