summary refs log tree commit diff
path: root/pkgs/tools/cd-dvd
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-03-17 17:47:27 +0200
committerGitHub <noreply@github.com>2023-03-17 17:47:27 +0200
commit442fb2ba9085063bab17aff44aa86f461d221613 (patch)
tree03e13e9825ea13a80612e5e93ac0983faaf2ff75 /pkgs/tools/cd-dvd
parent76d13a3f25673a5df6ec6ea434718a536e1d16b1 (diff)
parent225e81da264db63393901ae43d0cd8eebf2298c3 (diff)
downloadnixpkgs-442fb2ba9085063bab17aff44aa86f461d221613.tar
nixpkgs-442fb2ba9085063bab17aff44aa86f461d221613.tar.gz
nixpkgs-442fb2ba9085063bab17aff44aa86f461d221613.tar.bz2
nixpkgs-442fb2ba9085063bab17aff44aa86f461d221613.tar.lz
nixpkgs-442fb2ba9085063bab17aff44aa86f461d221613.tar.xz
nixpkgs-442fb2ba9085063bab17aff44aa86f461d221613.tar.zst
nixpkgs-442fb2ba9085063bab17aff44aa86f461d221613.zip
Merge pull request #210561 from wegank/dvdplusrwtools-darwin
dvdplusrwtools: add darwin support
Diffstat (limited to 'pkgs/tools/cd-dvd')
-rw-r--r--pkgs/tools/cd-dvd/dvd+rw-tools/darwin.patch17
-rw-r--r--pkgs/tools/cd-dvd/dvd+rw-tools/default.nix25
2 files changed, 37 insertions, 5 deletions
diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/darwin.patch b/pkgs/tools/cd-dvd/dvd+rw-tools/darwin.patch
new file mode 100644
index 00000000000..7a7490c5267
--- /dev/null
+++ b/pkgs/tools/cd-dvd/dvd+rw-tools/darwin.patch
@@ -0,0 +1,17 @@
+diff --git a/Makefile.m4 b/Makefile.m4
+index a6a100b..bf7c041 100644
+--- a/Makefile.m4
++++ b/Makefile.m4
+@@ -30,8 +32,10 @@ LINK.o	=$(LINK.cc)
+ # to install set-root-uid, `make BIN_MODE=04755 install'...
+ BIN_MODE?=0755
+ install:	dvd+rw-tools
+-	install -o root -m $(BIN_MODE) $(CHAIN) /usr/bin
+-	install -o root -m 0644 growisofs.1 /usr/share/man/man1
++	install -d $(prefix)/bin
++	install -d $(prefix)/share/man/man1
++	install -m $(BIN_MODE) $(CHAIN) $(prefix)/bin
++	install -m 0644 growisofs.1 $(prefix)/share/man/man1
+ ])
+ 
+ ifelse(OS,MINGW32,[
diff --git a/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix b/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix
index d396bf030ca..a618d93214f 100644
--- a/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix
+++ b/pkgs/tools/cd-dvd/dvd+rw-tools/default.nix
@@ -1,5 +1,8 @@
-{ lib, stdenv, fetchurl, fetchpatch, cdrtools, m4 }:
+{ lib, stdenv, fetchurl, fetchpatch, cdrtools, m4, darwin }:
 
+let
+  inherit (darwin.apple_sdk.frameworks) IOKit;
+in
 stdenv.mkDerivation rec {
   pname = "dvd+rw-tools";
   version = "7.1";
@@ -9,8 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq";
   };
 
+  patches = [ ./darwin.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;
@@ -28,14 +31,26 @@ stdenv.mkDerivation rec {
      ];
 
   nativeBuildInputs = [ m4 ];
-  buildInputs = [ cdrtools ];
+  buildInputs = [ cdrtools ]
+    ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
-  makeFlags = [ "prefix=${placeholder "out"}" ];
+  makeFlags = [
+    "prefix=${placeholder "out"}"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.isDarwin [
+    # error: invalid suffix on literal; C++11 requires a space between literal and identifier
+    "-Wno-reserved-user-defined-literal"
+    # error: non-constant-expression cannot be narrowed from type 'size_t' (aka 'unsigned long') to 'IOByteCount' (aka 'unsigned int') in initializer list
+    "-Wno-c++11-narrowing"
+  ]);
 
   meta = with 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;
+    platforms = platforms.unix;
     license = with licenses; [ gpl2 publicDomain ];
   };
 }