aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-dialup/syncterm/Manifest1
-rw-r--r--net-dialup/syncterm/files/syncterm-1.1_disable-parallel-build.patch16
-rw-r--r--net-dialup/syncterm/files/syncterm-1.1_use-sched-yield-instead-of-pthread-yield.patch41
-rw-r--r--net-dialup/syncterm/metadata.xml18
-rw-r--r--net-dialup/syncterm/syncterm-1.1.ebuild51
-rw-r--r--net-dialup/syncterm/syncterm-9999.ebuild44
6 files changed, 171 insertions, 0 deletions
diff --git a/net-dialup/syncterm/Manifest b/net-dialup/syncterm/Manifest
new file mode 100644
index 000000000..02af807d1
--- /dev/null
+++ b/net-dialup/syncterm/Manifest
@@ -0,0 +1 @@
+DIST syncterm-1.1-src.tgz 18270212 BLAKE2B 91043a31374d73d29a447ab425007aad95ee7d22ded3ea4a518c1fa05958b5f20a4a83df9f575e9cb3962301cc31b55ab876e96addd617e045627d34e56fd922 SHA512 b5280e8f64ce12101f810dbee38a113e03450356a1fbc46a7c63a57eb8ca382e99ec1586b0a3527e336c9725efedae2ce80c5d4b372456eba1f090ec0f8c80eb
diff --git a/net-dialup/syncterm/files/syncterm-1.1_disable-parallel-build.patch b/net-dialup/syncterm/files/syncterm-1.1_disable-parallel-build.patch
new file mode 100644
index 000000000..2c77ba1c1
--- /dev/null
+++ b/net-dialup/syncterm/files/syncterm-1.1_disable-parallel-build.patch
@@ -0,0 +1,16 @@
+Disable parallel make jobs so that `st_crypt.h` can find `<cryptlib.h>`.
+As of writing, I have no idea how to fix this otherwise.
+
+From: Seth M. Price <sprice623@aol.com>
+
+--- a/src/syncterm/GNUmakefile
++++ b/src/syncterm/GNUmakefile
+@@ -96,6 +96,8 @@ ifndef bcc
+ endif
+ endif
+
++.NOTPARALLEL:
++
+ $(MTOBJODIR)$(DIRSEP)ciolib_res$(OFILE):
+ cd ${MTOBJODIR} && $(AR) -x ../${CIOLIB-MT} ciolib_res$(OFILE)
+
diff --git a/net-dialup/syncterm/files/syncterm-1.1_use-sched-yield-instead-of-pthread-yield.patch b/net-dialup/syncterm/files/syncterm-1.1_use-sched-yield-instead-of-pthread-yield.patch
new file mode 100644
index 000000000..630ba0ca5
--- /dev/null
+++ b/net-dialup/syncterm/files/syncterm-1.1_use-sched-yield-instead-of-pthread-yield.patch
@@ -0,0 +1,41 @@
+Use `sched_yield()` instead of nonstandard `pthread_yield()`.
+Fixes compiler error.
+
+From: Rob Swindell <rob@synchro.net>
+From: Seth M. Price <sprice623@aol.com>
+Bug: https://gitlab.synchro.net/main/sbbs/-/issues/299
+
+--- a/3rdp/build/GNUmakefile
++++ b/3rdp/build/GNUmakefile
+@@ -67,7 +67,7 @@ $(CRYPT_SRC): | $(3RDPSRCDIR)
+ $(CRYPT_IDIR): | $(3RDPODIR)
+ $(QUIET)$(IFNOTEXIST) mkdir $(CRYPT_IDIR)
+
+-$(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip $(3RDP_ROOT)$(DIRSEP)build/terminal-params.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw32-static.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ranlib.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-noasm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zz-country.patch $(3RDP_ROOT)$(DIRSEP)build/cl-algorithms.patch $(3RDP_ROOT)$(DIRSEP)build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)$(DIRSEP)build/cl-macosx-minver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-endian.patch $(3RDP_ROOT)$(DIRSEP)build/cl-cryptodev.patch $(3RDP_ROOT)$(DIRSEP)build/cl-posix-me-gently.patch $(3RDP_ROOT)$(DIRSEP)build/cl-tpm-linux.patch $(3RDP_ROOT)$(DIRSEP)build/cl-PAM-noprompts.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zlib.patch $(3RDP_ROOT)$(DIRSEP)build/Dynamic-linked-static-lib.patch $(3RDP_ROOT)$(DIRSEP)build/SSL-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bigger-maxattribute.patch $(3RDP_ROOT)$(DIRSEP)build/cl-vcxproj.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw-vcver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-build-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-gcc-non-const-time-val.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-odbc.patch $(3RDP_ROOT)$(DIRSEP)build/cl-noasm-defines.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bn-noasm64-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-RSA-suites.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ECC-RSA.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC-harder.patch $(3RDP_ROOT)$(DIRSEP)build/cl-more-RSA-ECC-fixes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-DH-key-init.patch $(3RDP_ROOT)$(DIRSEP)build/cl-clear-GCM-flag.patch $(3RDP_ROOT)$(DIRSEP)build/cl-use-ssh-ctr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-list-ctr-modes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-incCtr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssl-suite-blocksizes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-tpm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-via-aes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ssh-ecc-ephemeral.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-just-use-cc.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-learn-numbers.patch | $(CRYPT_SRC) $(CRYPT_IDIR)
++$(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip $(3RDP_ROOT)$(DIRSEP)build/terminal-params.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw32-static.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ranlib.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-noasm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zz-country.patch $(3RDP_ROOT)$(DIRSEP)build/cl-algorithms.patch $(3RDP_ROOT)$(DIRSEP)build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)$(DIRSEP)build/cl-macosx-minver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-endian.patch $(3RDP_ROOT)$(DIRSEP)build/cl-cryptodev.patch $(3RDP_ROOT)$(DIRSEP)build/cl-posix-me-gently.patch $(3RDP_ROOT)$(DIRSEP)build/cl-tpm-linux.patch $(3RDP_ROOT)$(DIRSEP)build/cl-PAM-noprompts.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zlib.patch $(3RDP_ROOT)$(DIRSEP)build/Dynamic-linked-static-lib.patch $(3RDP_ROOT)$(DIRSEP)build/SSL-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bigger-maxattribute.patch $(3RDP_ROOT)$(DIRSEP)build/cl-vcxproj.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw-vcver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-build-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-gcc-non-const-time-val.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-odbc.patch $(3RDP_ROOT)$(DIRSEP)build/cl-noasm-defines.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bn-noasm64-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-RSA-suites.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ECC-RSA.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC-harder.patch $(3RDP_ROOT)$(DIRSEP)build/cl-more-RSA-ECC-fixes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-DH-key-init.patch $(3RDP_ROOT)$(DIRSEP)build/cl-clear-GCM-flag.patch $(3RDP_ROOT)$(DIRSEP)build/cl-use-ssh-ctr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-list-ctr-modes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-incCtr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssl-suite-blocksizes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-tpm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-via-aes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ssh-ecc-ephemeral.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-just-use-cc.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-learn-numbers.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-linux-yield.patch | $(CRYPT_SRC) $(CRYPT_IDIR)
+ @echo Creating $@ ...
+ $(QUIET)-rm -rf $(CRYPT_SRC)/*
+ $(QUIET)unzip -oa $(3RDPDISTDIR)$(DIRSEP)cryptlib.zip -d $(CRYPT_SRC)
+@@ -112,6 +112,7 @@ $(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip $(3RDP_ROOT)$(DIRSEP)b
+ $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-fix-ssh-ecc-ephemeral.patch
+ $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-just-use-cc.patch
+ $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-learn-numbers.patch
++ $(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-linux-yield.patch
+ ifeq ($(CC),mingw32-gcc)
+ $(QUIET)cd $(CRYPT_SRC) && env - PATH="$(PATH)" CC="$(CC)" AR="$(AR)" RANLIB="$(RANLIB)" make directories
+ $(QUIET)cd $(CRYPT_SRC) && env - PATH="$(PATH)" CC="$(CC)" AR="$(AR)" RANLIB="$(RANLIB)" make toolscripts
+
+--- /dev/null
++++ b/3rdp/build/cl-linux-yield.patch
+@@ -0,0 +1,11 @@
++--- old/thread.h 2021-10-19 12:34:08.766649958 -0700
+++++ kernel/thread.h 2021-10-19 12:34:43.794072316 -0700
++@@ -3005,7 +3005,7 @@
++ #endif /* Slowaris 5.7 / 7.x or newer */
++ #elif defined( _AIX ) || defined( __Android__ ) || defined( __CYGWIN__ ) || \
++ ( defined( __hpux ) && ( OSVERSION >= 11 ) ) || \
++- defined( __NetBSD__ ) || defined( __QNX__ ) || defined( __UCLIBC__ )
+++ defined( __NetBSD__ ) || defined( __QNX__ ) || defined( __UCLIBC__ ) || defined(__linux__)
++ #define THREAD_YIELD() sched_yield()
++ #elif defined( __XMK__ )
++ /* The XMK underlying scheduling object is the process context, for which
diff --git a/net-dialup/syncterm/metadata.xml b/net-dialup/syncterm/metadata.xml
new file mode 100644
index 000000000..00b56688b
--- /dev/null
+++ b/net-dialup/syncterm/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Seth M. Price</name>
+ <email>sprice623@aol.com</email>
+ </maintainer>
+ <longdescription lang="en">
+ A cross-platform ANSI-BBS terminal designed to connect to
+ remote BBSs via telnet, rlogin, or SSH. Supports ANSI music
+ and the IBM charset when possible. Will run from a console,
+ under X11 using XLib, or using SDL.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://sourceforge.net/p/syncterm/tickets/</bugs-to>
+ <remote-id type="sourceforge">syncterm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-dialup/syncterm/syncterm-1.1.ebuild b/net-dialup/syncterm/syncterm-1.1.ebuild
new file mode 100644
index 000000000..d5bf9221f
--- /dev/null
+++ b/net-dialup/syncterm/syncterm-1.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop
+
+DESCRIPTION="BBS (bulletin board system) terminal"
+HOMEPAGE="https://syncterm.bbsdev.net/"
+SRC_URI="https://sourceforge.net/projects/syncterm/files/syncterm/syncterm-${PV}/syncterm-${PV}-src.tgz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="ncurses sdl X"
+
+DEPEND="ncurses? ( sys-libs/ncurses )
+ sdl? ( media-libs/libsdl2 )
+ X? ( x11-libs/libX11 )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ eapply "${FILESDIR}/${P}_use-sched-yield-instead-of-pthread-yield.patch"
+ eapply "${FILESDIR}/${P}_disable-parallel-build.patch"
+ eapply_user
+}
+
+src_compile() {
+ # FIXME: probably bad form
+ cd "${S}/src/syncterm"
+
+ # NOTE: build system automatically detects whether
+ # optional dependencies are there, strangely
+
+ emake
+ emake syncterm.man
+
+ # doman complains about wrong filename otherwise
+ cp syncterm.man syncterm.1
+}
+
+src_install() {
+ # Regular ‘emake install’ violates policy in multiple ways
+ dobin src/syncterm/gcc.linux.x64.exe.debug/syncterm
+ doicon src/syncterm/syncterm.png
+ domenu src/syncterm/syncterm.desktop
+ doman src/syncterm/syncterm.1
+
+ # Things not installed by ‘emake install’
+ dodoc src/syncterm/CHANGES
+}
diff --git a/net-dialup/syncterm/syncterm-9999.ebuild b/net-dialup/syncterm/syncterm-9999.ebuild
new file mode 100644
index 000000000..af31be2ac
--- /dev/null
+++ b/net-dialup/syncterm/syncterm-9999.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 desktop
+
+DESCRIPTION="BBS (bulletin board system) terminal"
+HOMEPAGE="https://syncterm.bbsdev.net/"
+EGIT_REPO_URI="https://gitlab.synchro.net/main/sbbs"
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="ncurses sdl X"
+
+DEPEND="ncurses? ( sys-libs/ncurses )
+ sdl? ( media-libs/libsdl2 )
+ X? ( x11-libs/libX11 )"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ # FIXME: probably bad form
+ cd "${S}/src/syncterm"
+
+ # NOTE: build system automatically detects whether
+ # optional dependencies are there, strangely
+
+ emake
+ emake syncterm.man
+
+ # doman complains about wrong filename otherwise
+ cp syncterm.man syncterm.1
+}
+
+src_install() {
+ # Regular ‘emake install’ violates policy in multiple ways
+ dobin src/syncterm/gcc.linux.x64.exe.debug/syncterm
+ doicon src/syncterm/syncterm.png
+ domenu src/syncterm/syncterm.desktop
+ doman src/syncterm/syncterm.1
+
+ # Things not installed by ‘emake install’
+ dodoc src/syncterm/CHANGES
+}