Martin Weinelt ae4a1a485a
treewide: add explicit format attribute for Python packages
If a Python package does not come with either `format` or `pyproject` we
consider it a setuptools build, that calls `setup.py` directly, which is
deprecated.

This change, as a first step, migrates a large chunk of these packages to
set setuptools as their explicit format

This is so we can unify the problem space for the next step of the
migration.
2025-07-02 05:56:47 +02:00

69 lines
1.3 KiB
Nix

{
lib,
fetchFromGitHub,
buildPythonApplication,
python,
wrapGAppsHook3,
xflux,
gtk3,
gobject-introspection,
pango,
gdk-pixbuf,
atk,
pexpect,
pygobject3,
pyxdg,
libappindicator-gtk3,
}:
buildPythonApplication rec {
pname = "xflux-gui";
version = "1.2.0";
format = "setuptools";
src = fetchFromGitHub {
repo = "xflux-gui";
owner = "xflux-gui";
rev = "v${version}";
sha256 = "09zphcd9821ink63636swql4g85hg6lpsazqg1mawlk9ikc8zbps";
};
propagatedBuildInputs = [
pyxdg
pexpect
pygobject3
];
buildInputs = [
xflux
gtk3
];
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
pango
gdk-pixbuf
atk
libappindicator-gtk3
];
postPatch = ''
substituteInPlace src/fluxgui/xfluxcontroller.py \
--replace "pexpect.spawn(\"xflux\"" "pexpect.spawn(\"${xflux}/bin/xflux\""
'';
postFixup = ''
wrapGAppsHook
wrapPythonPrograms
patchPythonScript $out/${python.sitePackages}/fluxgui/fluxapp.py
'';
meta = {
description = "Better lighting for Linux. Open source GUI for xflux";
homepage = "https://justgetflux.com/linux.html";
license = lib.licenses.unfree; # marked as unfree since the source code contains a copy of the unfree xflux binary
maintainers = [ lib.maintainers.sheenobu ];
platforms = lib.platforms.linux;
};
}