* [bug#34240] [PATCH 2/5] services: Add cups-pk-helper.
2019-01-29 11:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Christopher Baines
@ 2019-01-29 11:42 ` Christopher Baines
2019-01-29 16:44 ` Ricardo Wurmus
2019-01-29 11:42 ` [bug#34240] [PATCH 3/5] gnu: Add python-pycups Christopher Baines
` (3 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Christopher Baines @ 2019-01-29 11:42 UTC (permalink / raw)
To: 34240
This service integrates cups and PolicyKit. The gnome-control-center printing
section uses this functionality.
* gnu/sevices/desktop.scm (cups-pk-helper-service-type): New variable.
(%desktop-services): Add the cups-pk-helper service.
---
gnu/services/desktop.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index fbeabf1162..a93fa3c356 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -39,6 +39,7 @@
#:use-module (gnu system pam)
#:use-module (gnu packages glib)
#:use-module (gnu packages admin)
+ #:use-module (gnu packages cups)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gnome)
#:use-module (gnu packages xfce)
@@ -801,6 +802,21 @@ accountsservice web site} for more information."
(service accountsservice-service-type accountsservice))
\f
+;;;
+;;; cups-pk-helper service.
+;;;
+
+(define cups-pk-helper-service-type
+ (service-type
+ (name 'cups-pk-helper)
+ (description
+ "PolicyKit helper to configure CUPS with fine-grained privileges.")
+ (extensions
+ (list (service-extension dbus-root-service-type list)
+ (service-extension polkit-service-type list)))
+ (default-value cups-pk-helper)))
+
+\f
;;;
;;; GNOME desktop service.
;;;
@@ -990,6 +1006,7 @@ as expected.")))
(udisks-service)
(upower-service)
(accountsservice-service)
+ (service cups-pk-helper-service-type)
(colord-service)
(geoclue-service)
(service polkit-service-type)
--
2.20.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 2/5] services: Add cups-pk-helper.
2019-01-29 11:42 ` [bug#34240] [PATCH 2/5] services: " Christopher Baines
@ 2019-01-29 16:44 ` Ricardo Wurmus
2019-01-29 16:56 ` Christopher Baines
0 siblings, 1 reply; 14+ messages in thread
From: Ricardo Wurmus @ 2019-01-29 16:44 UTC (permalink / raw)
To: Christopher Baines; +Cc: 34240
Christopher Baines <mail@cbaines.net> writes:
> This service integrates cups and PolicyKit. The gnome-control-center printing
> section uses this functionality.
>
> * gnu/sevices/desktop.scm (cups-pk-helper-service-type): New variable.
> (%desktop-services): Add the cups-pk-helper service.
I wonder if this service is really needed or if it would be enough to
install the package into the system profile, for example.
(It looks fine to me, but I’m still curious.)
--
Ricardo
^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 2/5] services: Add cups-pk-helper.
2019-01-29 16:44 ` Ricardo Wurmus
@ 2019-01-29 16:56 ` Christopher Baines
0 siblings, 0 replies; 14+ messages in thread
From: Christopher Baines @ 2019-01-29 16:56 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: 34240
[-- Attachment #1: Type: text/plain, Size: 1136 bytes --]
Ricardo Wurmus <rekado@elephly.net> writes:
> Christopher Baines <mail@cbaines.net> writes:
>
>> This service integrates cups and PolicyKit. The gnome-control-center printing
>> section uses this functionality.
>>
>> * gnu/sevices/desktop.scm (cups-pk-helper-service-type): New variable.
>> (%desktop-services): Add the cups-pk-helper service.
>
> I wonder if this service is really needed or if it would be enough to
> install the package into the system profile, for example.
>
> (It looks fine to me, but I’m still curious.)
Thanks for taking a look Ricardo. I'm unsure, this DBus/Polkit stuff is
still a bit of a mystery to me. These files are put in place by the
service [1], and I think that's what makes it do stuff...
1:
/etc/dbus-1/system-services/org.opensuse.CupsPkHelper.Mechanism.service
/etc/polkit-1/actions/org.opensuse.cupspkhelper.mechanism.policy
I guess it entirely depends on the configuration for DBus and Polkit in
Guix, but I can't see similar things in /run/current-system/profile/etc/
so I'm guessing it's not currently possible to make this work through
the system profile.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 3/5] gnu: Add python-pycups.
2019-01-29 11:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Christopher Baines
2019-01-29 11:42 ` [bug#34240] [PATCH 2/5] services: " Christopher Baines
@ 2019-01-29 11:42 ` Christopher Baines
2019-01-29 16:44 ` Ricardo Wurmus
2019-01-29 11:42 ` [bug#34240] [PATCH 4/5] gnu: Add system-config-printer Christopher Baines
` (2 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Christopher Baines @ 2019-01-29 11:42 UTC (permalink / raw)
To: 34240
* gnu/packages/cups.scm (python-pycups): New variable.
---
gnu/packages/cups.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 138a1fc3ed..3b42f9e27e 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages scanner)
#:use-module (gnu packages tls)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -708,3 +709,27 @@ printers. It can only be used with printers that support the Epson ESC/P-R
language.")
(home-page "http://download.ebz.epson.net/dsc/search/01/search")
(license license:gpl2+)))
+
+(define-public python-pycups
+ (package
+ (name "python-pycups")
+ (version "1.9.74")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pycups" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1ffp7sswhdsfpy88zg0cc8kl04wygkjs01rlm9f0spbwk8jhy2c6"))))
+ (build-system python-build-system)
+ (arguments
+ '(;; Tests require CUPS to be running
+ #:tests? #f))
+ (inputs
+ `(("cups" ,cups)))
+ (home-page "https://github.com/zdohnal/pycups")
+ (synopsis "Python bindings for libcups")
+ (description
+ "This package provides Python bindings for libcups, wrapping the CUPS
+API.")
+ (license license:gpl2+)))
--
2.20.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 4/5] gnu: Add system-config-printer.
2019-01-29 11:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Christopher Baines
2019-01-29 11:42 ` [bug#34240] [PATCH 2/5] services: " Christopher Baines
2019-01-29 11:42 ` [bug#34240] [PATCH 3/5] gnu: Add python-pycups Christopher Baines
@ 2019-01-29 11:42 ` Christopher Baines
2019-01-29 16:49 ` Ricardo Wurmus
2019-01-29 11:42 ` [bug#34240] [PATCH 5/5] gnu: gnome: Include system-config-printer Christopher Baines
2019-01-29 16:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Ricardo Wurmus
4 siblings, 1 reply; 14+ messages in thread
From: Christopher Baines @ 2019-01-29 11:42 UTC (permalink / raw)
To: 34240
* gnu/packages/gnome.scm (system-config-printer): New variable.
---
gnu/packages/gnome.scm | 87 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index bf9109f680..0982409eeb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -978,6 +978,93 @@ for translations, though this is only a dependency for the maintainers. This
database is translated at Transifex.")
(license license:gpl2+)))
+(define-public system-config-printer
+ (package
+ (name "system-config-printer")
+ (version "1.5.11")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/zdohnal/system-config-printer/releases/"
+ "download/" version
+ "/system-config-printer-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:imported-modules ((guix build python-build-system)
+ ,@%glib-or-gtk-build-system-modules)
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-Makefile.am
+ (lambda _
+ ;; The Makefile generates some scripts, so set a valid shebang
+ (substitute* "Makefile.am"
+ (("/bin/bash") (which "bash")))
+ #t))
+ (add-after 'unpack 'patch-docbook-xml
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Modify the man XML otherwise xmlto tries to access the network
+ (substitute* "man/system-config-printer.xml"
+ (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+ (string-append (assoc-ref inputs "docbook-xml")
+ "/xml/dtd/docbook/")))
+ #t))
+ (add-before 'configure 'bootstrap
+ (lambda _
+ ;; Run ./bootstrap as otherwise the build fails with
+ ;; automake-1.15: command not found
+ (invoke "./bootstrap")
+ #t))
+ (add-after 'install 'wrap-for-python
+ (@@ (guix build python-build-system) wrap))
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (for-each
+ (lambda (program)
+ (wrap-program program
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+ (map (lambda (name)
+ (string-append out "/bin/" name))
+ '("system-config-printer"
+ "system-config-printer-applet"
+ "install-printerdriver"
+ "scp-dbus-service"))))
+ #t)))))
+ (inputs
+ `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gobject-introspection" ,gobject-introspection)
+ ("python" ,python)
+ ("cups" ,cups)
+ ("python-dbus" ,python-dbus)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pycups" ,python-pycups)
+ ("python-requests" ,python-requests)
+ ("python-pycairo" ,python-pycairo)
+ ("libnotify" ,libnotify)
+ ("packagekit" ,packagekit)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("desktop-file-utils" ,desktop-file-utils)
+ ("glib" ,glib)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("intltool" ,intltool)
+ ("xmlto" ,xmlto)
+ ("docbook-xml" ,docbook-xml-4.1.2)
+ ("docbook-xsl" ,docbook-xsl)
+ ("libxml2" ,libxml2)))
+ (home-page "https://github.com/zdohnal/system-config-printer")
+ (synopsis "CUPS administration tool")
+ (description
+ "system-config-printer is a CUPS administration tool. It's written in
+Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
+configuring CUPS.")
+ (license license:gpl2+)))
+
(define-public hicolor-icon-theme
(package
(name "hicolor-icon-theme")
--
2.20.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 4/5] gnu: Add system-config-printer.
2019-01-29 11:42 ` [bug#34240] [PATCH 4/5] gnu: Add system-config-printer Christopher Baines
@ 2019-01-29 16:49 ` Ricardo Wurmus
2019-02-13 8:21 ` bug#34240: " Christopher Baines
0 siblings, 1 reply; 14+ messages in thread
From: Ricardo Wurmus @ 2019-01-29 16:49 UTC (permalink / raw)
To: Christopher Baines; +Cc: 34240
Christopher Baines <mail@cbaines.net> writes:
> * gnu/packages/gnome.scm (system-config-printer): New variable.
[…]
> + (arguments
> + `(#:imported-modules ((guix build python-build-system)
> + ,@%glib-or-gtk-build-system-modules)
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'patch-Makefile.am
> + (lambda _
> + ;; The Makefile generates some scripts, so set a valid shebang
> + (substitute* "Makefile.am"
> + (("/bin/bash") (which "bash")))
> + #t))
[…]
> + (add-before 'configure 'bootstrap
> + (lambda _
> + ;; Run ./bootstrap as otherwise the build fails with
> + ;; automake-1.15: command not found
> + (invoke "./bootstrap")
> + #t))
The build system already provides a “bootstrap” phase, so maybe it would
be better to delete “configure” in “patch-Makefile.am” to activate the
bootstrap phase.
Otherwise looks good to me. Thanks!
--
Ricardo
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#34240: [PATCH 4/5] gnu: Add system-config-printer.
2019-01-29 16:49 ` Ricardo Wurmus
@ 2019-02-13 8:21 ` Christopher Baines
0 siblings, 0 replies; 14+ messages in thread
From: Christopher Baines @ 2019-02-13 8:21 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: 34240-done
[-- Attachment #1: Type: text/plain, Size: 1295 bytes --]
Ricardo Wurmus <rekado@elephly.net> writes:
> Christopher Baines <mail@cbaines.net> writes:
>
>> * gnu/packages/gnome.scm (system-config-printer): New variable.
> […]
>> + (arguments
>> + `(#:imported-modules ((guix build python-build-system)
>> + ,@%glib-or-gtk-build-system-modules)
>> + #:phases
>> + (modify-phases %standard-phases
>> + (add-after 'unpack 'patch-Makefile.am
>> + (lambda _
>> + ;; The Makefile generates some scripts, so set a valid shebang
>> + (substitute* "Makefile.am"
>> + (("/bin/bash") (which "bash")))
>> + #t))
> […]
>> + (add-before 'configure 'bootstrap
>> + (lambda _
>> + ;; Run ./bootstrap as otherwise the build fails with
>> + ;; automake-1.15: command not found
>> + (invoke "./bootstrap")
>> + #t))
>
> The build system already provides a “bootstrap” phase, so maybe it would
> be better to delete “configure” in “patch-Makefile.am” to activate the
> bootstrap phase.
>
> Otherwise looks good to me. Thanks!
Great, I've made that change to the system-config-printer phases and
pushed these patches now.
Thanks,
Chris
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 5/5] gnu: gnome: Include system-config-printer.
2019-01-29 11:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Christopher Baines
` (2 preceding siblings ...)
2019-01-29 11:42 ` [bug#34240] [PATCH 4/5] gnu: Add system-config-printer Christopher Baines
@ 2019-01-29 11:42 ` Christopher Baines
2019-01-29 16:50 ` Ricardo Wurmus
2019-01-29 16:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Ricardo Wurmus
4 siblings, 1 reply; 14+ messages in thread
From: Christopher Baines @ 2019-01-29 11:42 UTC (permalink / raw)
To: 34240
This package enables some functionality for printers within the
gnome-control-center as well as providing a standalone configuration tool.
At the moment, due to the lack of PackageKit support within Guix, the
gnome-control-center can't help users through the process of installing this,
so make it a default package.
* gnu/packages/gnome.scm (gnome)[propagated-inputs]: Add system-config-printer.
---
gnu/packages/gnome.scm | 1 +
1 file changed, 1 insertion(+)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0982409eeb..3a3e98a8fe 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6155,6 +6155,7 @@ associations for GNOME.")
("pinentry-gnome3" ,pinentry-gnome3)
("pulseaudio" ,pulseaudio)
("shared-mime-info" ,shared-mime-info)
+ ("system-config-printer" ,system-config-printer)
("totem" ,totem)
("xdg-user-dirs" ,xdg-user-dirs)
("yelp" ,yelp)
--
2.20.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 5/5] gnu: gnome: Include system-config-printer.
2019-01-29 11:42 ` [bug#34240] [PATCH 5/5] gnu: gnome: Include system-config-printer Christopher Baines
@ 2019-01-29 16:50 ` Ricardo Wurmus
0 siblings, 0 replies; 14+ messages in thread
From: Ricardo Wurmus @ 2019-01-29 16:50 UTC (permalink / raw)
To: Christopher Baines; +Cc: 34240
Christopher Baines <mail@cbaines.net> writes:
> This package enables some functionality for printers within the
> gnome-control-center as well as providing a standalone configuration tool.
>
> At the moment, due to the lack of PackageKit support within Guix, the
> gnome-control-center can't help users through the process of installing this,
> so make it a default package.
>
> * gnu/packages/gnome.scm (gnome)[propagated-inputs]: Add system-config-printer.
> ---
> gnu/packages/gnome.scm | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 0982409eeb..3a3e98a8fe 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -6155,6 +6155,7 @@ associations for GNOME.")
> ("pinentry-gnome3" ,pinentry-gnome3)
> ("pulseaudio" ,pulseaudio)
> ("shared-mime-info" ,shared-mime-info)
> + ("system-config-printer" ,system-config-printer)
> ("totem" ,totem)
> ("xdg-user-dirs" ,xdg-user-dirs)
> ("yelp" ,yelp)
Looks good to me.
--
Ricardo
^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper.
2019-01-29 11:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Christopher Baines
` (3 preceding siblings ...)
2019-01-29 11:42 ` [bug#34240] [PATCH 5/5] gnu: gnome: Include system-config-printer Christopher Baines
@ 2019-01-29 16:42 ` Ricardo Wurmus
2019-01-29 17:03 ` Christopher Baines
4 siblings, 1 reply; 14+ messages in thread
From: Ricardo Wurmus @ 2019-01-29 16:42 UTC (permalink / raw)
To: Christopher Baines; +Cc: 34240
Christopher Baines <mail@cbaines.net> writes:
> * gnu/packages/cups.scm (cups-pk-helper): New variable.
[…]
> + (synopsis "PolicyKit helper to configure cups with fine-grained
> privileges")
Should be “CUPS” instead of “cups”.
> + (description
> + "This package provides the org.opensuse.CupsPkHelper.Mechanism DBus
> +system service which uses @file{cups-pk-helper-mechanism}. This package
> +should only be used as part of the Guix cups-pk-helper service.")
I’d wrap the service names in @code{…}.
Why can it not be used without the cups-pk-helper service? Is it not
enough to install the package in a location that gets searched by DBus?
--
Ricardo
^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper.
2019-01-29 16:42 ` [bug#34240] [PATCH 1/5] gnu: Add cups-pk-helper Ricardo Wurmus
@ 2019-01-29 17:03 ` Christopher Baines
0 siblings, 0 replies; 14+ messages in thread
From: Christopher Baines @ 2019-01-29 17:03 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: 34240
[-- Attachment #1: Type: text/plain, Size: 1338 bytes --]
Ricardo Wurmus <rekado@elephly.net> writes:
> Christopher Baines <mail@cbaines.net> writes:
>
>> * gnu/packages/cups.scm (cups-pk-helper): New variable.
> […]
>> + (synopsis "PolicyKit helper to configure cups with fine-grained
>> privileges")
>
> Should be “CUPS” instead of “cups”.
Sure, I'll update.
>> + (description
>> + "This package provides the org.opensuse.CupsPkHelper.Mechanism DBus
>> +system service which uses @file{cups-pk-helper-mechanism}. This package
>> +should only be used as part of the Guix cups-pk-helper service.")
>
> I’d wrap the service names in @code{…}.
>
> Why can it not be used without the cups-pk-helper service? Is it not
> enough to install the package in a location that gets searched by DBus?
I'm not sure if I'm correct here, but it looks like this might be the
case from looking at the DBus stuff in the package.
The DBus service contains "system-services" in the name, which is
different from some other packages DBus configuration.
/gnu/store/...-cups-pk-helper-0.2.6/share/dbus-1/system-services/org.opensuse.CupsPkHelper.Mechanism.service
Also, in that file, it says "User=root".
[D-BUS Service]
Name=org.opensuse.CupsPkHelper.Mechanism
Exec=/gnu/store/...-cups-pk-helper-0.2.6/libexec/cups-pk-helper-mechanism
User=root
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread