1{ lib, stdenv, buildPythonApplication, fetchFromGitHub, python3Packages, pyqtwebengine, lilypond }:
2
3buildPythonApplication rec {
4 pname = "frescobaldi";
5 version = "3.1.3";
6
7 src = fetchFromGitHub {
8 owner = "wbsoft";
9 repo = "frescobaldi";
10 rev = "v${version}";
11 sha256 = "1p8f4vn2dpqndw1dylmg7wms6vi69zcfj544c908s4r8rrmbycyf";
12 };
13
14 propagatedBuildInputs = with python3Packages; [
15 lilypond pygame python-ly sip_4
16 pyqt5 poppler-qt5
17 pyqtwebengine
18 ];
19
20 nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
21
22 # Needed because source is fetched from git
23 preBuild = ''
24 make -C i18n
25 make -C linux
26 '';
27
28 # no tests in shipped with upstream
29 doCheck = false;
30
31 dontWrapQtApps = true;
32 makeWrapperArgs = [
33 "\${qtWrapperArgs[@]}"
34 ];
35
36 meta = with lib; {
37 homepage = "https://frescobaldi.org/";
38 description = "A LilyPond sheet music text editor";
39 longDescription = ''
40 Powerful text editor with syntax highlighting and automatic completion,
41 Music view with advanced Point & Click, Midi player to proof-listen
42 LilyPond-generated MIDI files, Midi capturing to enter music,
43 Powerful Score Wizard to quickly setup a music score, Snippet Manager
44 to store and apply text snippets, templates or scripts, Use multiple
45 versions of LilyPond, automatically selects the correct version, Built-in
46 LilyPond documentation browser and built-in User Guide, Smart
47 layout-control functions like coloring specific objects in the PDF,
48 MusicXML import, Modern user iterface with configurable colors,
49 fonts and keyboard shortcuts
50 '';
51 license = licenses.gpl2Plus;
52 maintainers = with maintainers; [ sepi ];
53 platforms = platforms.all;
54 broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/frescobaldi.x86_64-darwin
55 };
56}