diff options
-rw-r--r-- | net-dialup/syncterm/Manifest | 1 | ||||
-rw-r--r-- | net-dialup/syncterm/files/syncterm-1.1_disable-parallel-build.patch | 16 | ||||
-rw-r--r-- | net-dialup/syncterm/files/syncterm-1.1_use-sched-yield-instead-of-pthread-yield.patch | 41 | ||||
-rw-r--r-- | net-dialup/syncterm/metadata.xml | 18 | ||||
-rw-r--r-- | net-dialup/syncterm/syncterm-1.1.ebuild | 51 | ||||
-rw-r--r-- | net-dialup/syncterm/syncterm-9999.ebuild | 44 |
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 +} |