From 33532c4756b107438e7c6031ba695d3bacf11c69 Mon Sep 17 00:00:00 2001 From: Jaakko Luttinen Date: Fri, 17 Apr 2020 19:14:37 +0300 Subject: [PATCH 1/2] picom: apply nixpkgs-fmt --- .../window-managers/picom/default.nix | 69 ++++++++++++++----- 1 file changed, 53 insertions(+), 16 deletions(-) diff --git a/pkgs/applications/window-managers/picom/default.nix b/pkgs/applications/window-managers/picom/default.nix index 4287dd2db02..ce0673aab7f 100644 --- a/pkgs/applications/window-managers/picom/default.nix +++ b/pkgs/applications/window-managers/picom/default.nix @@ -1,38 +1,75 @@ -{ stdenv, lib, fetchFromGitHub, pkg-config, uthash, asciidoc, docbook_xml_dtd_45 -, docbook_xsl, libxslt, libxml2, makeWrapper, meson, ninja -, xorgproto, libxcb ,xcbutilrenderutil, xcbutilimage, pixman, libev -, dbus, libconfig, libdrm, libGL, pcre, libX11 -, libXinerama, libXext, xwininfo, libxdg_basedir }: +{ asciidoc +, dbus +, docbook_xml_dtd_45 +, docbook_xsl +, fetchFromGitHub +, lib +, libconfig +, libdrm +, libev +, libGL +, libX11 +, libxcb +, libxdg_basedir +, libXext +, libXinerama +, libxml2 +, libxslt +, makeWrapper +, meson +, ninja +, pcre +, pixman +, pkg-config +, stdenv +, uthash +, xcbutilimage +, xcbutilrenderutil +, xorgproto +, xwininfo +}: stdenv.mkDerivation rec { pname = "picom"; version = "8.2"; src = fetchFromGitHub { - owner = "yshui"; - repo = "picom"; - rev = "v${version}"; + owner = "yshui"; + repo = "picom"; + rev = "v${version}"; sha256 = "0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl"; fetchSubmodules = true; }; nativeBuildInputs = [ - meson ninja - pkg-config - uthash asciidoc docbook_xml_dtd_45 docbook_xsl makeWrapper + meson + ninja + pkg-config + uthash ]; buildInputs = [ - dbus libX11 libXext - xorgproto - libXinerama libdrm pcre libxml2 libxslt libconfig libGL - libxcb xcbutilrenderutil xcbutilimage - pixman libev + dbus + libconfig + libdrm + libev + libGL + libX11 + libxcb libxdg_basedir + libXext + libXinerama + libxml2 + libxslt + pcre + pixman + xcbutilimage + xcbutilrenderutil + xorgproto ]; mesonBuildType = "release"; From e788a4a22ce6c7d29c4c9bf3d5595287cdab7e59 Mon Sep 17 00:00:00 2001 From: Jaakko Luttinen Date: Fri, 17 Apr 2020 19:16:19 +0300 Subject: [PATCH 2/2] picom: add withDebug option --- .../window-managers/picom/default.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/window-managers/picom/default.nix b/pkgs/applications/window-managers/picom/default.nix index ce0673aab7f..32eee9df0d8 100644 --- a/pkgs/applications/window-managers/picom/default.nix +++ b/pkgs/applications/window-managers/picom/default.nix @@ -27,6 +27,7 @@ , xcbutilrenderutil , xorgproto , xwininfo +, withDebug ? false }: stdenv.mkDerivation rec { @@ -72,7 +73,10 @@ stdenv.mkDerivation rec { xorgproto ]; - mesonBuildType = "release"; + # Use "debugoptimized" instead of "debug" so perhaps picom works better in + # normal usage too, not just temporary debugging. + mesonBuildType = if withDebug then "debugoptimized" else "release"; + dontStrip = withDebug; mesonFlags = [ "-Dwith_docs=true" @@ -80,9 +84,13 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; + # In debug mode, also copy src directory to store. If you then run `gdb picom` + # in the bin directory of picom store path, gdb finds the source files. postInstall = '' wrapProgram $out/bin/picom-trans \ --prefix PATH : ${lib.makeBinPath [ xwininfo ]} + '' + lib.optionalString withDebug '' + cp -r ../src $out/ ''; meta = with lib; { @@ -93,6 +101,13 @@ stdenv.mkDerivation rec { extensions. It enables basic eye-candy effects. This fork adds additional features, such as additional effects, and a fork at a well-defined and proper place. + + The package can be installed in debug mode as: + + picom.override { withDebug = true; } + + For gdb to find the source files, you need to run gdb in the bin directory + of picom package in the nix store. ''; license = licenses.mit; homepage = "https://github.com/yshui/picom";