network/qodem: Added (terminal emulator).

Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2023-07-30 15:17:55 +09:00 committed by Willy Sudiarto Raharjo
parent ca3340edf0
commit 12a2b7302f
No known key found for this signature in database
GPG key ID: 3F617144D7238786
9 changed files with 426 additions and 0 deletions

20
network/qodem/README Normal file
View file

@ -0,0 +1,20 @@
qodem (BBS-oriented terminal emulator)
qodem is a from-scratch clone implementation of the Qmodem
communications program made popular in the days when Bulletin Board
Systems ruled the night. Qodem emulates the dialing directory and
the terminal screen features of Qmodem over both modem and Internet
connections.
qodem also emulates ATASCII (Atari 8-bit) and PETSCII (Commodore
8-bit), and can be used to run a local shell.
Note: qodem-x11 doesn't handle PETSCII correctly. Instead, launch
qodem in a terminal with the PETSCII font (adjust the size= to your
taste):
$ urxvt -fn "xft:C64 Pro Mono:size=13" -e qodem
More information on BBSes can be found here, along with an up-to-date
list of telnet BBSes:
https://www.telnetbbsguide.com/

17
network/qodem/doinst.sh Normal file
View file

@ -0,0 +1,17 @@
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
if [ -x /usr/bin/mkfontdir -a -x /usr/bin/mkfontscale ]; then
( cd usr/share/fonts/TTF
/usr/bin/mkfontscale .
/usr/bin/mkfontdir . )
fi
[ -x /usr/bin/fc-cache ] && /usr/bin/fc-cache -f

View file

@ -0,0 +1,101 @@
.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "QODEM-CONVERT" 1 "2023-07-29" "1.0.1" "SlackBuilds.org"
.SH NAME
qodem-convert \- convert BBS dialing lists to qodem format
.\" RST source for qodem-convert(1) man page. Convert with:
.
.\" rst2man.py qodem-convert.rst > qodem-convert.1
.
.SH SYNOPSIS
.sp
qodem\-convert\-syncterm \fBinput.lst\fP \fBoutput.txt\fP
.sp
qodem\-convert\-ibbs \fBinput.txt\fP \fBoutput.txt\fP
.SH DESCRIPTION
.sp
These utilities convert BBS dialing lists to the \fBfonebook.txt\fP
format used by \fBqodem\fP(1).
.sp
To convert a \fBsyncterm\fP(1) list, use a command like:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qodem\-convert\-syncterm ~/.syncterm/syncterm.lst ~/.qodem/fonebook.txt
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
To convert the telnetbbsguide list, first download it from:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
https://www.telnetbbsguide.com/lists/download\-list/
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Get either the Monthly or Daily zip file. Extract it, and find the
"short form" list, which will have a filename like \fBshort_Jul_23.txt\fP\&.
Use a command like:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qodem\-convert\-ibbs short_Jul_23.txt ~/.qodem/fonebook.txt
.ft P
.fi
.UNINDENT
.UNINDENT
.SH COPYRIGHT
.sp
Public Domain, or CC0 License in jurisdictions that do not recognize
the public domain.
.SH AUTHORS
.sp
\fBqodem\fP, \fBqodem\-convert\-syncterm\fP, and \fBqodem\-convert\-ibbs\fP were
written by Autumn Lamonte.
.sp
This man page written for the SlackBuilds.org project
by B. Watson, and is licensed under the WTFPL.
.SH SEE ALSO
.sp
\fBqodem\fP(1), \fBqodem\-x11\fP(1), \fBsyncterm\fP(1)
.sp
The qodem homepage: \fI\%https://qodem.sourceforge.io/\fP
.\" Generated by docutils manpage writer.
.

View file

@ -0,0 +1,67 @@
.. RST source for qodem-convert(1) man page. Convert with:
.. rst2man.py qodem-convert.rst > qodem-convert.1
.. |version| replace:: 1.0.1
.. |date| date::
=============
qodem-convert
=============
-----------------------------------------
convert BBS dialing lists to qodem format
-----------------------------------------
:Manual section: 1
:Manual group: SlackBuilds.org
:Date: |date|
:Version: |version|
SYNOPSIS
========
qodem-convert-syncterm **input.lst** **output.txt**
qodem-convert-ibbs **input.txt** **output.txt**
DESCRIPTION
===========
These utilities convert BBS dialing lists to the **fonebook.txt**
format used by **qodem**\(1).
To convert a **syncterm**\(1) list, use a command like::
qodem-convert-syncterm ~/.syncterm/syncterm.lst ~/.qodem/fonebook.txt
To convert the telnetbbsguide list, first download it from::
https://www.telnetbbsguide.com/lists/download-list/
Get either the Monthly or Daily zip file. Extract it, and find the
"short form" list, which will have a filename like **short_Jul_23.txt**.
Use a command like::
qodem-convert-ibbs short_Jul_23.txt ~/.qodem/fonebook.txt
COPYRIGHT
=========
Public Domain, or CC0 License in jurisdictions that do not recognize
the public domain.
AUTHORS
=======
**qodem**, **qodem-convert-syncterm**, and **qodem-convert-ibbs** were
written by Autumn Lamonte.
This man page written for the SlackBuilds.org project
by B. Watson, and is licensed under the WTFPL.
SEE ALSO
========
**qodem**\(1), **qodem-x11**\(1), **syncterm**\(1)
The qodem homepage: https://qodem.sourceforge.io/

View file

