nixpkgs-overlay/playgsf/default.nix

59 lines
1.7 KiB
Nix
Raw Normal View History

2021-08-08 11:29:50 +02:00
{ lib, stdenv, fetchzip, fetchpatch, libao, libresample, zlib }:
stdenv.mkDerivation rec {
pname = "playgsf";
version = "0.7.1";
src = fetchzip {
url = "http://projects.raphnet.net/${pname}/${pname}-${version}.tar.gz";
sha256 = "1y7qs2fnmlf2z8abb6190ga958vak33s3n4xrndg9zakdahi03ff";
};
patches = [
./no-bundled-libresample.patch
# Make compile with newer GCC that does not allow invalid code
(fetchpatch {
name = "fixes.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/fixes.patch?h=playgsf&id=1d613d3923987b39ca81636650038e670b712b29";
sha256 = "sha256-0sWvb/qF6LLtd2LfpLGwH/MKAjDKuElfXRGBlDrwYoU=";
})
];
nativeBuildInputs = [ ];
buildInputs = [ libao libresample zlib ];
# nixpkgs version of libresample is used
postPatch = ''
rm -r libresample-0.1.3
'';
# remove libresample
postConfigure = ''
substituteInPlace Makefile \
--replace "-I./libresample-0.1.3/include" "" \
--replace "-L./libresample-0.1.3" ""
'';
# if optimisations are on, a segfault in VBA/Util.o:585 (fread) occurs
# !!! HACK: re-compile that object without optimisations and link the main
# binary again
postBuild = ''
g++ -DLINUX -O0 -c VBA/Util.cpp -o VBA/Util.o
make
'';
installPhase = ''
runHook preInstall
install -D playgsf $out/bin/playgsf
runHook postInstall
'';
meta = with lib; {
description = "A simple command line player for gsf files based on the winamp plugin Highly Advanced";
homepage = "http://projects.raphnet.net/#playgsf";
license = with licenses; [ gpl2Plus mit unfree ]; # some files do not have license header and no global license
maintainers = with maintainers; [ sbruder ];
platforms = platforms.unix;
};
}