Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Sep 2024 21:42:47 GMT
From:      Vladimir Druzenko <vvd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 97d2f200cd1f - main - net-im/concord: New port: Discord library written in C
Message-ID:  <202409212142.48LLgl5L092668@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=97d2f200cd1f21f86c92d2644f563a86a89d5c65

commit 97d2f200cd1f21f86c92d2644f563a86a89d5c65
Author:     Souji Thenria <mail@souji-thenria.net>
AuthorDate: 2024-09-21 21:40:55 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2024-09-21 21:42:33 +0000

    net-im/concord: New port: Discord library written in C
    
    Concord is an asynchronous C99 Discord API library with minimal external
    dependencies, and a low-level translation of the Discord official
    documentation to C code.
    https://github.com/Cogmasters/concord
    
    PR:     279553
---
 net-im/Makefile                           |  1 +
 net-im/concord/Makefile                   | 52 +++++++++++++++++++
 net-im/concord/distinfo                   |  3 ++
 net-im/concord/files/Makefile.examples    | 48 ++++++++++++++++++
 net-im/concord/files/config.json.examples | 21 ++++++++
 net-im/concord/files/patch-src_Makefile   | 10 ++++
 net-im/concord/pkg-descr                  |  3 ++
 net-im/concord/pkg-plist                  | 84 +++++++++++++++++++++++++++++++
 8 files changed, 222 insertions(+)

diff --git a/net-im/Makefile b/net-im/Makefile
index 75794ba362eb..9a079739aafe 100644
--- a/net-im/Makefile
+++ b/net-im/Makefile
@@ -4,6 +4,7 @@
     SUBDIR += biboumi
     SUBDIR += chatterino2
     SUBDIR += coccinella
+    SUBDIR += concord
     SUBDIR += conduit
     SUBDIR += convey
     SUBDIR += coyim
