Subject: Re: [bug#27767] [PATCH] gnu: Add eolie.

From: Roel Janssen <[email-masked]>
Date: Thu, 20 Jul 2017 12:02:36 +0200

Hi Ricardo!

I guess I'm too late, but here are some comments.

Ricardo Wurmus writes:

> * gnu/packages/gnome.scm (eolie): New variable.
> ---
>  gnu/packages/gnome.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 61 insertions(+)
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 345dc6a74..be00fcff5 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -3886,6 +3886,67 @@ the same backend as XSANE uses. This means that all existing scanners will
>  work and the interface is well tested.")
>      (license license:gpl3+)))
>  
> +(define-public eolie
> +  (package
> +    (name "eolie")
> +    (version "0.9.0")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://github.com/gnumdk/eolie/"
> +                                  "releases/download/"
> +                                  (version-major+minor version)
> +                                  "/eolie-" version ".tar.xz"))
> +              (sha256
> +               (base32
> +                "1lb3rd2as12vq24fcf9nmlhggf8vka3kli2i92i8iylwi7nq5n2a"))))
> +    (build-system glib-or-gtk-build-system)
> +    (arguments
> +     `(#:modules ((guix build glib-or-gtk-build-system)
> +                  (guix build utils)
> +                  (ice-9 match))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'wrap 'wrap-more
> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (let* ((out  (assoc-ref outputs "out"))
> +                    ;; These libraries must be on LD_LIBRARY_PATH.
> +                    (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
> +                            "atk" "gtk+" "gsettings-desktop-schemas"
> +                            "gobject-introspection"))
> +                    (path (string-join
> +                           (map (lambda (lib)
> +                                  (string-append (assoc-ref inputs lib) "/lib"))
> +                                libs)
> +                           ":")))
> +               (wrap-program (string-append out "/bin/eolie")
> +                 `("LD_LIBRARY_PATH" ":" prefix (,path))

This makes it work, but is this something we want to do here?
There seems to be a deeper issue with how libraries are found.

> +                 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
> +                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
> +             #t)))))
> +    (native-inputs
> +     `(("intltool" ,intltool)
> +       ("itstool" ,itstool)
> +       ("pkg-config" ,pkg-config)))
> +    (inputs
> +     `(("gobject-introspection" ,gobject-introspection)
> +       ("glib-networking" ,glib-networking)
> +       ("cairo" ,cairo)
> +       ("gtk+" ,gtk+)
> +       ("atk" ,atk)    ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
> +       ("python" ,python-wrapper)
> +       ("python-pygobject" ,python-pygobject)
> +       ("python-pycairo" ,python-pycairo)
> +       ("libsecret" ,libsecret)
> +       ("gtkspell3" ,gtkspell3)
> +       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
> +       ("webkitgtk" ,webkitgtk)))
> +    (home-page "https://github.com/gnumdk/eolie/")
> +    (synopsis "Web browser for GNOME")
> +    (description
> +     "Eolie is a new web browser for GNOME.  It features Firefox sync support,
> +a secret password store, an adblocker, and a modern UI.")
> +    (license license:gpl3+)))
> +
>  (define-public epiphany
>    (package
>      (name "epiphany")

I tested the browser and it seems to work quite well, except for:
- Ads are not blocked, even when the "Block ads" checkbox is checked.
- It seems to be cloning a repository for adblock_js when running the program:

  roel@antelope ~/sources/guix$ /gnu/store/ccvdhd5159qkachbzf4y9k5c6ds4cn4n-eolie-0.9.0/bin/eolie 
  Cloning into '/home/roel/.local/share/eolie/adblock_js'...
  Could not initialize PyGObjectremote: Counting objects: 74, done.
  remote: Total 74 (delta 0), reused 0 (delta 0), pack-reused 74
  Unpacking objects: 100% (74/74), done.

  The 'remote' for this repository is:
  https://github.com/gnumdk/eolie-adblock.git

- I get a couple of Gtk-WARNINGs:
  (eolie:4447): Gtk-WARNING **: Duplicate child name in GtkStack: submenu

  (eolie:4447): Gtk-WARNING **: Failed to fetch network locations: Automount failed: Message recipient disconnected from message bus without replying

  (eolie:4447): Gtk-WARNING **: Duplicate child name in GtkStack: submenu

  (eolie:4447): Gtk-WARNING **: Failed to fetch network locations: Automount failed: Message recipient disconnected from message bus without replying

  (eolie:4447): Gtk-WARNING **: Duplicate child name in GtkStack: submenu

  (eolie:4447): Gtk-WARNING **: Failed to fetch network locations: Automount failed: Message recipient disconnected from message bus without replying
  Application::__on_forms_filled(): g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.Eolie.Proxy.Page1" does not exist (3)

- And a couple of more warnings:

  Could not initialize PyGObjectApplication::__on_forms_filled(): g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.Eolie.Proxy.Page1" does not exist (3)

  Could not initialize PyGObject
  (eolie:4918): Gtk-WARNING **: Duplicate child name in GtkStack: submenu

Hopefully we can address these things in the future.

Kind regards,
Roel Janssen