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>

Reply via email to