lol
at 25.11-pre 144 lines 2.9 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 udev, 6 pkg-config, 7 glib, 8 xmlto, 9 wrapGAppsHook3, 10 docbook_xml_dtd_412, 11 docbook_xsl, 12 libxml2, 13 desktop-file-utils, 14 libusb1, 15 cups, 16 gdk-pixbuf, 17 pango, 18 atk, 19 libnotify, 20 gobject-introspection, 21 libsecret, 22 packagekit, 23 libcupsfilters, 24 gettext, 25 libtool, 26 autoconf-archive, 27 python3Packages, 28 autoreconfHook, 29 bash, 30 fetchpatch, 31}: 32 33stdenv.mkDerivation rec { 34 pname = "system-config-printer"; 35 version = "1.5.18"; 36 37 src = fetchFromGitHub { 38 owner = "openPrinting"; 39 repo = pname; 40 rev = "v${version}"; 41 sha256 = "sha256-l3HEnYycP56vZWREWkAyHmcFgtu09dy4Ds65u7eqNZk="; 42 }; 43 44 prePatch = '' 45 # for automake 46 touch README ChangeLog 47 # for tests 48 substituteInPlace Makefile.am --replace /bin/bash ${bash}/bin/bash 49 ''; 50 51 patches = [ 52 ./detect_serverbindir.patch 53 # fix typeerror, remove on next release 54 (fetchpatch { 55 url = "https://github.com/OpenPrinting/system-config-printer/commit/399b3334d6519639cfe7f1c0457e2475b8ee5230.patch"; 56 sha256 = "sha256-JCdGmZk2vRn3X1BDxOJaY3Aw8dr0ODVzi0oY20ZWfRs="; 57 excludes = [ "NEWS" ]; 58 }) 59 60 # switch to pep517 build tools 61 ./pep517.patch 62 ]; 63 64 buildInputs = [ 65 glib 66 udev 67 libusb1 68 cups 69 python3Packages.python 70 libnotify 71 gdk-pixbuf 72 pango 73 atk 74 packagekit 75 libsecret 76 ]; 77 78 nativeBuildInputs = [ 79 pkg-config 80 gettext 81 libtool 82 autoconf-archive 83 xmlto 84 libxml2 85 docbook_xml_dtd_412 86 docbook_xsl 87 desktop-file-utils 88 python3Packages.wrapPython 89 python3Packages.build 90 python3Packages.installer 91 python3Packages.setuptools 92 python3Packages.wheel 93 wrapGAppsHook3 94 autoreconfHook 95 gobject-introspection 96 ]; 97 98 pythonPath = 99 with python3Packages; 100 requiredPythonModules [ 101 pycups 102 pycurl 103 dbus-python 104 pygobject3 105 pycairo 106 pysmbc 107 ]; 108 109 configureFlags = [ 110 "--with-udev-rules" 111 "--with-udevdir=${placeholder "out"}/etc/udev" 112 "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system" 113 ]; 114 115 stripDebugList = [ 116 "bin" 117 "lib" 118 "etc/udev" 119 ]; 120 121 doCheck = true; 122 123 postInstall = '' 124 buildPythonPath "$out $pythonPath" 125 gappsWrapperArgs+=( 126 --prefix PATH : "$program_PATH" 127 --set CUPS_DATADIR "${libcupsfilters}/share/cups" 128 ) 129 130 find $out/share/system-config-printer -name \*.py -type f -perm -0100 -print0 | while read -d "" f; do 131 patchPythonScript "$f" 132 done 133 patchPythonScript $out/etc/udev/udev-add-printer 134 135 substituteInPlace $out/etc/udev/rules.d/70-printers.rules \ 136 --replace "udev-configure-printer" "$out/etc/udev/udev-configure-printer" 137 ''; 138 139 meta = { 140 homepage = "https://github.com/openprinting/system-config-printer"; 141 platforms = lib.platforms.linux; 142 license = lib.licenses.gpl2Plus; 143 }; 144}