biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / cd-dvd / dvdisaster / default.nix
blobcb448ef157e143e12f2f19e563089be7ca17fbfc
1 { lib
2 , stdenv
3 , fetchurl
4 , gettext
5 , pkg-config
6 , which
7 , glib
8 , gtk2
9 , enableSoftening ? true
12 stdenv.mkDerivation rec {
13   pname = "dvdisaster";
14   version = "0.79.10";
16   src = fetchurl {
17     url = "https://dvdisaster.jcea.es/downloads/${pname}-${version}.tar.bz2";
18     hash = "sha256-3Qqf9i8aSL9z2uJvm8P/QOPp83nODC3fyLL1iBIgf+g=";
19   };
21   nativeBuildInputs = [ gettext pkg-config which ];
22   buildInputs = [ glib gtk2 ];
24   patches = lib.optionals enableSoftening [
25     ./encryption.patch
26     ./dvdrom.patch
27   ];
29   postPatch = ''
30     patchShebangs ./
31     sed -i 's/dvdisaster48.png/dvdisaster/' contrib/dvdisaster.desktop
32     substituteInPlace scripts/bash-based-configure \
33       --replace 'if (make -v | grep "GNU Make") > /dev/null 2>&1 ;' \
34                 'if make -v | grep "GNU Make" > /dev/null 2>&1 ;'
35   '';
37   configureFlags = [
38     # Explicit --docdir= is required for on-line help to work:
39     "--docdir=share/doc"
40     "--with-nls=yes"
41     "--with-embedded-src-path=no"
42   ] ++ lib.optional (stdenv.hostPlatform.isx86_64) "--with-sse2=yes";
44   # fatal error: inlined-icons.h: No such file or directory
45   enableParallelBuilding = false;
47   doCheck = true;
48   checkPhase = ''
49     runHook preCheck
50     pushd regtest
52     mkdir -p "$TMP"/{log,regtest}
53     substituteInPlace common.bash \
54       --replace /dev/shm "$TMP/log" \
55       --replace /var/tmp "$TMP"
57     for test in *.bash; do
58       case "$test" in
59       common.bash)
60         echo "Skipping $test"
61         continue ;;
62       *)
63         echo "Running $test"
64         ./"$test"
65       esac
66     done
68     popd
69     runHook postCheck
70   '';
72   postInstall = ''
73     rm -f $out/bin/dvdisaster-uninstall.sh
74     mkdir -pv $out/share/applications
75     cp contrib/dvdisaster.desktop $out/share/applications/
77     for size in 16 24 32 48 64; do
78       mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps/
79       cp contrib/dvdisaster"$size".png \
80         $out/share/icons/hicolor/"$size"x"$size"/apps/dvdisaster.png
81     done
82   '';
84   meta = with lib; {
85     homepage = "https://dvdisaster.jcea.es/";
86     description = "Data loss/scratch/aging protection for CD/DVD media";
87     longDescription = ''
88       Dvdisaster provides a margin of safety against data loss on CD and
89       DVD media caused by scratches or aging media. It creates error correction
90       data which is used to recover unreadable sectors if the disc becomes
91       damaged at a later time.
92     '';
93     license = licenses.gpl3Plus;
94     platforms = platforms.linux;
95     maintainers = [ ];
96     mainProgram = "dvdisaster";
97   };