diff --git a/srcpkgs/eolie/patches/libsoup3.patch b/srcpkgs/eolie/patches/libsoup3.patch
new file mode 100644
index 00000000000..8f47d542f21
--- /dev/null
+++ b/srcpkgs/eolie/patches/libsoup3.patch
@@ -0,0 +1,67 @@
+--- a/eolie/application.py
++++ b/eolie/application.py
+@@ -12,8 +12,8 @@
+
+ import gi
+ gi.require_version('Gtk', '3.0')
+-gi.require_version('WebKit2', '4.0')
+-gi.require_version('Soup', '2.4')
++gi.require_version('WebKit2', '4.1')
++gi.require_version('Soup', '3.0')
+ gi.require_version('Secret', '1')
+ gi.require_version('GtkSpell', '3.0')
+ gi.require_version("Handy", "1")
+--- a/eolie/css_stylesheet.py
++++ b/eolie/css_stylesheet.py
+@@ -126,18 +126,12 @@ class StyleSheet(GObject.Object):
+ """
+ try:
+ session = Soup.Session.new()
+- request = session.request(uri)
+- stream = request.send(self.__cancellable)
+- bytes = bytearray(0)
+- buf = stream.read_bytes(1024, self.__cancellable).get_data()
+- while buf:
+- bytes += buf
+- buf = stream.read_bytes(1024, self.__cancellable).get_data()
+- stream.close()
++ msg = Soup.Message.new("GET", uri)
++ content = session.send_and_read(msg, self.__cancellable)
+ try:
+- return bytes.decode("utf-8")
++ return content.decode("utf-8")
+ except:
+- return bytes.decode("iso8859-1")
++ return content.decode("iso8859-1")
+ except Exception as e:
+ Logger.error("StyleSheet::__get_uri_contents(): %s -> %s" %
+ (e, uri))
+--- a/eolie/helper_task.py
++++ b/eolie/helper_task.py
+@@ -11,7 +11,7 @@
+ # along with this program. If not, see .
+
+ import gi
+-gi.require_version("Soup", "2.4")
++gi.require_version("Soup", "3.0")
+ from gi.repository import GLib, Soup
+
+ from threading import Thread
+@@ -63,11 +63,13 @@ class TaskHelper:
+ """
+ try:
+ session = Soup.Session.new()
+- session.set_property("accept-language-auto", True)
++ session.set_accept_language_auto(True)
+ if self.__user_agent is not None:
+- session.set_property("user-agent", self.__user_agent)
+- request = session.request(uri)
+- request.send_async(cancellable,
++ session.set_user_agent(self.__user_agent)
++ msg = Soup.Message.new("GET", uri)
++ session.send_async(msg,
++ GLib.PRIORITY_DEFAULT,
++ cancellable,
+ self.__on_request_send_async,
+ callback,
+ cancellable,
diff --git a/srcpkgs/eolie/patches/python-3.8.patch b/srcpkgs/eolie/patches/python-3.8.patch
deleted file mode 100644
index 39e0437b331..00000000000
--- a/srcpkgs/eolie/patches/python-3.8.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/python-webextension/meson.build
-+++ b/python-webextension/meson.build
-@@ -2,7 +2,7 @@
-
- webkitextension = dependency('webkit2gtk-web-extension-4.0')
- pyobject = dependency('pygobject-3.0')
--python3 = dependency('python3')
-+python3 = dependency('python3-embed')
-
- pythonloader = configure_file(
- input: 'pythonloader.c.in',
diff --git a/srcpkgs/eolie/patches/re-raw.patch b/srcpkgs/eolie/patches/re-raw.patch
new file mode 100644
index 00000000000..429a02638ec
--- /dev/null
+++ b/srcpkgs/eolie/patches/re-raw.patch
@@ -0,0 +1,57 @@
+--- a/eolie/css_rule_import.py
++++ b/eolie/css_rule_import.py
+@@ -32,7 +32,7 @@ class CSSImportRule:
+ self.__stylesheet = None
+ try:
+ parsed = urlparse(uri)
+- search = re.search('@import url\(["\']?([^"\')]*)', css)
++ search = re.search(r'@import url\(["\']?([^"\')]*)', css)
+ css = search.group(1)
+ if css.startswith(".."):
+ path_split = parsed.path.split("/")
+--- a/eolie/css_rule_list.py
++++ b/eolie/css_rule_list.py
+@@ -35,7 +35,7 @@ class CSSRuleList:
+ for child in self.__get_children(css):
+ child = child.strip()
+ # Remove any comment
+- child = re.sub("\/\*[^*]*[^/]*\*\/", "", child)
++ child = re.sub(r"\/\*[^*]*[^/]*\*\/", "", child)
+ if child.startswith("@media"):
+ rule = CSSMediaRule(child, uri, cancellable)
+ elif child.startswith("@supports"):
+--- a/eolie/css_rule_style.py
++++ b/eolie/css_rule_style.py
+@@ -121,7 +121,7 @@ class CSSStyleRule:
+ @return str
+ """
+ value = re.sub('[ ]*!.*important', '', value)
+- value = re.sub('url.*\([^\)]*\)', 'url()', value)
++ value = re.sub(r'url.*\([^\)]*\)', 'url()', value)
+ return value.strip()
+
+ def __contains_color(self, value):
+@@ -228,9 +228,9 @@ class CSSStyleRule:
+ """
+ results = {}
+ # Extract values from rgb() and rgba()
+- colors = re.findall('(rgb.?\([^\)]*\))', rule)
++ colors = re.findall(r'(rgb.?\([^\)]*\))', rule)
+ for color in colors:
+- color_tuple = re.search('rgb.?\(([^\)]*)', color)
++ color_tuple = re.search(r'rgb.?\(([^\)]*)', color)
+ if color_tuple is None:
+ continue
+ split = self.__get_split(color_tuple[1])
+@@ -251,9 +251,9 @@ class CSSStyleRule:
+ """
+ results = {}
+ # Extract values from hsl() and hsla()
+- colors = re.findall('(hsl.?\([^\)]*\))', rule)
++ colors = re.findall(r'(hsl.?\([^\)]*\))', rule)
+ for color in colors:
+- color_tuple = re.search('hsl.?\(([^\)]*)', color)
++ color_tuple = re.search(r'hsl.?\(([^\)]*)', color)
+ if color_tuple is None:
+ continue
+ split = self.__get_split(color_tuple[1])
diff --git a/srcpkgs/eolie/re-raw.patch b/srcpkgs/eolie/re-raw.patch
new file mode 100644
index 00000000000..429a02638ec
--- /dev/null
+++ b/srcpkgs/eolie/re-raw.patch
@@ -0,0 +1,57 @@
+--- a/eolie/css_rule_import.py
++++ b/eolie/css_rule_import.py
+@@ -32,7 +32,7 @@ class CSSImportRule:
+ self.__stylesheet = None
+ try:
+ parsed = urlparse(uri)
+- search = re.search('@import url\(["\']?([^"\')]*)', css)
++ search = re.search(r'@import url\(["\']?([^"\')]*)', css)
+ css = search.group(1)
+ if css.startswith(".."):
+ path_split = parsed.path.split("/")
+--- a/eolie/css_rule_list.py
++++ b/eolie/css_rule_list.py
+@@ -35,7 +35,7 @@ class CSSRuleList:
+ for child in self.__get_children(css):
+ child = child.strip()
+ # Remove any comment
+- child = re.sub("\/\*[^*]*[^/]*\*\/", "", child)
++ child = re.sub(r"\/\*[^*]*[^/]*\*\/", "", child)
+ if child.startswith("@media"):
+ rule = CSSMediaRule(child, uri, cancellable)
+ elif child.startswith("@supports"):
+--- a/eolie/css_rule_style.py
++++ b/eolie/css_rule_style.py
+@@ -121,7 +121,7 @@ class CSSStyleRule:
+ @return str
+ """
+ value = re.sub('[ ]*!.*important', '', value)
+- value = re.sub('url.*\([^\)]*\)', 'url()', value)
++ value = re.sub(r'url.*\([^\)]*\)', 'url()', value)
+ return value.strip()
+
+ def __contains_color(self, value):
+@@ -228,9 +228,9 @@ class CSSStyleRule:
+ """
+ results = {}
+ # Extract values from rgb() and rgba()
+- colors = re.findall('(rgb.?\([^\)]*\))', rule)
++ colors = re.findall(r'(rgb.?\([^\)]*\))', rule)
+ for color in colors:
+- color_tuple = re.search('rgb.?\(([^\)]*)', color)
++ color_tuple = re.search(r'rgb.?\(([^\)]*)', color)
+ if color_tuple is None:
+ continue
+ split = self.__get_split(color_tuple[1])
+@@ -251,9 +251,9 @@ class CSSStyleRule:
+ """
+ results = {}
+ # Extract values from hsl() and hsla()
+- colors = re.findall('(hsl.?\([^\)]*\))', rule)
++ colors = re.findall(r'(hsl.?\([^\)]*\))', rule)
+ for color in colors:
+- color_tuple = re.search('hsl.?\(([^\)]*)', color)
++ color_tuple = re.search(r'hsl.?\(([^\)]*)', color)
+ if color_tuple is None:
+ continue
+ split = self.__get_split(color_tuple[1])
diff --git a/srcpkgs/eolie/template b/srcpkgs/eolie/template
index de74cc6e7ab..340a8924d4f 100644
--- a/srcpkgs/eolie/template
+++ b/srcpkgs/eolie/template
@@ -1,17 +1,28 @@
# Template file for 'eolie'
pkgname=eolie
-version=0.9.62
-revision=7
+version=0.9.101
+revision=1
_eolie_hash=bb4aad19272cc636bd17f2f6602127fe
+_po=d5aac9503b4af24e3df89f531305cf9a70e26549
build_style=meson
-pycompile_module="eolie"
hostmakedepends="appstream-glib desktop-file-utils glib-devel pkg-config
gobject-introspection python3-MarkupSafe gettext"
-makedepends="gtk+3-devel libglib-devel python3-gobject-devel webkit2gtk-devel"
-depends="gtkspell3 python3-dateutil python3-gobject webkit2gtk python3-PyFxA"
+makedepends="gtk+3-devel libglib-devel python3-gobject-devel
+ libwebkit2gtk41-devel"
+depends="gtkspell3 python3-dateutil python3-gobject libwebkit2gtk41 python3-PyFxA"
short_desc="Web browser for GNOME"
maintainer="Enno Boland "
license="GPL-3.0-or-later"
homepage="https://wiki.gnome.org/Apps/Eolie"
distfiles="https://gitlab.gnome.org/World/eolie/uploads/${_eolie_hash}/eolie-${version}.tar.xz"
-checksum=9da359895306cf5929a01acb60d1506afb0a04ddbbd0d80ae1d0ba831e34671b
+distfiles="https://adishatz.org/eolie/eolie-${version}.tar.xz"
+distfiles="https://gitlab.gnome.org/World/eolie/-/archive/${version}/eolie-${version}.tar.bz2
+ https://gitlab.gnome.org/gnumdk/eolie-po/-/archive/${_po}/eolie-po-${_po}.tar.bz2"
+checksum="8e2af0482368c58a0931817d4c8a276c0d8d1a456ceb1ab7c80a3e2aea461b6a
+ ba9f85ff4e8a605f3b586b6ca7234ead8980a0a4b709131ff876c90b61553b58"
+
+skip_extraction="eolie-po-${_po}.tar.bz2"
+
+post_extract() {
+ vsrcextract -C subprojects/po eolie-po-${_po}.tar.bz2
+}