git: 21a93bb5a323 - main - net-im/abaddon: New port: Alternative Discord client with voice support

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Tue, 15 Jul 2025 01:09:43 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=21a93bb5a323c60229df4b36d27418ba2b5a08e7

commit 21a93bb5a323c60229df4b36d27418ba2b5a08e7
Author:     seafork <seafork@disroot.org>
AuthorDate: 2025-07-15 01:07:28 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-07-15 01:07:28 +0000

    net-im/abaddon: New port: Alternative Discord client with voice support
    
    Made with C++ and GTK 3.
    
    Current features:
    - Not Electron
    - Voice support
    - Handles most types of chat messages including embeds, images, and
      replies
    - Completely styleable/customizable
    - Identifies to Discord as the web client unlike other clients so less
      likely to be falsely flagged as spam
    - Set status
    - Unread and mention indicators
    - Notifications (non-Windows)
    - Start new DMs and group DMs
    - View user profiles (notes, mutual servers, mutual friends)
    - Kick, ban, and unban members
    - Modify roles and modify members' roles
    - Manage invites
    - Manage emojis
    - View audit log
    - Emojis
    - Thread support
    - Animated avatars, server icons, emojis (can be turned off)
    
    PR:     288157
---
 net-im/Makefile                             |  1 +
 net-im/abaddon/Makefile                     | 42 +++++++++++++++
 net-im/abaddon/distinfo                     | 11 ++++
 net-im/abaddon/files/abaddon.desktop        |  9 ++++
 net-im/abaddon/files/abaddon.svg            | 28 ++++++++++
 net-im/abaddon/files/patch-src_platform.cpp | 11 ++++
 net-im/abaddon/pkg-descr                    | 22 ++++++++
 net-im/abaddon/pkg-plist                    | 79 +++++++++++++++++++++++++++++
 8 files changed, 203 insertions(+)

diff --git a/net-im/Makefile b/net-im/Makefile
index aac59d01e249..46c5c0ec3811 100644
--- a/net-im/Makefile
+++ b/net-im/Makefile
@@ -1,5 +1,6 @@
     COMMENT = Instant messaging
 
+    SUBDIR += abaddon
     SUBDIR += beebeep
     SUBDIR += coccinella
     SUBDIR += concord
