commit: 1c21e10fd2e70958df48da74c131d0c0326f949f
Author: dsaf <ghostyn678+git <AT> gmail <DOT> com>
AuthorDate: Sun Mar 15 04:14:27 2026 +0000
Commit: dsaf <ghostyn678+git <AT> gmail <DOT> com>
CommitDate: Sun Mar 15 04:14:53 2026 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=1c21e10f
net-im/endcord: new package, add 1.3.0, 9999
Signed-off-by: dsaf <ghostyn678+git <AT> gmail.com>
net-im/endcord/Manifest | 1 +
net-im/endcord/endcord-1.3.0.ebuild | 84 +++++++++++++++++++++++++
net-im/endcord/endcord-9999.ebuild | 85 ++++++++++++++++++++++++++
net-im/endcord/files/endcord-1.3.0-flags.patch | 25 ++++++++
net-im/endcord/metadata.xml | 16 +++++
5 files changed, 211 insertions(+)
diff --git a/net-im/endcord/Manifest b/net-im/endcord/Manifest
new file mode 100644
index 0000000000..7c66e4f712
--- /dev/null
+++ b/net-im/endcord/Manifest
@@ -0,0 +1 @@
+DIST endcord-1.3.0.tar.gz 776077 BLAKE2B
efd535d64d97e553ae984ce38ce537c814561a0f4f7794e4b2619abd7ff09aef80e5d950ad86e9380c63d7bf4459654a746e19e77a880cab945b28104a13fb1e
SHA512
e64f941314031f29793b1ef6d6c05ebcd7e6b8c0b6efa86edc5a77879c51c38498ddc360cbc8cfde1a41e9d4e637d6674d5d60960fd38610423c1aa5b648852f
diff --git a/net-im/endcord/endcord-1.3.0.ebuild
b/net-im/endcord/endcord-1.3.0.ebuild
new file mode 100644
index 0000000000..e6ae22a32f
--- /dev/null
+++ b/net-im/endcord/endcord-1.3.0.ebuild
@@ -0,0 +1,84 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit distutils-r1 flag-o-matic optfeature wrapper
+
+DESCRIPTION="Feature rich Discord TUI client"
+HOMEPAGE="https://github.com/sparklost/endcord"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/sparklost/endcord.git"
+else
+
SRC_URI="https://github.com/sparklost/endcord/archive/refs/tags/${PV}.tar.gz ->
${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-3"
+SLOT=0
+
+RESTRICT="strip"
+
+BDEPEND="
+ >=dev-python/cython-3.2.4[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/discord-protos-0.0.2[${PYTHON_USEDEP}]
+ >=dev-python/emoji-2.15.0[${PYTHON_USEDEP}]
+ >=dev-python/filetype-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-2.4.2[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3.11.7[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/pycryptodome-3.23.0[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.6.2[${PYTHON_USEDEP}]
+ >=dev-python/pysocks-1.7.1[${PYTHON_USEDEP}]
+ >=dev-python/python-socks-2.8.0[${PYTHON_USEDEP}]
+ >=dev-python/qrcode-8.2[${PYTHON_USEDEP}]
+ >=dev-python/soundcard-0.4.5[${PYTHON_USEDEP}]
+ >=dev-python/soundfile-0.13.1[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-2.6.3[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.9.0[${PYTHON_USEDEP}]
+"
+
+PATCHES=( "${FILESDIR}/${PN}-1.3.0-flags.patch" )
+
+python_configure_all() {
+ filter-lto # incorrectly links extensions
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ python_domodule ${PN}
+
+ exeinto /usr/libexec/${PN}
+ doexe main.py
+
+ make_wrapper ${PN} \
+ "${EPYTHON} ${EPREFIX}/usr/libexec/${PN}/main.py"
+}
+
+pkg_postinst() {
+ optfeature "clipboard support on X11" x11-misc/xclip
+ optfeature "clipboard support on Wayland" gui-apps/wl-clipboard
+
+ optfeature "file dialog when uploading" \
+ app-misc/yazi \
+ gnome-extra/zenity \
+ kde-apps/kdialog
+
+ optfeature "spellchecking (requires aspell dictionary such as
aspell-en)" \
+ app-text/aspell
+
+ optfeature "YouTube support" net-misc/yt-dlp
+ optfeature "play YouTube videos in native player (non-ASCII support)"
media-video/mpv
+
+ optfeature "store token in system keyring (requires gnome-keyring
running under dbus)" \
+ app-crypt/libsecret
+}
diff --git a/net-im/endcord/endcord-9999.ebuild
b/net-im/endcord/endcord-9999.ebuild
new file mode 100644
index 0000000000..daf57cc8bb
--- /dev/null
+++ b/net-im/endcord/endcord-9999.ebuild
@@ -0,0 +1,85 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit distutils-r1 flag-o-matic optfeature wrapper
+
+DESCRIPTION="Feature rich Discord TUI client"
+HOMEPAGE="https://github.com/sparklost/endcord"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/sparklost/endcord.git"
+else
+
SRC_URI="https://github.com/sparklost/endcord/archive/refs/tags/${PV}.tar.gz ->
${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-3"
+SLOT=0
+
+RESTRICT="strip"
+
+BDEPEND="
+ >=dev-python/cython-3.2.4[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/discord-protos-1.2.126[${PYTHON_USEDEP}]
+ >=dev-python/emoji-2.15.0[${PYTHON_USEDEP}]
+ >=dev-python/filetype-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-2.4.2[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3.11.7[${PYTHON_USEDEP}]
+ >=dev-python/pycryptodome-3.23.0[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.6.2[${PYTHON_USEDEP}]
+ >=dev-python/pysocks-1.7.1[${PYTHON_USEDEP}]
+ >=dev-python/python-socks-2.8.1[${PYTHON_USEDEP}]
+ >=dev-python/qrcode-8.2[${PYTHON_USEDEP}]
+ >=dev-python/soundcard-0.4.5[${PYTHON_USEDEP}]
+ >=dev-python/soundfile-0.13.1[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-2.6.3[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.9.0[${PYTHON_USEDEP}]
+"
+
+PATCHES=( "${FILESDIR}/${PN}-1.3.0-flags.patch" )
+
+DOCS=( README.md docs/ )
+
+python_configure_all() {
+ filter-lto # incorrectly links extensions
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ python_domodule ${PN}
+
+ exeinto /usr/libexec/${PN}
+ doexe main.py
+
+ make_wrapper ${PN} \
+ "${EPYTHON} ${EPREFIX}/usr/libexec/${PN}/main.py"
+}
+
+pkg_postinst() {
+ optfeature "clipboard support on X11" x11-misc/xclip
+ optfeature "clipboard support on Wayland" gui-apps/wl-clipboard
+
+ optfeature "file dialog when uploading" \
+ app-misc/yazi \
+ gnome-extra/zenity \
+ kde-apps/kdialog
+
+ optfeature "spellchecking (requires aspell dictionary such as
aspell-en)" \
+ app-text/aspell
+
+ optfeature "YouTube support" net-misc/yt-dlp
+ optfeature "play YouTube videos in native player (non-ASCII support)"
media-video/mpv
+
+ optfeature "store token in system keyring (requires gnome-keyring
running under dbus)" \
+ app-crypt/libsecret
+}
diff --git a/net-im/endcord/files/endcord-1.3.0-flags.patch
b/net-im/endcord/files/endcord-1.3.0-flags.patch
new file mode 100644
index 0000000000..87a93d70bd
--- /dev/null
+++ b/net-im/endcord/files/endcord-1.3.0-flags.patch
@@ -0,0 +1,25 @@
+strips forced unsecure flags
+
+--- a/setup.py
++++ b/setup.py
+@@ -3,18 +3,8 @@
+ from Cython.Build import cythonize
+ from setuptools import Extension, setup
+
+-extra_compile_args = [
+- "-flto",
+- "-O3",
+- "-ffast-math",
+- "-fomit-frame-pointer",
+- "-funroll-loops",
+-]
+-extra_link_args = [
+- "-flto",
+- "-O3",
+- "-s",
+-]
++extra_compile_args = []
++extra_link_args = []
+
+ if shutil.which("lld"):
+ extra_compile_args.append("-fuse-ld=lld")
diff --git a/net-im/endcord/metadata.xml b/net-im/endcord/metadata.xml
new file mode 100644
index 0000000000..f03243b611
--- /dev/null
+++ b/net-im/endcord/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ <name>dsaf</name>
+ </maintainer>
+ <longdescription>
+ Endcord is a third-party feature rich Discord client, running
entirely in terminal.
+ It is built with Python (this doesnt mean its slow) and ncurses
library, to deliver
+ lightweight yet feature rich experience.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">sparklost/endcord</remote-id>
+ </upstream>
+</pkgmetadata>