2011-07-21 23:18:41 +01:00
|
|
|
{ stdenv, fetchurl, udev, intltool, pkgconfig, glib, xmlto
|
system-config-printer: update hash to really upgrade to 1.5.7
Commit 03353ce6ff738acce3d ("system-config-printer: 1.3.12 -> 1 5.7")
forgot to update the hash. So since that commit we actually continued to
use the old version (1.3.12) because of the NixOS tarball cache...
The new version prints some warnings on startup:
/nix/store/HASH-system-config-printer-1.5.7/share/system-config-printer/system-config-printer.py:32: \
PyGIWarning: Polkit was imported without specifying a version first. \
Use gi.require_version('Polkit', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import Polkit
...and similar errors for GdkPixbuf, Gdk, Gtk and Notify. These warnings
are already fixed upstream and will be part of the next release.
Implementation details:
* The new version needs python3.
* Remove unneeded, and python3 incompatible, 'notify' dependency.
system-config-printer > 1.3.12 replaced it with GOBject introspection
bindings to libnotify (from gi.repository import Notify).
* Add gtk3, gdk_pixbuf, pango, atk, libnotify as needed (for gobject
introspection).
* A new --with-udevdir configure option is used to prevent the
installer from trying to install stuff to "/rules.d" (yes, the root).
* Get pycups from the passed pythonPackages set (fixes loading of
python cups module).
* Use pygobject3 instead of pygobject, as needed.
* Use dbus from the passed pythonPackages attrset instead of
pythonDBus, so we get a python3 compatible module that loads
successfully.
* Python requests2 modules is required.
2016-06-19 10:52:59 +01:00
|
|
|
, makeWrapper, gtk3, docbook_xml_dtd_412, docbook_xsl
|
|
|
|
, libxml2, desktop_file_utils, libusb1, cups, gdk_pixbuf, pango, atk, libnotify
|
2016-08-26 19:47:22 +01:00
|
|
|
, cups-filters
|
2012-01-18 20:53:01 +00:00
|
|
|
, pythonPackages
|
2011-07-22 02:28:09 +01:00
|
|
|
, withGUI ? true
|
2011-07-21 23:18:41 +01:00
|
|
|
}:
|
2010-08-29 20:37:02 +01:00
|
|
|
|
2016-01-17 11:54:28 +00:00
|
|
|
let majorVersion = "1.5";
|
|
|
|
|
|
|
|
in stdenv.mkDerivation rec {
|
|
|
|
name = "system-config-printer-${majorVersion}.7";
|
2009-02-25 16:05:13 +00:00
|
|
|
|
|
|
|
src = fetchurl {
|
2016-01-17 11:54:28 +00:00
|
|
|
url = "http://cyberelk.net/tim/data/system-config-printer/${majorVersion}/${name}.tar.xz";
|
system-config-printer: update hash to really upgrade to 1.5.7
Commit 03353ce6ff738acce3d ("system-config-printer: 1.3.12 -> 1 5.7")
forgot to update the hash. So since that commit we actually continued to
use the old version (1.3.12) because of the NixOS tarball cache...
The new version prints some warnings on startup:
/nix/store/HASH-system-config-printer-1.5.7/share/system-config-printer/system-config-printer.py:32: \
PyGIWarning: Polkit was imported without specifying a version first. \
Use gi.require_version('Polkit', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import Polkit
...and similar errors for GdkPixbuf, Gdk, Gtk and Notify. These warnings
are already fixed upstream and will be part of the next release.
Implementation details:
* The new version needs python3.
* Remove unneeded, and python3 incompatible, 'notify' dependency.
system-config-printer > 1.3.12 replaced it with GOBject introspection
bindings to libnotify (from gi.repository import Notify).
* Add gtk3, gdk_pixbuf, pango, atk, libnotify as needed (for gobject
introspection).
* A new --with-udevdir configure option is used to prevent the
installer from trying to install stuff to "/rules.d" (yes, the root).
* Get pycups from the passed pythonPackages set (fixes loading of
python cups module).
* Use pygobject3 instead of pygobject, as needed.
* Use dbus from the passed pythonPackages attrset instead of
pythonDBus, so we get a python3 compatible module that loads
successfully.
* Python requests2 modules is required.
2016-06-19 10:52:59 +01:00
|
|
|
sha256 = "1vxczk22f58nbikvj47s2x1gzh6q4mbgwnf091p00h3b6nxppdgn";
|
2010-08-29 20:37:02 +01:00
|
|
|
};
|
|
|
|
|
2013-01-25 03:48:11 +00:00
|
|
|
propagatedBuildInputs = [ pythonPackages.pycurl ];
|
|
|
|
|
2016-01-17 11:54:28 +00:00
|
|
|
patches = [ ./detect_serverbindir.patch ];
|
|
|
|
|
2011-07-21 23:18:41 +01:00
|
|
|
buildInputs =
|
2012-12-12 15:34:38 +00:00
|
|
|
[ intltool pkgconfig glib udev libusb1 cups xmlto
|
2011-07-21 23:18:41 +01:00
|
|
|
libxml2 docbook_xml_dtd_412 docbook_xsl desktop_file_utils
|
|
|
|
pythonPackages.python pythonPackages.wrapPython
|
|
|
|
];
|
|
|
|
|
system-config-printer: update hash to really upgrade to 1.5.7
Commit 03353ce6ff738acce3d ("system-config-printer: 1.3.12 -> 1 5.7")
forgot to update the hash. So since that commit we actually continued to
use the old version (1.3.12) because of the NixOS tarball cache...
The new version prints some warnings on startup:
/nix/store/HASH-system-config-printer-1.5.7/share/system-config-printer/system-config-printer.py:32: \
PyGIWarning: Polkit was imported without specifying a version first. \
Use gi.require_version('Polkit', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import Polkit
...and similar errors for GdkPixbuf, Gdk, Gtk and Notify. These warnings
are already fixed upstream and will be part of the next release.
Implementation details:
* The new version needs python3.
* Remove unneeded, and python3 incompatible, 'notify' dependency.
system-config-printer > 1.3.12 replaced it with GOBject introspection
bindings to libnotify (from gi.repository import Notify).
* Add gtk3, gdk_pixbuf, pango, atk, libnotify as needed (for gobject
introspection).
* A new --with-udevdir configure option is used to prevent the
installer from trying to install stuff to "/rules.d" (yes, the root).
* Get pycups from the passed pythonPackages set (fixes loading of
python cups module).
* Use pygobject3 instead of pygobject, as needed.
* Use dbus from the passed pythonPackages attrset instead of
pythonDBus, so we get a python3 compatible module that loads
successfully.
* Python requests2 modules is required.
2016-06-19 10:52:59 +01:00
|
|
|
pythonPath = with pythonPackages;
|
2017-01-18 19:16:49 +00:00
|
|
|
[ pycups pycurl dbus-python pygobject3 requests2 pycairo ];
|
2012-12-12 15:34:38 +00:00
|
|
|
|
|
|
|
configureFlags =
|
|
|
|
[ "--with-udev-rules"
|
system-config-printer: update hash to really upgrade to 1.5.7
Commit 03353ce6ff738acce3d ("system-config-printer: 1.3.12 -> 1 5.7")
forgot to update the hash. So since that commit we actually continued to
use the old version (1.3.12) because of the NixOS tarball cache...
The new version prints some warnings on startup:
/nix/store/HASH-system-config-printer-1.5.7/share/system-config-printer/system-config-printer.py:32: \
PyGIWarning: Polkit was imported without specifying a version first. \
Use gi.require_version('Polkit', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import Polkit
...and similar errors for GdkPixbuf, Gdk, Gtk and Notify. These warnings
are already fixed upstream and will be part of the next release.
Implementation details:
* The new version needs python3.
* Remove unneeded, and python3 incompatible, 'notify' dependency.
system-config-printer > 1.3.12 replaced it with GOBject introspection
bindings to libnotify (from gi.repository import Notify).
* Add gtk3, gdk_pixbuf, pango, atk, libnotify as needed (for gobject
introspection).
* A new --with-udevdir configure option is used to prevent the
installer from trying to install stuff to "/rules.d" (yes, the root).
* Get pycups from the passed pythonPackages set (fixes loading of
python cups module).
* Use pygobject3 instead of pygobject, as needed.
* Use dbus from the passed pythonPackages attrset instead of
pythonDBus, so we get a python3 compatible module that loads
successfully.
* Python requests2 modules is required.
2016-06-19 10:52:59 +01:00
|
|
|
"--with-udevdir=$(out)/etc/udev"
|
2014-03-13 20:44:51 +00:00
|
|
|
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
|
2012-12-12 15:34:38 +00:00
|
|
|
];
|
2010-08-29 20:37:02 +01:00
|
|
|
|
2011-07-21 23:18:41 +01:00
|
|
|
postInstall =
|
system-config-printer: update hash to really upgrade to 1.5.7
Commit 03353ce6ff738acce3d ("system-config-printer: 1.3.12 -> 1 5.7")
forgot to update the hash. So since that commit we actually continued to
use the old version (1.3.12) because of the NixOS tarball cache...
The new version prints some warnings on startup:
/nix/store/HASH-system-config-printer-1.5.7/share/system-config-printer/system-config-printer.py:32: \
PyGIWarning: Polkit was imported without specifying a version first. \
Use gi.require_version('Polkit', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import Polkit
...and similar errors for GdkPixbuf, Gdk, Gtk and Notify. These warnings
are already fixed upstream and will be part of the next release.
Implementation details:
* The new version needs python3.
* Remove unneeded, and python3 incompatible, 'notify' dependency.
system-config-printer > 1.3.12 replaced it with GOBject introspection
bindings to libnotify (from gi.repository import Notify).
* Add gtk3, gdk_pixbuf, pango, atk, libnotify as needed (for gobject
introspection).
* A new --with-udevdir configure option is used to prevent the
installer from trying to install stuff to "/rules.d" (yes, the root).
* Get pycups from the passed pythonPackages set (fixes loading of
python cups module).
* Use pygobject3 instead of pygobject, as needed.
* Use dbus from the passed pythonPackages attrset instead of
pythonDBus, so we get a python3 compatible module that loads
successfully.
* Python requests2 modules is required.
2016-06-19 10:52:59 +01:00
|
|
|
let
|
|
|
|
giTypelibPath = stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gdk_pixbuf.out gtk3.out pango.out atk.out libnotify.out ];
|
|
|
|
in
|
2011-07-21 23:18:41 +01:00
|
|
|
''
|
2016-08-26 19:47:22 +01:00
|
|
|
export makeWrapperArgs="--set prefix $out \
|
|
|
|
--set GI_TYPELIB_PATH ${giTypelibPath} \
|
|
|
|
--set CUPS_DATADIR ${cups-filters}/share/cups"
|
2011-07-21 23:18:41 +01:00
|
|
|
wrapPythonPrograms
|
2016-01-17 11:54:28 +00:00
|
|
|
# The program imports itself, so we need to move shell wrappers to a proper place.
|
|
|
|
fixupWrapper() {
|
|
|
|
mv "$out/share/system-config-printer/$2.py" \
|
|
|
|
"$out/bin/$1"
|
|
|
|
sed -i "s/.$2.py-wrapped/$2.py/g" "$out/bin/$1"
|
|
|
|
mv "$out/share/system-config-printer/.$2.py-wrapped" \
|
|
|
|
"$out/share/system-config-printer/$2.py"
|
|
|
|
}
|
|
|
|
fixupWrapper scp-dbus-service scp-dbus-service
|
|
|
|
fixupWrapper system-config-printer system-config-printer
|
|
|
|
fixupWrapper system-config-printer-applet applet
|
|
|
|
# This __init__.py is both executed and imported.
|
2011-07-21 23:18:41 +01:00
|
|
|
( cd $out/share/system-config-printer/troubleshoot
|
|
|
|
mv .__init__.py-wrapped __init__.py
|
|
|
|
)
|
2016-06-18 15:57:08 +01:00
|
|
|
|
|
|
|
# The below line will be unneeded when the next upstream release arrives.
|
|
|
|
sed -i -e "s|/usr/bin|$out/bin|" "$out/share/dbus-1/services/org.fedoraproject.Config.Printing.service"
|
2016-08-25 16:28:16 +01:00
|
|
|
|
|
|
|
# Manually expand literal "$(out)", which have failed to expand
|
|
|
|
sed -e "s|ExecStart=\$(out)|ExecStart=$out|" \
|
|
|
|
-i "$out/etc/systemd/system/configure-printer@.service"
|
2011-07-21 23:18:41 +01:00
|
|
|
'';
|
2010-11-28 09:46:51 +00:00
|
|
|
|
2010-08-29 20:37:02 +01:00
|
|
|
meta = {
|
2012-12-12 15:34:38 +00:00
|
|
|
homepage = http://cyberelk.net/tim/software/system-config-printer/;
|
2016-01-04 13:21:43 +00:00
|
|
|
platforms = stdenv.lib.platforms.linux;
|
2016-01-17 11:54:28 +00:00
|
|
|
license = stdenv.lib.licenses.gpl2;
|
2009-02-25 16:05:13 +00:00
|
|
|
};
|
|
|
|
}
|