diff --git a/net-im/abaddon/Makefile b/net-im/abaddon/Makefile
new file mode 100644
index 000000000000..fc19ce73021d
--- /dev/null
+++ b/net-im/abaddon/Makefile
@@ -0,0 +1,42 @@
+PORTNAME=	abaddon
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.2.2
+CATEGORIES=	net-im
+
+MAINTAINER=	seafork@disroot.org
+COMMENT=	Alternative Discord client with voice support
+WWW=		https://github.com/uowuo/abaddon
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	nlohmann-json>0:devel/nlohmann-json
+LIB_DEPENDS=	libcurl.so:ftp/curl \
+		libfmt.so:devel/libfmt \
+		libfontconfig.so:x11-fonts/fontconfig \
+		libfreetype.so:print/freetype2 \
+		libhandy-1.so:x11-toolkits/libhandy \
+		libopus.so:audio/opus \
+		librnnoise.so:audio/rnnoise \
+		libsecret-1.so:security/libsecret \
+		libsodium.so:security/libsodium \
+		libspdlog.so:devel/spdlog
+
+USES=		cmake compiler:c++17-lang gnome pkgconfig sqlite ssl
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	uowuo
+GH_TUPLE=	machinezone:IXWebSocket:bc765e7:ixwebsocket/subprojects/ixwebsocket \
+		hrantzsch:keychain:8846e78:keychain/subprojects/keychain \
+		mackron:miniaudio:350784a:miniaudio/subprojects/miniaudio \
+		nayuki:QR-Code-generator:22fac31:qrcodegenerator/subprojects/qrcodegen
+USE_GNOME=	gtkmm30
+
+post-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps
+	${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.svg \
+		${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps
+	${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.desktop \
+		${STAGEDIR}${DESKTOPDIR}
+
+.include <bsd.port.mk>
diff --git a/net-im/abaddon/distinfo b/net-im/abaddon/distinfo
new file mode 100644
index 000000000000..2c0a68e7cd5f
--- /dev/null
+++ b/net-im/abaddon/distinfo
@@ -0,0 +1,11 @@
+TIMESTAMP = 1752352749
+SHA256 (uowuo-abaddon-v0.2.2_GH0.tar.gz) = a858fca424468a304e3cfc30be9b9982f3fbf078a897cb19a36a0da77fa02d41
+SIZE (uowuo-abaddon-v0.2.2_GH0.tar.gz) = 14502623
+SHA256 (machinezone-IXWebSocket-bc765e7_GH0.tar.gz) = 1766879d2c20961c0b021f937481308e7423ace98fa547b6d3bcd4640c964ef6
+SIZE (machinezone-IXWebSocket-bc765e7_GH0.tar.gz) = 637308
+SHA256 (hrantzsch-keychain-8846e78_GH0.tar.gz) = 89b8045b5b7e21547c8a803dcda407149af9658c6a000c942de936866dc77cbb
+SIZE (hrantzsch-keychain-8846e78_GH0.tar.gz) = 138571
+SHA256 (mackron-miniaudio-350784a_GH0.tar.gz) = 95247705b45e9854d4af3b0e245c6d49442577388ecd3b598ed0c1aba1ad038e
+SIZE (mackron-miniaudio-350784a_GH0.tar.gz) = 4485213
+SHA256 (nayuki-QR-Code-generator-22fac31_GH0.tar.gz) = ef059ba5a9e193ffa6b2a594fc65b43da68c47113863be80c038839f72c57bad
+SIZE (nayuki-QR-Code-generator-22fac31_GH0.tar.gz) = 193349
diff --git a/net-im/abaddon/files/abaddon.desktop b/net-im/abaddon/files/abaddon.desktop
new file mode 100644
index 000000000000..e68ee2533eb5
--- /dev/null
+++ b/net-im/abaddon/files/abaddon.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=abaddon
+GenericName=alternative Discord client
+Exec=abaddon
+Icon=abaddon
+Terminal=false
+Type=Application
+Categories=Network;InstantMessaging;
+Keywords=discord;messenger;
diff --git a/net-im/abaddon/files/abaddon.svg b/net-im/abaddon/files/abaddon.svg
new file mode 100644
index 000000000000..c41317b4b43d
--- /dev/null
+++ b/net-im/abaddon/files/abaddon.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<svg
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg1"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <defs
+     id="defs1" />
+  <g
+     id="layer1">
+    <rect
+       style="fill:#1c7293;fill-opacity:1;stroke:#00ffff;stroke-width:0.938474"
+       id="rect1"
+       width="512"
+       height="512"
+       x="0"
+       y="0" />
+    <path
+       d="m 216.782,238.20075 -16.2905,54.30168 h 109.20671 l -16.2905,-54.30168 q -9.65364,-31.97765 -19.30727,-65.16201 -9.65363,-33.18436 -18.10056,-66.36872 h -2.41341 q -8.44692,33.18436 -18.10056,66.36872 -9.05027,33.18436 -18.70391,65.16201 z M 90.681437,453.59741 221.00547,58.401859 H 290.9943 L 421.31833,453.59741 H 357.36302 L 323.57531,340.16724 H 186.01105 l -33.78771,113.43017 z"
+       id="text3"
+       style="font-weight:500;font-size:603.352px;font-family:'Source Code Pro';-inkscape-font-specification:'Source Code Pro Medium';fill:#ffffff;stroke:#ffffff"
+       aria-label="A" />
+  </g>
+</svg>
diff --git a/net-im/abaddon/files/patch-src_platform.cpp b/net-im/abaddon/files/patch-src_platform.cpp
new file mode 100644
index 000000000000..8b320103f0d3
--- /dev/null
+++ b/net-im/abaddon/files/patch-src_platform.cpp
@@ -0,0 +1,11 @@
+--- src/platform.cpp.orig	2025-07-11 20:03:35 UTC
++++ src/platform.cpp
+@@ -93,7 +93,7 @@ std::string Platform::FindStateCacheFolder() {
+     return ".";
+ }
+ 
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__FreeBSD__)
+ std::string Platform::FindResourceFolder() {
+     static std::string found_path;
+     static bool found = false;
diff --git a/net-im/abaddon/pkg-descr b/net-im/abaddon/pkg-descr
new file mode 100644
index 000000000000..4b471af88c5c
--- /dev/null
+++ b/net-im/abaddon/pkg-descr
@@ -0,0 +1,22 @@
+Alternative Discord client with voice support made with C++ and GTK 3.
+
+Current features:
+- Not Electron
+- Voice support
+- Handles most types of chat messages including embeds, images, and replies
+- Completely styleable/customizable
+- Identifies to Discord as the web client unlike other clients so less likely
+  to be falsely flagged as spam
+- Set status
+- Unread and mention indicators
+- Notifications (non-Windows)
+- Start new DMs and group DMs
+- View user profiles (notes, mutual servers, mutual friends)
+- Kick, ban, and unban members
+- Modify roles and modify members' roles
+- Manage invites
+- Manage emojis
+- View audit log
+- Emojis
+- Thread support
+- Animated avatars, server icons, emojis (can be turned off)
diff --git a/net-im/abaddon/pkg-plist b/net-im/abaddon/pkg-plist
new file mode 100644
index 000000000000..15e1883b45f0
--- /dev/null
+++ b/net-im/abaddon/pkg-plist
@@ -0,0 +1,79 @@
+bin/abaddon
+%%DATADIR%%/css/main.css
+%%DATADIR%%/fonts/Twemoji-15.0.3.ttf
+%%DATADIR%%/fonts/conf.d/10-autohint.conf
+%%DATADIR%%/fonts/conf.d/10-hinting-full.conf
+%%DATADIR%%/fonts/conf.d/10-hinting-medium.conf
+%%DATADIR%%/fonts/conf.d/10-hinting-none.conf
+%%DATADIR%%/fonts/conf.d/10-hinting-slight.conf
+%%DATADIR%%/fonts/conf.d/10-no-sub-pixel.conf
+%%DATADIR%%/fonts/conf.d/10-scale-bitmap-fonts.conf
+%%DATADIR%%/fonts/conf.d/10-sub-pixel-bgr.conf
+%%DATADIR%%/fonts/conf.d/10-sub-pixel-rgb.conf
+%%DATADIR%%/fonts/conf.d/10-sub-pixel-vbgr.conf
+%%DATADIR%%/fonts/conf.d/10-sub-pixel-vrgb.conf
+%%DATADIR%%/fonts/conf.d/10-unhinted.conf
+%%DATADIR%%/fonts/conf.d/11-lcdfilter-default.conf
+%%DATADIR%%/fonts/conf.d/11-lcdfilter-legacy.conf
+%%DATADIR%%/fonts/conf.d/11-lcdfilter-light.conf
+%%DATADIR%%/fonts/conf.d/20-unhint-small-vera.conf
+%%DATADIR%%/fonts/conf.d/25-unhint-nonlatin.conf
+%%DATADIR%%/fonts/conf.d/30-metric-aliases.conf
+%%DATADIR%%/fonts/conf.d/30-urw-aliases.conf
+%%DATADIR%%/fonts/conf.d/40-nonlatin.conf
+%%DATADIR%%/fonts/conf.d/45-latin.conf
+%%DATADIR%%/fonts/conf.d/49-sansserif.conf
+%%DATADIR%%/fonts/conf.d/50-user.conf
+%%DATADIR%%/fonts/conf.d/51-local.conf
+%%DATADIR%%/fonts/conf.d/55-emoji-prepend.conf
+%%DATADIR%%/fonts/conf.d/60-latin.conf
+%%DATADIR%%/fonts/conf.d/65-fonts-persian.conf
+%%DATADIR%%/fonts/conf.d/65-khmer.conf
+%%DATADIR%%/fonts/conf.d/65-nonlatin.conf
+%%DATADIR%%/fonts/conf.d/69-unifont.conf
+%%DATADIR%%/fonts/conf.d/70-yes-bitmaps.conf
+%%DATADIR%%/fonts/conf.d/80-delicious.conf
+%%DATADIR%%/fonts/conf.d/90-synthetic.conf
+%%DATADIR%%/fonts/fonts.template.conf
+%%DATADIR%%/res/battlenet.png
+%%DATADIR%%/res/certifiedmoderator.png
+%%DATADIR%%/res/checkmark.png
+%%DATADIR%%/res/clock.png
+%%DATADIR%%/res/crown.png
+%%DATADIR%%/res/crunchyroll.png
+%%DATADIR%%/res/decamarks.png
+%%DATADIR%%/res/discordbughunter.png
+%%DATADIR%%/res/discordbughunter2.png
+%%DATADIR%%/res/discordstaff.png
+%%DATADIR%%/res/e1e96d89e192de1997f73730db26e94f.png
+%%DATADIR%%/res/earlysupporter.png
+%%DATADIR%%/res/earlyverifiedbotdeveloper.png
+%%DATADIR%%/res/ebay.png
+%%DATADIR%%/res/emojis.db
+%%DATADIR%%/res/facebook.png
+%%DATADIR%%/res/github.png
+%%DATADIR%%/res/guildsubscriber.png
+%%DATADIR%%/res/hypesquadbalance.png
+%%DATADIR%%/res/hypesquadbravery.png
+%%DATADIR%%/res/hypesquadbrilliance.png
+%%DATADIR%%/res/hypesquadevents.png
+%%DATADIR%%/res/instagram.png
+%%DATADIR%%/res/leagueoflegends.png
+%%DATADIR%%/res/partneredowner.png
+%%DATADIR%%/res/paypal.png
+%%DATADIR%%/res/playstation.png
+%%DATADIR%%/res/premium.png
+%%DATADIR%%/res/reddit.png
+%%DATADIR%%/res/riotgames.png
+%%DATADIR%%/res/skype.png
+%%DATADIR%%/res/sound/message.mp3
+%%DATADIR%%/res/spotify.png
+%%DATADIR%%/res/steam.png
+%%DATADIR%%/res/tiktok.png
+%%DATADIR%%/res/twitch.png
+%%DATADIR%%/res/twitter.png
+%%DATADIR%%/res/typing_indicator.gif
+%%DATADIR%%/res/xbox.png
+%%DATADIR%%/res/youtube.png
+share/applications/abaddon.desktop
+share/icons/hicolor/scalable/apps/abaddon.svg