depot/third_party/nixpkgs/pkgs/tools/misc/system-config-printer/default.nix

144 lines
2.8 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
udev,
pkg-config,
glib,
xmlto,
wrapGAppsHook3,
docbook_xml_dtd_412,
docbook_xsl,
libxml2,
desktop-file-utils,
libusb1,
cups,
gdk-pixbuf,
pango,
atk,
libnotify,
gobject-introspection,
libsecret,
packagekit,
libcupsfilters,
gettext,
libtool,
autoconf-archive,
python3Packages,
autoreconfHook,
bash,
fetchpatch,
}:
stdenv.mkDerivation rec {
pname = "system-config-printer";
version = "1.5.18";
src = fetchFromGitHub {
owner = "openPrinting";
repo = pname;
rev = "v${version}";
sha256 = "sha256-l3HEnYycP56vZWREWkAyHmcFgtu09dy4Ds65u7eqNZk=";
};
prePatch = ''
# for automake
touch README ChangeLog
# for tests
substituteInPlace Makefile.am --replace /bin/bash ${bash}/bin/bash
'';
patches = [
./detect_serverbindir.patch
# fix typeerror, remove on next release
(fetchpatch {
url = "https://github.com/OpenPrinting/system-config-printer/commit/399b3334d6519639cfe7f1c0457e2475b8ee5230.patch";
sha256 = "sha256-JCdGmZk2vRn3X1BDxOJaY3Aw8dr0ODVzi0oY20ZWfRs=";
excludes = [ "NEWS" ];
})
# switch to pep517 build tools
./pep517.patch
];
buildInputs = [
glib
udev
libusb1
cups
python3Packages.python
libnotify
gdk-pixbuf
pango
atk
packagekit
libsecret
];
nativeBuildInputs = [
pkg-config
gettext
libtool
autoconf-archive
xmlto
libxml2
docbook_xml_dtd_412
docbook_xsl
desktop-file-utils
python3Packages.wrapPython
python3Packages.build
python3Packages.installer
python3Packages.setuptools
python3Packages.wheel
wrapGAppsHook3
autoreconfHook
gobject-introspection
];
pythonPath =
with python3Packages;
requiredPythonModules [
pycups
pycurl
dbus-python
pygobject3
pycairo
pysmbc
];
configureFlags = [
"--with-udev-rules"
"--with-udevdir=${placeholder "out"}/etc/udev"
"--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
];
stripDebugList = [
"bin"
"lib"
"etc/udev"
];
doCheck = true;
postInstall = ''
buildPythonPath "$out $pythonPath"
gappsWrapperArgs+=(
--prefix PATH : "$program_PATH"
--set CUPS_DATADIR "${libcupsfilters}/share/cups"
)
find $out/share/system-config-printer -name \*.py -type f -perm -0100 -print0 | while read -d "" f; do
patchPythonScript "$f"
done
patchPythonScript $out/etc/udev/udev-add-printer
substituteInPlace $out/etc/udev/rules.d/70-printers.rules \
--replace "udev-configure-printer" "$out/etc/udev/udev-configure-printer"
'';
meta = {
homepage = "https://github.com/openprinting/system-config-printer";
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
};
}