Merge pull request #14871 from abbradar/choice-cdrtools-cdrkit

CD/DVD writing improvements
This commit is contained in:
Nikolay Amiantov 2016-04-25 13:42:03 +04:00
commit 31d76ae1b1
8 changed files with 108 additions and 15 deletions

View File

@ -26,10 +26,11 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = http://sourceforge.net/projects/cdrtools/;
description = "Highly portable CD/DVD/BluRay command line recording software";
# Licensing issues: This package contains code licensed under CDDL, GPL2
# and LGPL2. There is debate regarding the legality of this licensing.
# Marked as unfree to avoid any possible legal issues.
license = licenses.unfree;
license = with licenses; [ gpl2 lgpl2 cddl ];
platforms = platforms.linux;
# Licensing issues: This package contains code licensed under CDDL, GPL2
# and LGPL2. There is a debate regarding the legality of distributing this
# package in binary form.
hydraPlatforms = [];
};
}

View File

@ -1,7 +1,7 @@
{ stdenv, lib, fetchurl, makeWrapper, automoc4, cmake, perl, pkgconfig
, shared_mime_info, libvorbis, taglib, flac, libsamplerate
, libdvdread, lame, libsndfile, libmad, gettext , transcode, cdrdao
, cdrtools, dvdplusrwtools, vcdimager, cdparanoia, kdelibs, libdvdcss, ffmpeg
, dvdplusrwtools, vcdimager, cdparanoia, kdelibs, libdvdcss, ffmpeg
, kdemultimedia, phonon, libkcddb ? null
}:
@ -9,10 +9,11 @@ let
# at runtime, k3b needs the executables cdrdao, cdrecord, dvd+rw-format,
# eMovix, growisofs, mkisofs, normalize, readcd, transcode, vcdxbuild,
# vcdxminfo, and vcdxrip
binPath = lib.makeBinPath [ cdrdao dvdplusrwtools transcode vcdimager cdrtools ];
binPath = lib.makeBinPath [ cdrdao dvdplusrwtools transcode vcdimager ];
in stdenv.mkDerivation rec {
name = "k3b-2.0.3a";
name = "k3b-${version}";
version = "2.0.3a";
src = fetchurl {
url = "http://download.kde.org/stable/k3b/${name}.tar.xz";

View File

@ -0,0 +1,23 @@
{ lib, buildEnv, k3b-original, cdrtools, makeWrapper }:
let
binPath = lib.makeBinPath [ cdrtools ];
in buildEnv {
name = "k3b-${k3b-original.version}";
paths = [ k3b-original ];
buildInputs = [ makeWrapper ];
postBuild = ''
# TODO: This could be avoided if buildEnv could be forced to create all directories
if [ -L $out/bin ]; then
rm $out/bin
mkdir $out/bin
for i in ${k3b-original}/bin/*; do
ln -s $i $out/bin
done
fi
wrapProgram $out/bin/k3b \
--prefix PATH ':' ${binPath}
'';
}

View File

@ -0,0 +1,18 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "libburn-${version}";
version = "1.4.2.pl01";
src = fetchurl {
url = "http://files.libburnia-project.org/releases/${name}.tar.gz";
sha256 = "1nqfm24dm2csdnhsmpgw9cwcnkwvqlvfzsm9bhr6yg7bbmzwvkrk";
};
meta = with stdenv.lib; {
homepage = http://libburnia-project.org/;
description = "A library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray)";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ abbradar ];
};
}

View File

@ -0,0 +1,21 @@
{ stdenv, fetchurl, acl, attr, zlib }:
stdenv.mkDerivation rec {
name = "libisofs-${version}";
version = "1.4.2";
src = fetchurl {
url = "http://files.libburnia-project.org/releases/${name}.tar.gz";
sha256 = "1axk1ykv8ibrlrd2f3allidviimi4ya6k7wpvr6r4y1sc7mg7rym";
};
buildInputs = [ attr zlib ];
propagatedBuildInputs = [ acl ];
meta = with stdenv.lib; {
homepage = http://libburnia-project.org/;
description = "A library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ abbradar ];
};
}

View File

@ -1,13 +1,13 @@
{ stdenv, lib, fetchurl, pkgconfig, gtk3, itstool, gst_all_1, libxml2, libnotify
, libcanberra_gtk3, intltool, makeWrapper, dvdauthor, cdrdao
, dvdplusrwtools, cdrtools, vcdimager, wrapGAppsHook }:
, libcanberra_gtk3, intltool, makeWrapper, dvdauthor, libburn, libisofs
, vcdimager, wrapGAppsHook }:
# libdvdcss is "too old" (in fast "too new"), see https://bugs.launchpad.net/ubuntu/+source/brasero/+bug/611590
let
major = "3.12";
minor = "1";
binpath = lib.makeBinPath [ dvdauthor cdrdao dvdplusrwtools vcdimager cdrtools ];
binpath = lib.makeBinPath [ dvdauthor vcdimager ];
in stdenv.mkDerivation rec {
version = "${major}.${minor}";
@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig itstool intltool wrapGAppsHook ];
buildInputs = [ gtk3 libxml2 libnotify libcanberra_gtk3
buildInputs = [ gtk3 libxml2 libnotify libcanberra_gtk3 libburn libisofs
gst_all_1.gstreamer gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly gst_all_1.gst-libav ];

View File

@ -0,0 +1,23 @@
{ lib, buildEnv, brasero-original, cdrtools, makeWrapper }:
let
binPath = lib.makeBinPath [ cdrtools ];
in buildEnv {
name = "brasero-${brasero-original.version}";
paths = [ brasero-original ];
buildInputs = [ makeWrapper ];
postBuild = ''
# TODO: This could be avoided if buildEnv could be forced to create all directories
if [ -L $out/bin ]; then
rm $out/bin
mkdir $out/bin
for i in ${brasero-original}/bin/*; do
ln -s $i $out/bin
done
fi
wrapProgram $out/bin/brasero \
--prefix PATH ':' ${binPath}
'';
}

View File

@ -609,7 +609,9 @@ in
boxfs = callPackage ../tools/filesystems/boxfs { };
brasero = callPackage ../tools/cd-dvd/brasero { };
brasero-original = lowPrio (callPackage ../tools/cd-dvd/brasero { });
brasero = callPackage ../tools/cd-dvd/brasero/wrapper.nix { };
brltty = callPackage ../tools/misc/brltty {
alsaSupport = (!stdenv.isDarwin);
@ -7346,6 +7348,8 @@ in
libbson = callPackage ../development/libraries/libbson { };
libburn = callPackage ../development/libraries/libburn { };
libcaca = callPackage ../development/libraries/libcaca { };
libcanberra = callPackage ../development/libraries/libcanberra { };
@ -7741,6 +7745,8 @@ in
graphviz = graphviz-nox;
};
libisofs = callPackage ../development/libraries/libisofs { };
libiptcdata = callPackage ../development/libraries/libiptcdata { };
libjpeg_original = callPackage ../development/libraries/libjpeg { };
@ -15303,9 +15309,9 @@ in
eventlist = callPackage ../applications/office/eventlist {};
k3b = callPackage ../applications/misc/k3b {
cdrtools = cdrkit;
};
k3b-original = lowPrio (callPackage ../applications/misc/k3b { });
k3b = callPackage ../applications/misc/k3b/wrapper.nix { };
kadu = callPackage ../applications/networking/instant-messengers/kadu { };