diff options
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 |
commit | 53be3f516a22b0f51e4261449bd7cdaeb8932e11 (patch) | |
tree | ddcdc7c33446e9876def02cf17f75212343268fe /network | |
parent | 9c5d8ce17d4c4651531a687af48c147a21c54c03 (diff) | |
download | 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>
Diffstat (limited to 'network')
-rw-r--r-- | network/syncterm/README | 22 | ||||
-rw-r--r-- | network/syncterm/doinst.sh | 9 | ||||
-rw-r--r-- | network/syncterm/extract-icns.sh | 55 | ||||
-rw-r--r-- | network/syncterm/icons/128.png | bin | 0 -> 18515 bytes | |||
-rw-r--r-- | network/syncterm/icons/16.png | bin | 0 -> 686 bytes | |||
-rw-r--r-- | network/syncterm/icons/32.png | bin | 0 -> 1882 bytes | |||
-rw-r--r-- | network/syncterm/icons/48.png | bin | 0 -> 3482 bytes | |||
-rw-r--r-- | network/syncterm/manpage.diff | 55 | ||||
-rw-r--r-- | network/syncterm/slack-desc | 19 | ||||
-rw-r--r-- | network/syncterm/syncterm.SlackBuild | 150 | ||||
-rw-r--r-- | network/syncterm/syncterm.info | 10 |
11 files changed, 320 insertions, 0 deletions
diff --git a/network/syncterm/README b/network/syncterm/README new file mode 100644 index 000000000000..1a86f0e9f734 --- /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 000000000000..65c7e2eeb9aa --- /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 000000000000..07c3f41873cb --- /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 Binary files differnew file mode 100644 index 000000000000..eacbee1f6f37 --- /dev/null +++ b/network/syncterm/icons/128.png diff --git a/network/syncterm/icons/16.png b/network/syncterm/icons/16.png Binary files differnew file mode 100644 index 000000000000..0be1847afabe --- /dev/null +++ b/network/syncterm/icons/16.png diff --git a/network/syncterm/icons/32.png b/network/syncterm/icons/32.png Binary files differnew file mode 100644 index 000000000000..887b027dfd4e --- /dev/null +++ b/network/syncterm/icons/32.png diff --git a/network/syncterm/icons/48.png b/network/syncterm/icons/48.png Binary files differnew file mode 100644 index 000000000000..df9d91f83c10 --- /dev/null +++ b/network/syncterm/icons/48.png diff --git a/network/syncterm/manpage.diff b/network/syncterm/manpage.diff new file mode 100644 index 000000000000..7bffad39db8d --- /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 000000000000..d0822aa581ec --- /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 000000000000..39921705c48c --- /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 000000000000..188f5794d384 --- /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" |