1{
2 lib,
3 stdenv,
4 fetchurl,
5 pkg-config,
6 fltk13,
7 portaudio,
8 lame,
9 libvorbis,
10 libogg,
11 flac,
12 libopus,
13 libsamplerate,
14 fdk_aac,
15 dbus,
16 openssl,
17 curl,
18 portmidi,
19 autoPatchelfHook,
20}:
21
22stdenv.mkDerivation (finalAttrs: {
23 pname = "butt";
24 version = "1.45.0";
25
26 src = fetchurl {
27 url = "https://danielnoethen.de/butt/release/${finalAttrs.version}/butt-${finalAttrs.version}.tar.gz";
28 hash = "sha256-iEmFEJRsTvHeKGYvnhzYXSC/q0DSw0Z/YgK4buDtg2Q=";
29 };
30
31 postPatch = ''
32 # remove advertising
33 substituteInPlace src/FLTK/flgui.cpp \
34 --replace-fail 'idata_radio_co_badge, 124, 61, 4,' 'nullptr, 0, 0, 0,'
35 substituteInPlace src/FLTK/fl_timer_funcs.cpp \
36 --replace-fail 'radio_co_logo, 124, 61, 4,' 'nullptr, 0, 0, 0,' \
37 --replace-fail 'live365_logo, 124, 61, 4,' 'nullptr, 0, 0, 0,'
38 '';
39
40 nativeBuildInputs = [
41 autoPatchelfHook
42 pkg-config
43 ];
44
45 buildInputs = [
46 fltk13
47 portaudio
48 lame
49 libvorbis
50 libogg
51 flac
52 libopus
53 libsamplerate
54 fdk_aac
55 dbus
56 openssl
57 curl
58 portmidi
59 ];
60
61 runtimeDependencies = [
62 fdk_aac
63 ];
64
65 postInstall = ''
66 cp -r usr/share $out/
67 '';
68
69 meta = {
70 changelog = "https://danielnoethen.de/butt/Changelog.html";
71 description = "Easy to use, multi OS streaming tool";
72 homepage = "https://danielnoethen.de/butt/";
73 license = lib.licenses.gpl2;
74 maintainers = with lib.maintainers; [ ehmry ];
75 mainProgram = "butt";
76 platforms = lib.platforms.linux;
77 };
78})