commit:     01e7731bcf088f091c7eba661e2819108791e0e7
Author:     Seth M. Price <sprice623 <AT> aol <DOT> com>
AuthorDate: Mon May 27 01:07:13 2024 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Mon May 27 18:04:58 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=01e7731b

net-dialup/syncterm: new package, add 1.1, 9999

Signed-off-by: Seth M. Price <sprice623 <AT> aol.com>

 net-dialup/syncterm/Manifest                       |  1 +
 .../syncterm-1.1_disable-parallel-build.patch      | 16 +++++++
 ..._use-sched-yield-instead-of-pthread-yield.patch | 41 +++++++++++++++++
 net-dialup/syncterm/metadata.xml                   | 18 ++++++++
 net-dialup/syncterm/syncterm-1.1.ebuild            | 51 ++++++++++++++++++++++
 net-dialup/syncterm/syncterm-9999.ebuild           | 44 +++++++++++++++++++
 6 files changed, 171 insertions(+)

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 <[email protected]>
+
+--- 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 <[email protected]>
+From: Seth M. Price <[email protected]>
+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 $(3RD
 P_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 $(3RD
 P_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>[email protected]</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
+}

Reply via email to