pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / by-name / pi / picom / package.nix
blob4af6c85efb5a620bffe199bd6e390f68c8fd25b7
1 { asciidoctor
2 , dbus
3 , docbook_xml_dtd_45
4 , docbook_xsl
5 , fetchFromGitHub
6 , lib
7 , libconfig
8 , libdrm
9 , libev
10 , libGL
11 , libepoxy
12 , libX11
13 , libxcb
14 , libxdg_basedir
15 , libXext
16 , libxml2
17 , libxslt
18 , makeWrapper
19 , meson
20 , ninja
21 , pcre2
22 , pixman
23 , pkg-config
24 , stdenv
25 , uthash
26 , xcbutil
27 , xcbutilimage
28 , xcbutilrenderutil
29 , xorgproto
30 , xwininfo
31 , withDebug ? false
34 stdenv.mkDerivation (finalAttrs: {
35   pname = "picom";
36   version = "12.3";
38   src = fetchFromGitHub {
39     owner = "yshui";
40     repo = "picom";
41     rev = "v${finalAttrs.version}";
42     hash = "sha256-FwjMlHP8xNJikkPpz+8BORrqqKYvRpkqm9GbExCoLAU=";
43     fetchSubmodules = true;
44   };
46   strictDeps = true;
48   nativeBuildInputs = [
49     asciidoctor
50     docbook_xml_dtd_45
51     docbook_xsl
52     makeWrapper
53     meson
54     ninja
55     pkg-config
56   ];
58   buildInputs = [
59     dbus
60     libconfig
61     libdrm
62     libev
63     libGL
64     libepoxy
65     libX11
66     libxcb
67     libxdg_basedir
68     libXext
69     libxml2
70     libxslt
71     pcre2
72     pixman
73     uthash
74     xcbutil
75     xcbutilimage
76     xcbutilrenderutil
77     xorgproto
78   ];
80   # Use "debugoptimized" instead of "debug" so perhaps picom works better in
81   # normal usage too, not just temporary debugging.
82   mesonBuildType = if withDebug then "debugoptimized" else "release";
83   dontStrip = withDebug;
85   mesonFlags = [
86     "-Dwith_docs=true"
87   ];
89   installFlags = [ "PREFIX=$(out)" ];
91   # In debug mode, also copy src directory to store. If you then run `gdb picom`
92   # in the bin directory of picom store path, gdb finds the source files.
93   postInstall = ''
94     wrapProgram $out/bin/picom-trans \
95       --prefix PATH : ${lib.makeBinPath [ xwininfo ]}
96   '' + lib.optionalString withDebug ''
97     cp -r ../src $out/
98   '';
100   meta = with lib; {
101     description = "Fork of XCompMgr, a sample compositing manager for X servers";
102     longDescription = ''
103       A fork of XCompMgr, which is a sample compositing manager for X
104       servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
105       extensions. It enables basic eye-candy effects. This fork adds
106       additional features, such as additional effects, and a fork at a
107       well-defined and proper place.
109       The package can be installed in debug mode as:
111         picom.override { withDebug = true; }
113       For gdb to find the source files, you need to run gdb in the bin directory
114       of picom package in the nix store.
115     '';
116     license = licenses.mit;
117     homepage = "https://github.com/yshui/picom";
118     maintainers = with maintainers; [ ertes gepbird twey thiagokokada ];
119     platforms = platforms.linux;
120     mainProgram = "picom";
121   };