Message ID | 87d1k8zg1j.fsf@openmailbox.org |
---|---|
State | New |
Headers | show |
> + (propagated-inputs > + `(("libring" ,libring) ; This is needed to run dring. Wait... I don't understand why it's required to be propagated... > + ("adwaita-icon-theme" ,adwaita-icon-theme) Okay. > + ("evolution-data-server" ,evolution-data-server))) Hmm. Why is it propagated? Most other packages seem to be able to use it as a regular input just fine. Are they wrong?
Thank you for your review! And Sorry for my late answer! Danny Milosavljevic <dannym@scratchpost.org> writes: >> + (propagated-inputs >> + `(("libring" ,libring) ; This is needed to run dring. > > Wait... I don't understand why it's required to be propagated... > I was not sure how to handle this properly. The package libring provides a program 'dring', which is a daemon that, as far as I understand, does all the communication with peers on the internet. So in order to place a call, one first needs to run 'dring &' and then start the ring-client-gnome. If the ring daemon is not running, then ring-client-gnome won't do anything useful, it will just error out on startup. Looking at the manual, this does not justify propagation. My intention was that people can just install ring-client-gnome in a profile and it will work. If libring is not propagated, it will also need to be installed by hand. Is there a good way to specify this kind of runtime requirement? I could also just move it to 'inputs' and put a hint in the description that libring should be installed alongside ring-client-gnome. >> + ("evolution-data-server" ,evolution-data-server))) > > Hmm. Why is it propagated? Most other packages seem to be able to use it as a regular input just fine. Are they wrong? This is a similar issue. I use ratpoison and do not have evolution-data-server in my profile. Then, if I do this: ---8<--- cut here -------------------- start --->8--- lukas@serenity$ guix package --list-installed | grep evolution-data-server lukas@serenity$ lukas@serenity$ ./pre-inst-env guix environment --no-substitutes --no-grafts --ad-hoc ring-client-gnome warning: failed to install locale: Invalid argument accepted connection from pid 686, user lukas lukas@serenity [env]$ dring & [1] 708 lukas@serenity [env]$ ring.cx Ring Daemon 2.3.0, by Savoir-faire Linux 2004-2016 http://www.ring.cx/ [Video support enabled] 10:59:14.283 os_core_unix.c !pjlib 2.4 for POSIX initialized (gnome-ring:711): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. ** Message: Ring GNOME client version: 1.0.0 ** Message: git ref: unknown (gnome-ring:711): Clutter-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. Updating all accounts Loading "708d2bd2d3639223" Account parameter " "Account.presenceSubscribeSupported" " not found Loading "45662ba5f88c4297" Loading vcf from: QDir( "/home/lukas/.local/share/gnome-ring/profiles" , nameFilters = { "*" }, QDir::SortFlags( Name | IgnoreCase ) , QDir::Filters( Dirs|Files|Drives|AllEntries ) ) (gnome-ring:711): GLib-GIO-ERROR **: Settings schema 'org.gnome.Evolution.DefaultSources' is not installed /gnu/store/p2pxykqp746za9z3cxply4hpjff3qfxa-profile/bin/ring.cx: line 46: 711 Trace/breakpoint trap gnome-ring $* lukas@serenity [env]$ ---8<--- cut here -------------------- end ----->8--- It throws an error that I do not get if I instead do: ---8<--- cut here -------------------- start --->8--- lukas@serenity$ ./pre-inst-env guix environment --no-substitutes --no-grafts --ad-hoc ring-client-gnome evolution-data-server warning: failed to install locale: Invalid argument accepted connection from pid 1120, user lukas lukas@serenity [env]$ dring & [1] 1133 lukas@serenity [env]$ Ring Daemon 2.3.0, by Savoir-faire Linux 2004-2016 http://www.ring.cx/ [Video support enabled] 11:22:50.300 os_core_unix.c !pjlib 2.4 for POSIX initialized lukas@serenity [env]$ ring.cx (gnome-ring:1150): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. ** Message: Ring GNOME client version: 1.0.0 ** Message: git ref: unknown (gnome-ring:1150): Clutter-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. Updating all accounts Loading "708d2bd2d3639223" Account parameter " "Account.presenceSubscribeSupported" " not found Loading "45662ba5f88c4297" Loading vcf from: QDir( "/home/lukas/.local/share/gnome-ring/profiles" , nameFilters = { "*" }, QDir::SortFlags( Name | IgnoreCase ) , QDir::Filters( Dirs|Files|Drives|AllEntries ) ) (gnome-ring:1150): Gtk-WARNING **: gtkwidget.c:8523: widget not within a GtkWindow QDBusMarshaller: type `VectorString' attempts to redefine basic D-BUS type 'as' (QStringList) (Did you forget to call beginStructure() ?) QDBusMarshaller: type `MapStringVectorString' produces invalid D-BUS signature `a{s}' (Did you forget to call beginStructure() ?) QDBusMarshaller: type `QMap<QString,MapStringVectorString>' produces invalid D-BUS signature `a{s}' (Did you forget to call beginStructure() ?) Invalid current audio plugin Selection changed 0 Selection changed 0 ** (gnome-ring:1150): CRITICAL **: Unable to create EDS registry: Error calling StartServiceByName for org.gnome.evolution.dataserver.Sources5: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildSignaled: Process org.gnome.evolution.dataserver.Sources5 received signal 5 C-c C-c lukas@serenity [env]$ ---8<--- cut here -------------------- end ----->8--- The main window pops up and it works. I tried to solve this by propagating evolution-data-server, however, the same thing still happens. If evolution-data-server is not explicitly installed, then ring-client-gnome doesn't find it. I am not sure how to proceed on this. I thought I had seen the same behavior with the package 'gnome-calendar' which also uses evolution-data-server, however, I am not able to reproduce it now: ---8<--- cut here -------------------- start --->8--- lukas@serenity$ ./pre-inst-env guix environment --no-substitutes --no-grafts --ad-hoc gnome-calendar warning: failed to install locale: Invalid argument accepted connection from pid 6782, user lukas lukas@serenity [env]$ gnome-calendar (process:6793): libecal-CRITICAL **: e_cal_util_get_system_timezone: assertion 'location != NULL' failed ** (process:6793): WARNING **: Failed to access calendar configuration: Error calling StartServiceByName for org.gnome.evolution.dataserver.Sources5: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildSignaled: Process org.gnome.evolution.dataserver.Sources5 received signal 5 ** (process:6793): CRITICAL **: e_cal_data_model_set_timezone: assertion 'zone != NULL' failed (gnome-calendar:6793): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. (gnome-calendar:6793): libecal-CRITICAL **: e_cal_util_get_system_timezone: assertion 'location != NULL' failed (gnome-calendar:6793): libecal-CRITICAL **: e_cal_util_get_system_timezone: assertion 'location != NULL' failed (gnome-calendar:6793): GLib-GIO-ERROR **: Settings schema 'org.gnome.shell.calendar' is not installed Trace/breakpoint trap lukas@serenity [env]$ exit lukas@serenity$ ./pre-inst-env guix environment --no-substitutes --no-grafts --ad-hoc gnome-calendar evolution-data-server warning: failed to install locale: Invalid argument accepted connection from pid 6805, user lukas The following derivations will be built: /gnu/store/3p1ggs14p303s7l348qvvkaxlhx93g96-profile.drv /gnu/store/wkv432071y8ny4805wx7l8dz738il5ap-ca-certificate-bundle.drv /gnu/store/m7cx7q37qfk0bzql20cvgb38pqy2qjyx-xdg-mime-database.drv /gnu/store/jjj4628gf3mrvy4psaqsl3frl4wl310j-xdg-desktop-database.drv /gnu/store/i66lqa6sik03m8f1qnw7yha1p2cnc25a-info-dir.drv /gnu/store/82gf9ak5sr7s6imbvgdi8aahw6z3xb3y-gtk-icon-themes.drv /gnu/store/3lhi0yx05k5f3fplnpasksyqfsw5gkyp-fonts-dir.drv warning: collision encountered: /gnu/store/grppcf85880nbzfvj9rg4fc90zx7papz-gtk+-3.20.3/share/icons/hicolor/icon-theme.cache /gnu/store/153wx94y4505kjlbvfyr20q8bafjv998-gnome-calendar-3.20.2/share/icons/hicolor/icon-theme.cache warning: arbitrarily choosing /gnu/store/grppcf85880nbzfvj9rg4fc90zx7papz-gtk+-3.20.3/share/icons/hicolor/icon-theme.cache warning: collision encountered: /gnu/store/ry5ylm1fyjpr875gwga39vj459ccld4q-gtk-icon-themes/share/icons/hicolor/icon-theme.cache /gnu/store/grppcf85880nbzfvj9rg4fc90zx7papz-gtk+-3.20.3/share/icons/hicolor/icon-theme.cache /gnu/store/153wx94y4505kjlbvfyr20q8bafjv998-gnome-calendar-3.20.2/share/icons/hicolor/icon-theme.cache warning: arbitrarily choosing /gnu/store/ry5ylm1fyjpr875gwga39vj459ccld4q-gtk-icon-themes/share/icons/hicolor/icon-theme.cache warning: collision encountered: /gnu/store/kav2jb48w3m18d43bk1f7rxziawpi9sa-evolution-data-server-3.20.1/share/glib-2.0/schemas/gschemas.compiled /gnu/store/grppcf85880nbzfvj9rg4fc90zx7papz-gtk+-3.20.3/share/glib-2.0/schemas/gschemas.compiled /gnu/store/153wx94y4505kjlbvfyr20q8bafjv998-gnome-calendar-3.20.2/share/glib-2.0/schemas/gschemas.compiled warning: arbitrarily choosing /gnu/store/kav2jb48w3m18d43bk1f7rxziawpi9sa-evolution-data-server-3.20.1/share/glib-2.0/schemas/gschemas.compiled lukas@serenity [env]$ gnome-calendar (process:6859): libecal-CRITICAL **: e_cal_util_get_system_timezone: assertion 'location != NULL' failed ** (process:6859): WARNING **: Failed to access calendar configuration: Error calling StartServiceByName for org.gnome.evolution.dataserver.Sources5: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildSignaled: Process org.gnome.evolution.dataserver.Sources5 received signal 5 ** (process:6859): CRITICAL **: e_cal_data_model_set_timezone: assertion 'zone != NULL' failed (gnome-calendar:6859): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. (gnome-calendar:6859): libecal-CRITICAL **: e_cal_util_get_system_timezone: assertion 'location != NULL' failed (gnome-calendar:6859): libecal-CRITICAL **: e_cal_util_get_system_timezone: assertion 'location != NULL' failed (gnome-calendar:6859): GLib-GIO-ERROR **: Settings schema 'org.gnome.shell.calendar' is not installed Trace/breakpoint trap ---8<--- cut here -------------------- end ----->8--- It fails in both cases. To come back to your question: I am not fully convinced that other packages using evolution-data-server are able to properly use it as an input. I am pretty sure that propagating evolution-data-server does not make it a lot better. Should I move it to 'inputs'? Thank you for your review! Best, Lukas
Hi, > I was not sure how to handle this properly. The package libring > provides a program 'dring', which is a daemon that, as far as I > understand, does all the communication with peers on the internet. So > in order to place a call, one first needs to run 'dring &' and then > start the ring-client-gnome. If the ring daemon is not running, then > ring-client-gnome won't do anything useful, it will just error out on > startup. > > Looking at the manual, this does not justify propagation. My intention > was that people can just install ring-client-gnome in a profile and it > will work. If libring is not propagated, it will also need to be > installed by hand. I think it's fine to be propagated in this case - but let's see what the others say. > Is there a good way to specify this kind of runtime requirement? I > could also just move it to 'inputs' and put a hint in the description > that libring should be installed alongside ring-client-gnome. Good question. > (gnome-ring:711): GLib-GIO-ERROR **: Settings schema 'org.gnome.Evolution.DefaultSources' is not installed > (gnome-calendar:6793): GLib-GIO-ERROR **: Settings schema 'org.gnome.shell.calendar' is not installed > ** (process:6859): WARNING **: Failed to access calendar configuration: Error calling StartServiceByName for org.gnome.evolution.dataserver.Sources > (gnome-calendar:6859): GLib-GIO-ERROR **: Settings schema 'org.gnome.shell.calendar' is not installed Hmmm... I don't use GNOME - so no idea. I have to defer to people more knowledgeable about it. How does a GNOME program find other program's settings schemas in Guix? Also it seems it's trying to use dbus (?) in order to start the evolution data server. How is that searched for?
On Mon, Sep 26, 2016 at 01:35:04AM +0200, Danny Milosavljevic wrote: > > (gnome-ring:711): GLib-GIO-ERROR **: Settings schema 'org.gnome.Evolution.DefaultSources' is not installed > > (gnome-calendar:6793): GLib-GIO-ERROR **: Settings schema 'org.gnome.shell.calendar' is not installed > > ** (process:6859): WARNING **: Failed to access calendar configuration: Error calling StartServiceByName for org.gnome.evolution.dataserver.Sources > > (gnome-calendar:6859): GLib-GIO-ERROR **: Settings schema 'org.gnome.shell.calendar' is not installed > > Hmmm... I don't use GNOME - so no idea. I have to defer to people more knowledgeable about it. How does a GNOME program find other program's settings schemas in Guix? Also it seems it's trying to use dbus (?) in order to start the evolution data server. How is that searched for? I am hitting a similar problem with gnumeric. Install latest, open spreadsheet, hit 'safe as' and you get: (gnumeric:1974): GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed (bit annoying as some work got lost) but easy to reproduce. This issue suggests a solution: http://stackoverflow.com/questions/9678301/can-not-use-gtk3-filechooser-on-mac-osx#9684626 i.e., the builder needs to run glib-compile-schemas [path to org.gtk.Settings.FileChooser.gschema]. There is a compiled schema in the path, but maybe not for FileChooser and others. Pj. --
From 10a6216d59e8128c0d6208c5f0487825f3a956a0 Mon Sep 17 00:00:00 2001 From: Lukas Gradl <lgradl@openmailbox.org> Date: Sun, 28 Aug 2016 14:05:28 -0500 Subject: [PATCH 10/10] gnu: Add ring-client-gnome. * gnu/packages/telephony.scm (ring-client-gnome): New variable. --- gnu/packages/telephony.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 7acb2dc..6df564f 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -23,6 +23,7 @@ (define-module (gnu packages telephony) #:use-module (gnu packages) + #:use-module (gnu packages aidc) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -30,8 +31,12 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) + #:use-module (gnu packages documentation) + #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gtk) #:use-module (gnu packages libupnp) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) @@ -611,3 +616,50 @@ protocols, as well as decentralized calling using P2P-DHT. This package provides a library common to all Ring clients.") (home-page "https://ring.cx/") (license license:gpl3+)))) + + +(define-public ring-client-gnome + (let ((commit "1a468b9e6fae7c4426c590c1b5eee2718e0c0001")) ; This is the + ; commit used in the AUR package. + (package + (name "ring-client-gnome") + (version (string-append "1.0.0-1." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url (string-append + "https://gerrit-ring.savoirfairelinux.com/" name)) + (commit commit))) + (sha256 + (base32 + "07r0yky60c0zxq4slr7zxgmiknrpybzq94kk1j4khml6nlbjbvp2")))) + (build-system cmake-build-system) + (inputs + `(("libringclient" ,libringclient) + ("gtk+" ,gtk+) + ("glib:bin" ,glib "bin") + ("qrencode" ,qrencode) + ("libnotify" ,libnotify) + ("clutter" ,clutter) + ("clutter-gtk" ,clutter-gtk) + ("gettext" ,gnu-gettext))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("doxygen" ,doxygen))) + (propagated-inputs + `(("libring" ,libring) ; This is needed to run dring. + ("adwaita-icon-theme" ,adwaita-icon-theme) + ("evolution-data-server" ,evolution-data-server))) + (arguments + `(#:tests? #f)) ; There is no testsuite. + (synopsis "Distributed multimedia communications platform") + (description "Ring is a secure and distributed voice, video and chat +communication platform that requires no centralized server and leaves the +power of privacy in the hands of the user. It supports the SIP and IAX +protocols, as well as decentralized calling using P2P-DHT. + +This package provides the Ring client for the Gnome Desktop.") + (home-page "https://ring.cx/") + (license license:gpl3+)))) -- 2.9.0