Subject: Re: [bug#67162] [PATCH gnome-team v2] gnu: epiphany: Update to 44.7.

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 15 Nov 2023 06:27:39 +0100

Am Dienstag, dem 14.11.2023 um 12:03 +0100 schrieb Vivien Kraus:
> Soup2 is not supported anymore, we do not need to disable it
> explicitely.
> 
> * gnu/packages/gnome.scm (epiphany): Update to 44.7.
> [#:phase 'skip-gtk-update-icon-cache]: Update for build system
> changes.
> [#:phase 'disable-failing-tests]: Partially disable web_view_test.
> [#:phase 'pre-check]: Remove.
> [#:phase 'check]: Replace with a new phase.
> [#:phase 'wrap-epiphany]: New phase.
> [#:configure-flags]: Remove soup2.
> [native-inputs]: Add bash-minimal.
> [inputs]: Replace gcr-3 with gcr and webkitgtk-for-gtk3 with
> webkitgtk.  Add
> gstreamer, gst-plugins-base, gst-plugins-good, libadwaita.  Remove
> libdazzle
> and libhandy.
> 
> Change-Id: I95ab6551a1b38254191801549be9dba0abb04593
> ---
>  gnu/packages/gnome.scm | 63 ++++++++++++++++++++++++++++++----------
> --
>  1 file changed, 46 insertions(+), 17 deletions(-)
> 
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 2958da2cd9..5fd98b336d 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -7095,7 +7095,7 @@ (define-public simple-scan
>  (define-public epiphany
>    (package
>      (name "epiphany")
> -    (version "42.5")
> +    (version "44.7")
>      (source (origin
>                (method url-fetch)
>                (uri (string-append "mirror://gnome/sources/epiphany/"
> @@ -7103,7 +7103,7 @@ (define-public epiphany
>                                    "epiphany-" version ".tar.xz"))
>                (sha256
>                 (base32
> -               
> "0mln4iym0fqkri959650cccdhq3r4d4kfn8yld0vvdmzskmak4a6"))))
> +               
> "1srdbn2rls4c0dvrjk0djfmxxnrd012jbji8aavslgkf8cs5mya4"))))
>      (build-system meson-build-system)
>      (arguments
>       (list
> @@ -7113,8 +7113,9 @@ (define-public epiphany
>            (add-after 'unpack 'skip-gtk-update-icon-cache
>              ;; Don't create 'icon-theme.cache'.
>              (lambda _
> -              (substitute* "post_install.py"
> -                (("gtk-update-icon-cache") "true"))))
> +              (substitute* "meson.build"
> +                (("gtk_update_icon_cache: true")
> +                 "gtk_update_icon_cache: false"))))
>            (add-after 'unpack 'disable-failing-tests
>              (lambda _
>                (substitute* "tests/meson.build"
> @@ -7122,20 +7123,46 @@ (define-public epiphany
>                  ;; supports overriding the ftp schema web_app_utils
> fails due
>                  ;; to missing network access.
>                  (("(embed_shell|web_app_utils)_test,")
> -                 "find_program('sh'), args: ['-c', 'exit 77'],"))))
> -          (add-before 'check 'pre-check
> -            (lambda _
> -              ;; Tests require a running X server.
> -              (system "Xvfb :1 &")
> -              (setenv "DISPLAY" ":1"))))
> +                 "find_program('sh'), args: ['-c', 'exit 77'],")
> +                ;; web_view_test partially fails, because it can’t
> run bwrap.
> +                (("web_view_test,")
> +                 (string-append
> +                  "web_view_test, args: ["
> +                  (string-join
> +                   (map (lambda (test)
> +                          (string-append "'-s', '/embed/ephy-web-
> view/" test "'"))
> +                        '("load_url"
> +                         
> "provisional_load_failure_updates_back_forward_list"
> +                          "error-pages-not-stored-in-history"))
> +                   ", ")
> +                  "],")))))
> +          (replace 'check
> +            (lambda* (#:key parallel-tests? tests? #:allow-other-
> keys)
> +              (when tests?
> +                (setenv "MESON_TESTTHREADS"
> +                        (if parallel-tests?
> +                            (number->string (parallel-job-count))
> +                            "1"))
> +                (setenv "XDG_CACHE_HOME" (getcwd))
> +                ;; Tests require a running X server.
> +                (system "Xvfb :1 &")
> +                (setenv "DISPLAY" ":1")
> +                (invoke "dbus-run-session" "--"
> +                        "meson" "test" "--print-errorlogs" "-t"
> "0"))))
> +         (add-after 'install 'wrap-epiphany
> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (let ((out             (assoc-ref outputs "out"))
> +                   (gst-plugin-path (getenv
> "GST_PLUGIN_SYSTEM_PATH")))
> +               (wrap-program (string-append out "/bin/epiphany")
> +                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-
> path)))))))
In this case it appears harmless, but I prefer suffix wraps for
GStreamer, as they allow user plugins (which use the same variable) to
be prepended.
There are some phases that already add GST_PLUGIN_SYSTEM_PATH to
inspire naming, but analogous to glib-or-gtk-wrap, we should probably
name this gst-wrap.
>        #:configure-flags
>        ;; Otherwise, the RUNPATH will lack the final 'epiphany' path
> component.
>        #~(list (string-append "-Dc_link_args=-Wl,-rpath="
> -                             #$output "/lib/epiphany")
> -              "-Dsoup2=disabled")))     ;use libsoup 3
> +                             #$output "/lib/epiphany"))))
>      (propagated-inputs (list dconf))
>      (native-inputs
> -     (list desktop-file-utils           ; for update-desktop-
> database
> +     (list bash-minimal                 ; for wrap-program
> +           desktop-file-utils           ; for update-desktop-
> database
>             gettext-minimal
>             `(,glib "bin")               ; for glib-mkenums
>             itstool
> @@ -7144,15 +7171,17 @@ (define-public epiphany
>             xorg-server-for-tests))
>      (inputs
>       (list avahi
> -           gcr-3
> +           gcr
>             glib-networking
>             gnome-desktop
>             gsettings-desktop-schemas
> +           gst-plugins-base
> +           gst-plugins-good
> +           gstreamer
Any reason why those now became necessary?  You might have to split
this into two parts if it's not related to the update.
>             iso-codes
>             json-glib
> +           libadwaita
>             libarchive
> -           libdazzle
> -           libhandy
>             libnotify
>             libportal
>             (librsvg-for-system)         ; for loading SVG files
> @@ -7161,7 +7190,7 @@ (define-public epiphany
>             libxslt
>             nettle                       ; for hogweed
>             sqlite
> -           webkitgtk-for-gtk3))
> +           webkitgtk))
>      (home-page "https://wiki.gnome.org/Apps/Web")
>      (synopsis "GNOME web browser")
>      (description
> 
> base-commit: 72e886328c14c832b2ed71c400069b63852ee18d
Cheers