@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=Qodem (X11)
Comment=ANSI-BBS Terminal
Comment[es]=Emulador de Terminal ANSI-BBS
Icon=qodem
Exec=qodem-x11 %u
Terminal=false
Categories=TerminalEmulator;Network;Dialup;
Keywords=BBS;Terminal;Ansi;

View file

@ -0,0 +1,172 @@
#!/bin/bash
# Slackware build script for qodem
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# Notes:
# - Package includes both terminal (qodem) and X11 (qodem-x11) binaries.
# - qodem-x11 always builds with its bundled copy of pdcurses, regardless of
# whether our PDCurses package is installed. Perfectly OK, just worth
# mentioning why PDCurses isn't a dependency.
# - Two choices for ssh support: build with bundled cryptlib (like syncterm
# does), or run an external ssh command. Upstream's default is the latter,
# I won't change it. Plus, using the ssh binary has the useful side effect
# of respecting your ~/.ssh/config.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=qodem
VERSION=${VERSION:-1.0.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"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-v$VERSION
tar xvf $CWD/$PRGNAM-v$VERSION.tar.gz
cd $PRGNAM-v$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 {} +
# There's no configure option to override use of the system miniupnp
# library; it'll fall back to its own bundled version if not found.
# This makes it always use the bundled one, for a reproducible build
# and to avoid a hidden dependency.
sed -i '/Q_USE_SYSTEM_UPNP="yes"/s,yes,no,' configure
# Use our flags for sub-makes.
sed -i -e 's,-ggdb,,' \
-e "s,-O0,$SLKCFLAGS," \
lib/pdcurses/Makefile \
lib/upnp/Makefile
# The X11 build runs external commands in a separate terminal. Change
# the default terminal to something that actually exists on Slackware.
# This is just the default (can still be changed in ~/.qodem/qodemrc).
sed -i 's,x-terminal-emulator,xterm,g' source/{options,help}.c
# Don't repeat myself (much, anyway):
buildit() {
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux \
"$@"
make
make install-strip DESTDIR=$PKG
}
### this builds the terminal binary (qodem):
buildit
### now start over, prepare to build the x11 binary (qodem-x11):
make distclean
# we have to build these separately, for parallel builds (-jN, N>1):
make -C lib/pdcurses
make -C lib/upnp
# sub-projects built, now we can build qodem-x11:
buildit --enable-x11
### everything else:
# This script isn't useful. All it would ever do is "exec qodem-x11", since
# our package includes that.
rm -f $PKG/usr/bin/x$PRGNAM $PKG/usr/man/man1/x$PRGNAM.1
# There was no documentation for the conversion scripts, so I wrote some:
cat $CWD/qodem-convert.1 > $PKG/usr/man/man1/qodem-convert.1
# All man pages in place, so:
gzip -9 $PKG/usr/man/man*/*
# useful-looking stuff in misc/, include in package:
for i in ibbs syncterm; do
cp -a misc/convert_${i}.pl $PKG/usr/bin/qodem-convert-$i
ln -s qodem-convert.1.gz $PKG/usr/man/man1/qodem-convert-$i.1.gz
done
# qodem-x11 doesn't seem to use this font when in PETSCII mode, but
# it works OK if you run qodem in a terminal using the font:
mkdir -p $PKG/usr/share/fonts/TTF
cp -a misc/fonts/C64_Pro_Mono-STYLE.ttf $PKG/usr/share/fonts/TTF
# .desktop files written by SlackBuild author:
mkdir -p $PKG/usr/share/applications
install -oroot -groot -m0644 $CWD/$PRGNAM*.desktop $PKG/usr/share/applications
# Upstream provided icons at various sizes:
cp build/icons/qodem.png build/osx/icons/qodem-64.png
for png in build/osx/icons/qodem-*.png; do
px="$( basename $png .png | cut -d- -f2 )"
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
# Most of what's in docs/ is developer-oriented, but the PD
# announcement is the closest thing we've got to a license...
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a C* README* docs/pd_announcement2.txt $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
# It works out OK to use the same script for doinst.sh and douninst.sh.
# Result is that it truly does clean up after itself.
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cat $CWD/doinst.sh > $PKG/install/douninst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

View file

@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=Qodem (curses)
Comment=ANSI-BBS Terminal
Comment[es]=Emulador de Terminal ANSI-BBS
Icon=qodem
Exec=qodem %u
Terminal=true
Categories=TerminalEmulator;Network;Dialup;
Keywords=BBS;Terminal;Ansi;

10
network/qodem/qodem.info Normal file
View file

@ -0,0 +1,10 @@
PRGNAM="qodem"
VERSION="1.0.1"
HOMEPAGE="https://qodem.sourceforge.net/"
DOWNLOAD="https://gitlab.com/AutumnMeowMeow/qodem/-/archive/v1.0.1/qodem-v1.0.1.tar.gz"
MD5SUM="57d58342377a7232e7bf66246d6a18e6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
EMAIL="urchlay@slackware.uk"

19
network/qodem/slack-desc Normal file
View file

@ -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------------------------------------------------------|
qodem: qodem (BBS-oriented terminal emulator)
qodem:
qodem: qodem is a from-scratch clone implementation of the Qmodem
qodem: communications program made popular in the days when Bulletin Board
qodem: Systems ruled the night. Qodem emulates the dialing directory and
qodem: the terminal screen features of Qmodem over both modem and Internet
qodem: connections.
qodem:
qodem: qodem also emulates ATASCII (Atari 8-bit) and PETSCII (Commodore
qodem: 8-bit), and can be used to run a local shell.
qodem: