How to install epiphany dependencies on QubesOS/Debian_12?

Sources from GNOME/epiphany
BRANCH: gtk-4-17-4 [support wayland 1.21.0]
OS = debian 12 (vm template in QubesOS)

epiphany:
sudo apt install gsettings-desktop-schemas-dev
sudo apt install $(apt-file search --package-only hogweed)
sudo apt install $(apt-file search --package-only libarchive)
sudo apt install $(apt-file search --package-only libadwaita-1) //FAILED Found 1.2.2 but need: ‘>= 1.6’
sudo apt-get install libyaml-dev
sudo apt install $(apt-file search --package-only itstool)
sudo apt-get install xsltproc
sudo apt-get install docbook-xsl
[build/install libadwaita 1.6 from source]
sudo apt install $(apt-file search --package-only libsoup)
sudo apt install $(apt-file search --package-only libportal-gtk4)
sudo apt install $(apt-file search --package-only webkitgtk-6.0)

mkdir build && cd build
meson …
ninja
sudo ninja install

This produced:
~/dev/epiphany/build/src$ ls epiphany -l
-rwxr-xr-x 1 user user 229496 Feb 24 16:49 epiphany

The browser ran the first time
But cannnot access any https sites because of a TLS error
But can access HTTP web sites - SUCCESS!
The precise error was: TLS support is not available
==>How to enable SSL/TLS, at compile or runtime?
cat /usr/lib/x86_64-linux-gnu/gio/modules/giomodule.cache
libdconfsettings.so: gsettings-backend
libgiognomeproxy.so: gio-proxy-resolver
libgiognutls.so: gio-tls-backend
libgiolibproxy.so: gio-proxy-resolver
libgioremote-volume-monitor.so: gio-native-volume-monitor,gio-volume-monitor
libgvfsdbus.so: gio-vfs,gio-volume-monitor

The browser FAILED to run the second time
Unrecognized value “gl-disable”. Try GDK_DEBUG=help
Unrecognized value “vulkan-disable”. Try GDK_DEBUG=help
** (epiphany:155632): WARNING **: 16:57:43.129: Disabled hardware acceleration because GTK failed to initialize GL: OpenGL support disabled via GDK_DISABLE.
**
epiphany:ERROR:…/src/bookmarks/ephy-bookmarks-dialog.c:295:populate_bookmarks_list_box: assertion failed: (ephy_bookmarks_manager_tag_exists (self->manager, item))
Bail out! epiphany:ERROR:…/src/bookmarks/ephy-bookmarks-dialog.c:295:populate_bookmarks_list_box: assertion failed: (ephy_bookmarks_manager_tag_exists (self->manager, item))
Aborted
==>IS THERE A WAY TO FIX the bookmark issue at start?
TEMPORARY WORKAROUND: I removed the code section in *.c and recompile

WORKAROUND building dependency gtk:
meson.build:934:6: ERROR: Tried to override dependency ‘gtk4’ which has already been resolved or overridden at /home/user/dev/gtk/subprojects/gtk-4.10.3/meson.build:831:
Commenting 3 lines:
meson.override_dependency(‘gtk4’, libgtk_dep)
meson.override_dependency(pkg, libgtk_dep) meson.override_dependency(‘gtk4-unix-print’, libgtk_dep)

DEPENDENCIES BUILDING:
sudo apt autoremove
sudo apt install apt-file
sudo apt-file update
sudo apt-get install gperf
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libcairo2-dev
sudo apt-get install gsettings-desktop-schemas-dev
sudo apt-get install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
[update meson from source]
[build/install glib from source]
[build/install fontconfig (2.15) from source]
copy new fontconfig.pc into /usr/lib/x86_64-linux-gnu/pkgconfig/fontconfig.pc

sudo apt-get install libxkbcommon-dev
sudo apt-get install libxrandr-dev
sudo apt-get install libxi-dev
sudo apt-get install libxcursor-dev
sudo apt-get install libxdamage-dev
sudo apt-get install libxinerama-dev
sudo apt-get install libvulkan-dev
sudo apt-get install glslc

Commenting 3 lines:
meson.override_dependency(‘gtk4’, libgtk_dep)
meson.override_dependency(pkg, libgtk_dep)
meson.override_dependency(‘gtk4-unix-print’, libgtk_dep)
[build/install gtk from source]

[build/install gcr from source]
git clone gcr from GNOME/gcr
sudo apt install libgcrypt-dev
sudo apt-get install libp11-kit-dev
sudo apt install libsecret-1-dev
sudo apt install libsystemd-dev
sudo apt-get install valac
sudo apt install gi-docgen
sudo apt-get install gobject-introspection
sudo apt install libgirepository1.0-dev
meson setup ./build
meson compile -C ./build
meson install -C ./build

git clone /mesonbuild/meson.git
cd meson
sudo python3 setup.py install

Download the GLib source code
wget …gnome/sources/glib/2.80/glib-2.80.0.tar.xz
tar xf glib-2.80.0.tar.xz
cd glib-2.80.0
Remove section about vs_crt = ‘debug’ in meson.build
meson build
ninja -C build
sudo ninja -C build install

Download the source code fontconfig:
wget https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.15.0.tar.xz
Extract the tarball:
tar -xvf fontconfig-2.15.0.tar.xz
Navigate to the extracted directory:
cd fontconfig-2.15.0
Configure the installation with the following command:
./configure --prefix=/usr
–sysconfdir=/etc
–localstatedir=/var
–disable-docs
–docdir=/usr/share/doc/fontconfig-2.15.0
Compile and install the package:
make
sudo make install

git clone gtk from GNOME/gtk
meson setup ./build
meson compile -C ./build
meson install -C ./build

libadwaita-1.6
Download (HTTP): https://download.gnome.org/sources/libadwaita/1.6/libadwaita-1.6.4.tar.xz
mkdir build
cd build
meson setup --prefix=/usr --buildtype=release …
ninja
sudo ninja install

You’re using a LTS version of Ubuntu. This means that the libraries stay on older versions and only receive fixes on updates.

However, if you pull the development version from git, it may use a newer release of a library. It seems to me that happens here with GTK and fontconfig.

The easiest way in the case of Gnome apps is to use Flatpak-Builder, as in this case you can use the newest SDK from GNOME.

2 Likes

Yes, I have overwritten the font*.pc with the one produced.
As I said I want to build everything manually, it should be possible.
Thanks

This fixed the TLS issue
export GIO_MODULE_DIR=/usr/lib/x86_64-linux-gnu/gio/modules/

I guess we can close the topic since the dependencies and epiphany now works