1{
2 lib,
3 fetchurl,
4 buildPythonApplication,
5 libjack2,
6 pyliblo3,
7 pyqt5,
8 which,
9 bash,
10 qt5,
11}:
12
13buildPythonApplication rec {
14 pname = "raysession";
15 version = "0.14.4";
16
17 src = fetchurl {
18 url = "https://github.com/Houston4444/RaySession/releases/download/v${version}/RaySession-${version}-source.tar.gz";
19 sha256 = "sha256-cr9kqZdqY6Wq+RkzwYxNrb/PLFREKUgWeVNILVUkc7A=";
20 };
21
22 postPatch = ''
23 # Fix installation path of xdg schemas.
24 substituteInPlace Makefile --replace '$(DESTDIR)/' '$(DESTDIR)$(PREFIX)/'
25 # Do not wrap an importable module with a shell script.
26 chmod -x src/daemon/desktops_memory.py
27 chmod -x src/clients/jackpatch/main_loop.py
28 '';
29
30 format = "other";
31
32 nativeBuildInputs = [
33 pyqt5 # pyuic5 and pyrcc5 to build resources.
34 qt5.qttools # lrelease to build translations.
35 which # which to find lrelease.
36 qt5.wrapQtAppsHook
37 ];
38 buildInputs = [
39 libjack2
40 bash
41 ];
42 dependencies = [
43 pyliblo3
44 pyqt5
45 ];
46
47 dontWrapQtApps = true; # The program is a python script.
48
49 installFlags = [ "PREFIX=$(out)" ];
50
51 makeWrapperArgs = [
52 "--suffix"
53 "LD_LIBRARY_PATH"
54 ":"
55 (lib.makeLibraryPath [ libjack2 ])
56 ];
57
58 postFixup = ''
59 wrapPythonProgramsIn "$out/share/raysession/src" "$out $pythonPath"
60 for file in $out/bin/*; do
61 wrapQtApp "$file"
62 done
63 '';
64
65 meta = with lib; {
66 homepage = "https://github.com/Houston4444/RaySession";
67 description = "Session manager for Linux musical programs";
68 license = licenses.gpl2;
69 maintainers = with maintainers; [ orivej ];
70 platforms = platforms.linux;
71 };
72}