diff --git a/www-client/uget/files/uget-2.2.3-fix_c23.patch b/www-client/uget/files/uget-2.2.3-fix_c23.patch
new file mode 100644
index 0000000000000..7a3bdf8e2a375
--- /dev/null
+++ b/www-client/uget/files/uget-2.2.3-fix_c23.patch
@@ -0,0 +1,13 @@
+bugs https://bugs.gentoo.org/944225 https://bugs.gentoo.org/944274
+fix unprototyped function
+--- a/ui-gtk/UgtkSettingDialog.h
++++ b/ui-gtk/UgtkSettingDialog.h
+@@ -75,7 +75,7 @@ struct UgtkSettingDialog
+ struct UgtkMediaWebsiteForm media_website;
+ };
+
+-UgtkSettingDialog* ugtk_setting_dialog_new ();
++UgtkSettingDialog* ugtk_setting_dialog_new (const gchar* title, GtkWindow* parent);
+ void ugtk_setting_dialog_free (UgtkSettingDialog* sdialog);
+
+ void ugtk_setting_dialog_run (UgtkSettingDialog* dialog, UgtkApp* app);
diff --git a/www-client/uget/files/uget-2.2.3-fix_crash_sorting.patch b/www-client/uget/files/uget-2.2.3-fix_crash_sorting.patch
new file mode 100644
index 0000000000000..8aeb53acb9043
--- /dev/null
+++ b/www-client/uget/files/uget-2.2.3-fix_crash_sorting.patch
@@ -0,0 +1,15 @@
+fix crash when changing sort
+https://github.com/ugetdm/uget/issues/40
+patch from upstream: 0c5b01
+--- a/ui-gtk/UgtkApp-callback.c
++++ b/ui-gtk/UgtkApp-callback.c
+@@ -549,6 +549,9 @@ static void node_updated (UgetNode* child)
+ UgtkApp* app;
+
+ node = child->parent;
++ if(node == NULL) {
++ return;
++ }
+ app = node->control->notifier->data;
+ if (node == (UgetNode*) app->traveler.category.model->root) {
+ // category changed
diff --git a/www-client/uget/metadata.xml b/www-client/uget/metadata.xml
index bd00b3e427a82..a4f0ec352c94b 100644
--- a/www-client/uget/metadata.xml
+++ b/www-client/uget/metadata.xml
@@ -12,7 +12,7 @@
Enable support for net-misc/aria2 through xmlrpc.
You'll find the plugin in the app's settings.
Enable JSON-RPC over unix domain socket
- Use dev-libs/openssl instead of net-libs/gnutls
+ Use dev-libs/openssl instead of dev-libs/libgcrypt
Enable uGet feed messages
diff --git a/www-client/uget/uget-2.2.3-r1.ebuild b/www-client/uget/uget-2.2.3-r1.ebuild
new file mode 100644
index 0000000000000..9fe6216d90c69
--- /dev/null
+++ b/www-client/uget/uget-2.2.3-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools optfeature xdg
+
+DESCRIPTION="Download manager using gtk+ and libcurl"
+HOMEPAGE="https://github.com/ugetdm/uget"
+SRC_URI="https://downloads.sourceforge.net/project/urlget/uget%20%28stable%29/${PV}/${P}-1.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="appindicator control-socket gstreamer libnotify nls openssl rss"
+
+RDEPEND="
+ dev-libs/glib:2
+ net-misc/curl
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/pango
+ appindicator? ( dev-libs/libayatana-appindicator )
+ gstreamer? ( media-libs/gstreamer:1.0 )
+ libnotify? ( x11-libs/libnotify )
+ !openssl? ( dev-libs/libgcrypt:0= )
+ openssl? ( dev-libs/openssl:0= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.1-fno-common.patch
+ # https://github.com/ugetdm/uget/issues/49
+ "${FILESDIR}"/${PN}-2.2.1-ayatana.patch
+ "${FILESDIR}"/${PN}-2.2.3-broken-curl-check.patch
+ # https://github.com/ugetdm/uget/issues/40
+ "${FILESDIR}"/${PN}-2.2.3-fix_crash_sorting.patch
+ "${FILESDIR}"/${PN}-2.2.3-fix_c23.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ $(use_enable appindicator)
+ $(use_enable control-socket unix_socket)
+ $(use_enable gstreamer)
+ $(use_enable libnotify notify)
+ $(use_enable nls)
+ $(use_enable rss rss_notify)
+ $(use_with !openssl gnutls)
+ $(use_with openssl)
+ )
+
+ econf "${myconf[@]}"
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ optfeature "aria2 plugin" net-misc/aria2[xmlrpc]
+}