diff --git a/net-im/concord/Makefile b/net-im/concord/Makefile
new file mode 100644
index 000000000000..628a4052dd5c
--- /dev/null
+++ b/net-im/concord/Makefile
@@ -0,0 +1,52 @@
+PORTNAME=	concord
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.3.0
+CATEGORIES=	net-im devel
+
+MAINTAINER=	mail@souji-thenria.net
+COMMENT=	Discord library written in C
+WWW=		https://github.com/Cogmasters/concord
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	curl>=7.56.1:ftp/curl
+RUN_DEPENDS=	curl>=7.56.1:ftp/curl
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	Cogmasters
+
+MAKE_ARGS=	DESTINCLUDE_DIR=${STAGEDIR}${PREFIX}/include/concord \
+		DESTLIBDIR=${STAGEDIR}${PREFIX}/lib
+
+OPTIONS_DEFINE=		DEBUG_HTTP DEBUG_WEBSOCKETS EXAMPLES SIGINTCATCH
+OPTIONS_DEFAULT=	EXAMPLES SHARED
+OPTIONS_SINGLE=		TARGETS
+OPTIONS_SINGLE_TARGETS=	DEBUG SHARED STATIC
+OPTIONS_SUB=		yes
+
+DEBUG_HTTP_DESC=	Verbose debugging for HTTP communication
+DEBUG_WEBSOCKETS_DESC=	Verbose debugging for WebSockets communication
+SHARED_DESC=		Build dynamically linked version
+SIGINTCATCH_DESC=	Shutdown gracefully when a SIGINT is received
+STATIC_DESC=		Build statically linked version
+
+DEBUG_VARS=			ALL_TARGET=debug
+DEBUG_HTTP_CFLAGS=		-DCCORD_DEBUG_HTTP
+DEBUG_WEBSOCKETS_CFLAGS=	-DCCORD_DEBUG_WEBSOCKETS
+SHARED_LIB_DEPENDS=		libcurl.so:ftp/curl
+SHARED_VARS=			ALL_TARGET=shared
+SIGINTCATCH_CFLAGS=		-DCCORD_SIGINTCATCH
+STATIC_VARS=			ALL_TARGET=static
+
+post-install-EXAMPLES-on:
+	${REINPLACE_CMD} -e 's|#include "\([^"]*\)\.h"|#include <concord/\1.h>|; \
+		s|\.\./config\.json|config.json|' ${WRKSRC}/examples/*.c
+	cd ${WRKSRC}/examples && ${COPYTREE_SHARE} "*.c" ${STAGEDIR}${EXAMPLESDIR}
+	${INSTALL_DATA} ${FILESDIR}/Makefile.examples ${STAGEDIR}${EXAMPLESDIR}/Makefile
+	${INSTALL_DATA} ${FILESDIR}/config.json.examples ${STAGEDIR}${EXAMPLESDIR}/config.json
+
+post-install-SHARED-on:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libdiscord.so
+
+.include <bsd.port.mk>
diff --git a/net-im/concord/distinfo b/net-im/concord/distinfo
new file mode 100644
index 000000000000..4a4b7a418c54
--- /dev/null
+++ b/net-im/concord/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1726788532
+SHA256 (Cogmasters-concord-v2.3.0_GH0.tar.gz) = 3e789e6c6f9f3b5c480aaf4fb337819043c53fcce8b50966e95d7b5daef38d4d
+SIZE (Cogmasters-concord-v2.3.0_GH0.tar.gz) = 775124
diff --git a/net-im/concord/files/Makefile.examples b/net-im/concord/files/Makefile.examples
new file mode 100644
index 000000000000..0866c1e421d0
--- /dev/null
+++ b/net-im/concord/files/Makefile.examples
@@ -0,0 +1,48 @@
+CC ?= cc
+
+STD_BOTS   = 8ball \
+             audit-log \
+             ban \
+             cache \
+             channel \
+             components \
+             copycat \
+             embed \
+             emoji \
+             fetch-messages \
+             guild-template \
+             guild \
+             invite \
+             manual-dm \
+             pin \
+             ping-pong \
+             presence \
+             reaction \
+             shell \
+             slash-commands \
+             slash-commands2 \
+             spam \
+             webhook \
+             timers
+VOICE_BOTS = voice-join
+
+BOTS += $(STD_BOTS)
+
+CFLAGS  += -O0 -g -pthread -Wall -I/usr/local/include
+LDFLAGS  = -L/usr/local/lib
+LDLIBS   = -ldiscord -lcurl
+
+all: $(BOTS)
+
+voice:
+	@ CFLAGS=-DCCORD_VOICE BOTS=$(VOICE_BOTS) $(MAKE)
+
+echo:
+	@ echo -e 'CC: $(CC)\n'
+	@ echo -e 'STD_BOTS: $(STD_BOTS)\n'
+	@ echo -e 'VOICE_BOTS: $(VOICE_BOTS)\n'
+
+clean:
+	@ rm -f $(STD_BOTS) $(VOICE_BOTS)
+
+.PHONY: all echo clean
diff --git a/net-im/concord/files/config.json.examples b/net-im/concord/files/config.json.examples
new file mode 100644
index 000000000000..04cbe0bbe0f2
--- /dev/null
+++ b/net-im/concord/files/config.json.examples
@@ -0,0 +1,21 @@
+{
+  "logging": {
+    "level": "trace",
+    "filename": "bot.log",
+    "quiet": false,
+    "overwrite": true,
+    "use_color": true,
+    "http": {
+      "enable": true,
+      "filename": "http.log"
+    },
+    "disable_modules": ["WEBSOCKETS", "USER_AGENT"]
+  },
+  "discord": {
+    "token": "YOUR-BOT-TOKEN",
+    "default_prefix": {
+      "enable": false,
+      "prefix": "YOUR-COMMANDS-PREFIX"
+    }
+  }
+}
diff --git a/net-im/concord/files/patch-src_Makefile b/net-im/concord/files/patch-src_Makefile
new file mode 100644
index 000000000000..1b36f1549d7c
--- /dev/null
+++ b/net-im/concord/files/patch-src_Makefile
@@ -0,0 +1,10 @@
+--- src/Makefile.orig	2024-09-20 12:42:26 UTC
++++ src/Makefile
+@@ -82,7 +82,7 @@ $(SOLIB): deps
+ $(ARLIB): deps
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(GENCODECS_OBJ) $(CORE_OBJS)
+ $(SOLIB): deps
+-	$(CC) -shared -lcurl -o $@ $(OBJS) $(GENCODECS_OBJ) $(CORE_OBJS)
++	$(CC) -shared -L$(PREFIX)/lib -lcurl -o $@ $(OBJS) $(GENCODECS_OBJ) $(CORE_OBJS)
+ $(DYLIB): deps
+	$(CC) -dynamiclib $(DYFLAGS) -o $@ $(OBJS) $(GENCODECS_OBJ) $(CORE_OBJS)
diff --git a/net-im/concord/pkg-descr b/net-im/concord/pkg-descr
new file mode 100644
index 000000000000..f9ff3432b28b
--- /dev/null
+++ b/net-im/concord/pkg-descr
@@ -0,0 +1,3 @@
+Concord is an asynchronous C99 Discord API library with minimal external
+dependencies, and a low-level translation of the Discord official documentation
+to C code.
diff --git a/net-im/concord/pkg-plist b/net-im/concord/pkg-plist
new file mode 100644
index 000000000000..b7d737740297
--- /dev/null
+++ b/net-im/concord/pkg-plist
@@ -0,0 +1,84 @@
+include/concord/all.PRE.h
+include/concord/anomap.h
+include/concord/application_command.h
+include/concord/attributes.h
+include/concord/audit_log.h
+include/concord/auto_moderation.h
+include/concord/carray.h
+include/concord/channel.h
+include/concord/chash.h
+include/concord/clock.h
+include/concord/cog-utils.h
+include/concord/concord-once.h
+include/concord/curl-websocket.h
+include/concord/discord-cache.h
+include/concord/discord-events.h
+include/concord/discord-internal.h
+include/concord/discord-request.h
+include/concord/discord-response.h
+include/concord/discord-voice.h
+include/concord/discord-worker.h
+include/concord/discord.h
+include/concord/discord_codecs.PRE.h
+include/concord/discord_codecs.h
+include/concord/emoji.h
+include/concord/error.h
+include/concord/gateway.h
+include/concord/gencodecs-process.PRE.h
+include/concord/gencodecs.h
+include/concord/guild.h
+include/concord/guild_scheduled_event.h
+include/concord/guild_template.h
+include/concord/interaction.h
+include/concord/invite.h
+include/concord/io_poller.h
+include/concord/jsmn-find.h
+include/concord/jsmn.h
+include/concord/json-build.h
+include/concord/log.h
+include/concord/logconf.h
+include/concord/oauth2.h
+include/concord/osname.h
+include/concord/priority_queue.h
+include/concord/queriec.h
+include/concord/queue.h
+include/concord/sha1.h
+include/concord/stage_instance.h
+include/concord/sticker.h
+include/concord/threadpool.h
+include/concord/types.h
+include/concord/user-agent.h
+include/concord/user.h
+include/concord/voice.h
+include/concord/webhook.h
+include/concord/websockets.h
+%%DEBUG%%lib/libdiscord.a
+%%STATIC%%lib/libdiscord.a
+%%SHARED%%lib/libdiscord.so
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/8ball.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/Makefile
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/audit-log.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ban.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cache.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/channel.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/components.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/config.json
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copycat.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/embed.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/emoji.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fetch-messages.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/guild-template.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/guild.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/invite.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manual-dm.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pin.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ping-pong.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/presence.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/reaction.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shell.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/slash-commands.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/slash-commands2.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spam.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timers.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/voice-join.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/webhook.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202409212142.48LLgl5L092668>