{ stdenv, fetchurl, autoreconfHook, gnu-config, IOKit, Carbon }: stdenv.mkDerivation rec { name = "cdparanoia-III-10.2"; src = fetchurl { url = "http://downloads.xiph.org/releases/cdparanoia/${name}.src.tgz"; sha256 = "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"; }; patches = stdenv.lib.optionals stdenv.isDarwin [ (fetchurl { url = "https://trac.macports.org/export/70964/trunk/dports/audio/cdparanoia/files/osx_interface.patch"; sha256 = "1n86kzm2ssl8fdf5wlhp6ncb2bf6b9xlb5vg0mhc85r69prqzjiy"; }) (fetchurl { url = "https://trac.macports.org/export/70964/trunk/dports/audio/cdparanoia/files/patch-paranoia_paranoia.c.10.4.diff"; sha256 = "17l2qhn8sh4jy6ryy5si6ll6dndcm0r537rlmk4a6a8vkn852vad"; }) ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./utils.patch; buildInputs = stdenv.lib.optional stdenv.isAarch64 autoreconfHook; propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ Carbon IOKit ]; hardeningDisable = [ "format" ]; preConfigure = "unset CC" + stdenv.lib.optionalString stdenv.isAarch64 ''\n cp ${gnu-config}/config.sub configure.sub cp ${gnu-config}/config.guess configure.guess ''; meta = { homepage = http://xiph.org/paranoia; description = "A tool and library for reading digital audio from CDs"; platforms = stdenv.lib.platforms.unix; }; }