From 3ee70de3d9359485b37785fe28a31b7c87a0f8da Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Mon, 6 Jun 2022 16:37:41 -0700 Subject: Rebuild with pthread patches. --- PKGBUILD | 46 +++++++++++++++++++++++++++++++--------------- cl-linux-yield.patch | 12 ++++++++++++ cl-makefile.patch | 19 +++++++++++++++++++ st_crypt.patch | 11 +++++++++++ 4 files changed, 73 insertions(+), 15 deletions(-) create mode 100644 cl-linux-yield.patch create mode 100644 cl-makefile.patch create mode 100644 st_crypt.patch diff --git a/PKGBUILD b/PKGBUILD index 96af2bf..c6b8a24 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,38 +1,54 @@ # Maintainer: jc_gargma -# Maintainer (AUR): chrisl echo archlinux@c2h0r1i2s4t5o6p7h8e9r-l3u4n1a.com|sed 's/[0-9]//g' +# Maintainer (AUR): Michael Wawrzyniak +# Contributor (AUR): chrisl echo archlinux@c2h0r1i2s4t5o6p7h8e9r-l3u4n1a.com|sed 's/[0-9]//g' # Contributor (AUR): Mattias Andrée <`base64 -d`(bWFhbmRyZWUK)@member.fsf.org> # # I maintain this because: -# AUR version uses http -# AUR version uses epoch -# AUR version has excessive cd commands # AUR version lacks additional optimization and hardening flags pkgname=syncterm pkgver=1.1 -pkgrel=3.2 -pkgdesc="A BBS terminal program, Supports ANSI music and the IBM charset when possible." +pkgrel=4 +pkgdesc="A BBS terminal program, supporting ANSI music and IBM charset." url="http://syncterm.bbsdev.net" license=('GPL') -depends=('ncurses' 'sdl') -options=(!buildflags) -makedepends=(unzip) +depends=('ncurses') +makedepends=('unzip') +optdepends=('hicolor-icon-theme: for GUI icon support' + 'sdl2: for SDL GUI support' + 'libx11: for X11 GUI support') arch=('i686' 'x86_64') -source=("https://phoenixnap.dl.sourceforge.net/project/syncterm/syncterm/$pkgname-${pkgver}$/$pkgname-${pkgver}-src.tgz") -b2sums=('91043a31374d73d29a447ab425007aad95ee7d22ded3ea4a518c1fa05958b5f20a4a83df9f575e9cb3962301cc31b55ab876e96addd617e045627d34e56fd922') +source=("https://downloads.sourceforge.net/project/syncterm/syncterm/$pkgname-$pkgver/$pkgname-$pkgver-src.tgz" + "cl-linux-yield.patch" + "cl-makefile.patch" + "st_crypt.patch") +md5sums=('f528a1fdbe87a69a52582582d99e4032' + 'c67ca676bddbbbbefa3fe20cd00ab7e7' + '3471ec7748fc0a9d8be12424be7a8ff5' + '69f59c1a5f71e44beb6e68644d497418') +b2sums=('91043a31374d73d29a447ab425007aad95ee7d22ded3ea4a518c1fa05958b5f20a4a83df9f575e9cb3962301cc31b55ab876e96addd617e045627d34e56fd922' + '015e96bf2ba557cc2dba0b6c0ddc88af77a397ccd6757a56c58a7a6c2474d7cee7918fac243b4b3e0afb1bdc0521b643cbba6ad4d165545c04da6b03d8a93a31' + 'f8823c06267f63d649a5b3065358487f508aa605e02b4f0175f35c2f4932ab5efd3496b5756a6c4739a60a997e8620df68b2d216a2ea2c33bbb412abff41b587' + 'c816a89d35b498d9ee50286fc36371e6866289bd7c6ae4ce31e4dc9d54d4fa90a6cbc2972ea520f027111e8f8037ff3188d61ef65350208a4475afe920f55f87') +prepare() { + cp "$srcdir/cl-linux-yield.patch" "$pkgname-$pkgver/3rdp/build/cl-linux-yield.patch" + patch -Np1 -d "$pkgname-$pkgver" -i "${srcdir}/cl-makefile.patch" + patch -Np1 -d "$pkgname-$pkgver" -i "${srcdir}/st_crypt.patch" +} build() { - cd "$srcdir/$pkgname-${pkgver}/src/syncterm/" + cd "$srcdir/$pkgname-${pkgver}/src/syncterm" export CFLAGS="$CFLAGS -O3 -fstack-protector-all -flto=auto -fPIE" export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -flto=auto -fPIE" export LDFLAGS="$LDFLAGS,-pie" - make MANPREFIX="$pkgdir/usr/share" SRC_ROOT="$(realpath ..)" PREFIX="/usr" RELEASE=1 || true + make PREFIX="/usr" MANPREFIX="/usr/share" RELEASE=1 } package() { - cd "$srcdir/$pkgname-${pkgver}/src/syncterm/" - make install MANPREFIX="$pkgdir/usr/share" SRC_ROOT="$(realpath ..)" PREFIX="$pkgdir/usr" RELEASE=1 + cd "$srcdir/$pkgname-${pkgver}/src/syncterm" + + make PREFIX="$pkgdir/usr" MANPREFIX="$pkgdir/usr/share" RELEASE=1 install } diff --git a/cl-linux-yield.patch b/cl-linux-yield.patch new file mode 100644 index 0000000..5ad87ac --- /dev/null +++ b/cl-linux-yield.patch @@ -0,0 +1,12 @@ +--- kernel/thread.orig 2022-06-01 11:44:29.563747178 -0400 ++++ kernel/thread.h 2022-06-01 11:46:19.093752131 -0400 +@@ -3005,7 +3005,8 @@ + #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/cl-makefile.patch b/cl-makefile.patch new file mode 100644 index 0000000..1194f25 --- /dev/null +++ b/cl-makefile.patch @@ -0,0 +1,19 @@ +--- orig/3rdp/build/GNUmakefile 2022-06-01 11:53:12.460437472 -0400 ++++ new/3rdp/build/GNUmakefile 2022-06-01 11:54:38.810441375 -0400 +@@ -67,7 +67,7 @@ + $(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 @@ + $(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 diff --git a/st_crypt.patch b/st_crypt.patch new file mode 100644 index 0000000..1e366ca --- /dev/null +++ b/st_crypt.patch @@ -0,0 +1,11 @@ +--- orig/src/syncterm/st_crypt.h 2022-06-02 13:05:13.210790443 -0400 ++++ new/src/syncterm/st_crypt.h 2022-06-02 13:07:18.857457650 -0400 +@@ -4,7 +4,7 @@ + #define _ST_CRYPT_H_ + + #ifndef WITHOUT_CRYPTLIB +-#include ++#include "../../3rdp/src/cl/cryptlib.h" + #if CRYPTLIB_VERSION < 3400 + #if CRYPTLIB_VERSION < 340 || CRYPTLIB_VERSION > 999 + #define CRYPT_ATTRIBUTE_ERRORMESSAGE CRYPT_ATTRIBUTE_INT_ERRORMESSAGE -- cgit v1.2.1