summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author B. Watson <urchlay@slackware.uk>2023-07-29 14:36:09 +0900
committer Willy Sudiarto Raharjo <willysr@slackbuilds.org>2023-08-05 10:08:44 +0700
commit53be3f516a22b0f51e4261449bd7cdaeb8932e11 (patch)
treeddcdc7c33446e9876def02cf17f75212343268fe
parent9c5d8ce17d4c4651531a687af48c147a21c54c03 (diff)
downloadslackbuilds-53be3f516a22b0f51e4261449bd7cdaeb8932e11.tar.gz
slackbuilds-53be3f516a22b0f51e4261449bd7cdaeb8932e11.tar.xz
network/syncterm: Added (bbs terminal).
Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--network/syncterm/README22
-rw-r--r--network/syncterm/doinst.sh9
-rw-r--r--network/syncterm/extract-icns.sh55
-rw-r--r--network/syncterm/icons/128.pngbin0 -> 18515 bytes
-rw-r--r--network/syncterm/icons/16.pngbin0 -> 686 bytes
-rw-r--r--network/syncterm/icons/32.pngbin0 -> 1882 bytes
-rw-r--r--network/syncterm/icons/48.pngbin0 -> 3482 bytes
-rw-r--r--network/syncterm/manpage.diff55
-rw-r--r--network/syncterm/slack-desc19
-rw-r--r--network/syncterm/syncterm.SlackBuild150
-rw-r--r--network/syncterm/syncterm.info10
11 files changed, 320 insertions, 0 deletions
diff --git a/network/syncterm/README b/network/syncterm/README
new file mode 100644
index 0000000000..1a86f0e9f7
--- /dev/null
+++ b/network/syncterm/README
@@ -0,0 +1,22 @@
+syncterm (BBS-oriented terminal emulator)
+
+syncterm is a terminal emulator that connects to a host via
+dialup modem, raw TCP, telnet, ssh, or rsync. Its user interface is
+similar to ProComm. It's intended for use with BBSes (bulletin board
+systems), and includes support for nonstandard ASCII variants such as
+Atari 8-bit (ATASCII), Commodore 8-bit (PETSCII), and "IBM ANSI" as
+used by MS-DOS.
+
+syncterm can also be used as a local terminal (e.g. like xterm),
+by creating a dialing list entry with address "shell:", command
+"/bin/bash -login" or similar.
+
+Some of the documentation is found only on the website:
+http://syncterm.bbsdev.net/
+
+More information on BBSes can be found here, along with an up-to-date
+list of telnet BBSes:
+https://www.telnetbbsguide.com/
+
+Atari users can download a sycterm.lst full of Atari BBSes here:
+http://sfhqbbs.org/ataribbslist.php
diff --git a/network/syncterm/doinst.sh b/network/syncterm/doinst.sh
new file mode 100644
index 0000000000..65c7e2eeb9
--- /dev/null
+++ b/network/syncterm/doinst.sh
@@ -0,0 +1,9 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
diff --git a/network/syncterm/extract-icns.sh b/network/syncterm/extract-icns.sh
new file mode 100644
index 0000000000..07c3f41873
--- /dev/null
+++ b/network/syncterm/extract-icns.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+# 20230728 bkw: Extract PNG icons from a mac .icns file, for use
+# with a SlackBuilds.org script.
+
+# They get written to a directory called icons/, with filenames like
+# 32.png, 64.png, etc (the pixel size). After extracting them, you
+# should 'git add icons/*' if you're using git (otherwise, include
+# icons/ in your submission tarball).
+
+# The SlackBuild should include code to install them; see
+# syncterm.SlackBuild for an example. Don't forget to include a
+# doinst.sh.
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# Feel free to use this as part of your own SlackBuild.
+
+# Note that this script shouldn't be included in the package!
+
+die() {
+ echo "$( basename $0 ): $@" 1>&2
+ exit 1
+}
+
+if [ "$1" = "" -o "$2" != "" ]; then
+ die "one argument required, path to *.icns file."
+fi
+
+if ! which icns2png &>/dev/null; then
+ die "icns2png not found in \$PATH. Install libicns."
+fi
+
+if [ -e icons ]; then
+ die "icons/ already exists, not overwriting."
+fi
+
+mkdir -p icons
+cd icons || die "can't create or cd to icons/ dir."
+
+icns2png -x -d 32 "$1" || die "can't extract any icons."
+count=0
+for png in *x32.png; do
+ [ -e $png ] || break
+ size="$( echo $png | cut -d_ -f2 | cut -dx -f1 )"
+ mv $png $size.png
+ : $(( count++ ))
+done
+
+if [ "$count" = "0" ]; then
+ rm -rf ../icons
+ die "failed to extract any icons."
+fi
+
+echo "extracted $count icons:"
+ls
diff --git a/network/syncterm/icons/128.png b/network/syncterm/icons/128.png
new file mode 100644
index 0000000000..eacbee1f6f
--- /dev/null
+++ b/network/syncterm/icons/128.png
Binary files differ
diff --git a/network/syncterm/icons/16.png b/network/syncterm/icons/16.png
new file mode 100644
index 0000000000..0be1847afa
--- /dev/null
+++ b/network/syncterm/icons/16.png
Binary files differ
diff --git a/network/syncterm/icons/32.png b/network/syncterm/icons/32.png
new file mode 100644
index 0000000000..887b027dfd
--- /dev/null
+++ b/network/syncterm/icons/32.png
Binary files differ
diff --git a/network/syncterm/icons/48.png b/network/syncterm/icons/48.png
new file mode 100644
index 0000000000..df9d91f83c
--- /dev/null
+++ b/network/syncterm/icons/48.png
Binary files differ
diff --git a/network/syncterm/manpage.diff b/network/syncterm/manpage.diff
new file mode 100644
index 0000000000..7bffad39db
--- /dev/null
+++ b/network/syncterm/manpage.diff
@@ -0,0 +1,55 @@
+diff -Naur syncterm-1.1/src/syncterm/syncterm.man.in syncterm-1.1.patched/src/syncterm/syncterm.man.in
+--- syncterm-1.1/src/syncterm/syncterm.man.in 2020-06-26 19:40:21.000000000 -0400
++++ syncterm-1.1.patched/src/syncterm/syncterm.man.in 2023-07-27 16:48:25.575523339 -0400
+@@ -1,11 +1,14 @@
+-.TH SYNCTERM 1 "27 May 2007"
++.TH SYNCTERM 1 "27 Jul 2023"
+ .SH NAME
+ syncterm \- BBS terminal program
+ .SH SYNOPSIS
+ \fBsyncterm\fP [\-e\fIdly\fP] [\-i\fIifc\fP] [\-l\fIlns\fP] [\-t|\-r|\-h] [\-s] [\fIURL\fP]
+ .SH DESCRIPTION
+ \fBSyncTERM\fP is a terminal program designed specifically for connecting to
+-a Bulletin Board System (\fBBBS\fP)
++a Bulletin Board System (\fBBBS\fP).
++.LP
++[\fIURL\fP] may be an actual URL, a hostname, or the name of
++an entry from the dialing list.
+ .SS Options
+ .IP \fB\-e\fIdly\fR
+ Specify the "escape delay" in milliseconds for curses(3) mode. Since curses
+@@ -96,7 +99,7 @@
+ Specifies the default scheme for \fIURL\fP to be telnet://
+ .IP \fB\-r\fP
+ Specifies the default scheme for \fIURL\fP to be rlogin://
+-.IP \fB\-r\fP
++.IP \fB\-h\fP
+ Specifies the default scheme for \fIURL\fP to be ssh://
+ .IP \fB\-4\fP
+ Only resolve IPv4 addresses
+@@ -112,7 +115,7 @@
+ run-time linking is employed using dlopen(). Using this, it is possible to
+ build a version which will use SDL, and X11 if they are present, but
+ not fail to run if they are not.
+-.SH TEXT MODE CAVAETS
++.SH TEXT MODE CAVEATS
+ When running in one of the text modes such as curses or ANSI, many of the
+ control functions are modified since there is no reliable way to use extra
+ modifier keys. As a result, CTRL-S and CTRL-Q can not be sent to the remote
+@@ -130,12 +133,12 @@
+ a traditional screen mode. As such, filler will be added around the terminal
+ screen. For some display sizes, unpredictable results may occur.
+ .SH FILES
+-.IP \fC%%DESTDIR%%%%PREFIX%%/etc/syncterm.lst\fR
+-The system wide dialing directory.
++.IP /etc/syncterm.lst\fR
++The system wide dialing directory [note: doesn't seem to be used in SyncTERM 1.1].
+ .IP \fC~/.syncterm/syncterm.lst\fR
+-The users dialing directory
++The user's dialing directory
+ .IP \fC~/.syncterm/syncterm.ini\fR
+-The users SyncTERM configuration file
++The user's SyncTERM configuration file
+ .IP \fClibSDL.so\fR
+ When this file exists in the library path, SyncTERM will support the use of SDL
+ for input and output. This file is part of the Simple Directmedia Layer
diff --git a/network/syncterm/slack-desc b/network/syncterm/slack-desc
new file mode 100644
index 0000000000..d0822aa581
--- /dev/null
+++ b/network/syncterm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+syncterm: syncterm (BBS-oriented terminal emulator)
+syncterm:
+syncterm: syncterm is a terminal emulator that connects to a host via
+syncterm: dialup modem, raw TCP, telnet, ssh, or rsync. Its user interface is
+syncterm: similar to ProComm. It's intended for use with BBSes (bulletin board
+syncterm: systems), and includes support for nonstandard ASCII variants such as
+syncterm: Atari 8-bit (ATASCII), Commodore 8-bit (PETSCII), and "IBM ANSI" as
+syncterm: used by MS-DOS.
+syncterm:
+syncterm:
+syncterm:
diff --git a/network/syncterm/syncterm.SlackBuild b/network/syncterm/syncterm.SlackBuild
new file mode 100644
index 0000000000..39921705c4
--- /dev/null
+++ b/network/syncterm/syncterm.SlackBuild
@@ -0,0 +1,150 @@
+#!/bin/bash
+
+# Slackware build script for syncterm
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# Issues:
+# 1. Figure out why shell: doesn't work on the command line (though
+# it does, with the ^D "quick connect" option, or by adding it to
+# the dialing list).
+# 2. How do we use /etc/syncterm.lst? strace shows that syncterm reads it,
+# but entries there don't show up in the dialing list (not even if there's
+# no user list). If I could get the system list to work, I'd include an
+# entry there for a local shell (to work around issue #1). But probably
+# nobody much cares about using this as an xterm or konsole replacement...
+# Neither of these issues are going to prevent me from submitting this.
+
+# Note: phigan on #atari tells me they're "almost ready" to release 1.2,
+# so this may get updated soon.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=syncterm
+VERSION=${VERSION:-1.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION-src.tgz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
+
+# Man page: Fix path to dialing list and a couple typos. The path
+# baked into the binary really is /etc/syncterm.lst (not /usr/etc)...
+# although I don't see a way to make syncterm actually use the
+# system-wide dialing list.
+patch -p1 < $CWD/manpage.diff
+
+# This is a big hassle: -O3 is hardcoded in a makefile... which is
+# inside a zip file. To force our flags, we have to extract the zip
+# file, mod the makefile, then re-zip it. Using -0 with zip means
+# "store" (for speed).
+cd 3rdp/dist
+unzip -oa cryptlib.zip
+rm -f cryptlib.zip
+sed -i "s,-O3,$SLKCFLAGS," makefile
+zip -0r cryptlib.zip *
+cd -
+
+# Rest of the flags:
+sed -i "s,-O2,$SLKCFLAGS," src/build/Common.gmake
+sed -i "s,-O3,\"$SLKCFLAGS\"," 3rdp/build/GNUmakefile
+
+# Top-level source directory:
+cd src/$PRGNAM
+
+# Lots of make options here:
+# - RELEASE=1 means binary already stripped, man page already gzipped.
+# - WITHOUT_PORTAUDIO=1 to avoid a hidden dependency on portaudio. I
+# see no advantage to using portaudio anyway (SDL audio works fine).
+# - INSTALL_DATA: install man page with usual Slackware permissions.
+# - SRC_ROOT has to be set because the makefile is dumb...
+# - Use -j1 as the compile always fails if -jN where N>1.
+make -j1 \
+ PREFIX=/usr \
+ MANPREFIX=/usr \
+ SYSTEM_LIST_DIR=/etc \
+ SRC_ROOT="$( realpath .. )" \
+ USE_SDL=1 \
+ USE_SDL_AUDIO=1 \
+ WITHOUT_PORTAUDIO=1 \
+ VERBOSE=1 \
+ RELEASE=1 \
+ DESTDIR=$PKG \
+ INSTALL_DATA="install -m 0644" \
+ all install
+
+# Compile the terminfo entries. Have to run the binary we just built,
+# let's not do it as root.
+su nobody -s /bin/sh -c "$PKG/usr/bin/$PRGNAM -T" | \
+ tic -o $PKG/usr/share/terminfo -
+
+# The 64x64 icon was installed by 'make install', above.
+# Other icons extracted from the Mac .icns file:
+# sh extract-icns.sh /tmp/SBo/syncterm-1.1/src/syncterm/SyncTERM.icns
+# If you're copying this code for use in your own SlackBuild, please
+# don't change the "cat" to "cp -a", below: files copied from $CWD
+# might be owned by anybody (not necessarily root), and have wrong
+# permissions; using "cat >" takes care of both.
+# Also, please don't rewrite this to call icns2png in your script.
+# Otherwise you'd have to add libicns to REQUIRES.
+for png in $CWD/icons/*.png; do
+ px="$( basename $png | cut -d. -f1 )"
+ size=${px}x${px}
+ dir=$PKG/usr/share/icons/hicolor/$size/apps
+ mkdir -p $dir
+ cat $png > $dir/$PRGNAM.png
+done
+
+mkdir -p $PKG/usr/share/pixmaps
+ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
+
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC
+cp -a Install-Mozilla.txt CHANGES LICENCE gpl.txt $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/network/syncterm/syncterm.info b/network/syncterm/syncterm.info
new file mode 100644
index 0000000000..188f5794d3
--- /dev/null
+++ b/network/syncterm/syncterm.info
@@ -0,0 +1,10 @@
+PRGNAM="syncterm"
+VERSION="1.1"
+HOMEPAGE="http://syncterm.bbsdev.net/"
+DOWNLOAD="https://downloads.sourceforge.net/project/syncterm/syncterm/syncterm-1.1/syncterm-1.1-src.tgz"
+MD5SUM="f528a1fdbe87a69a52582582d99e4032"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"