summaryrefslogtreecommitdiffstats
path: root/network/ircII
diff options
context:
space:
mode:
author B. Watson <yalhcru@gmail.com>2021-09-14 00:07:42 -0400
committer Willy Sudiarto Raharjo <willysr@slackbuilds.org>2021-10-13 00:52:24 +0700
commit901d10e94874d539c6f5b21523789a5e2343b0a9 (patch)
treea0cbb4e9775ece61b013b3c50e51146d85543ec3 /network/ircII
parentee5489e7ef85645b40c47b57d803c4ffe4f6c62f (diff)
downloadslackbuilds-901d10e94874d539c6f5b21523789a5e2343b0a9.tar.gz
slackbuilds-901d10e94874d539c6f5b21523789a5e2343b0a9.tar.xz
network/ircII: Updated for version 20210616_2.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'network/ircII')
-rw-r--r--network/ircII/NOTES_TO_SELF44
-rw-r--r--network/ircII/README11
-rw-r--r--network/ircII/ircII.SlackBuild83
-rw-r--r--network/ircII/ircII.info10
-rw-r--r--network/ircII/man/ircflush.130
-rw-r--r--network/ircII/man/ircio.139
-rw-r--r--network/ircII/man/wserv.130
-rw-r--r--network/ircII/manpage.diff38
-rw-r--r--network/ircII/slack-desc6
9 files changed, 264 insertions, 27 deletions
diff --git a/network/ircII/NOTES_TO_SELF b/network/ircII/NOTES_TO_SELF
new file mode 100644
index 0000000000..13128c3b0e
--- /dev/null
+++ b/network/ircII/NOTES_TO_SELF
@@ -0,0 +1,44 @@
+Notes to self:
+
+wserv and ircio are executed correctly (in the new libexec/ircII dir),
+tested them with the following results:
+
+wserv seems to work fine, in the brief bit of testing I did
+with it (/window create and related commands).
+
+ircio (the -S option) doesn't work with libera.chat: with SSL
+it fails to connect at all, and without SSL it connects but the
+server closes the connection before (or during?) sending the
+MOTD. I thought it might be due to the 4K buffer size in ircio,
+but the MOTD on libera is a lot shorter than that.
+
+I haven't tried other IRC nets with -S, because I don't actually think
+anyone cares about it (other ircII forked clients like BitchX and Epic
+never even included it).
+
+--
+
+The help and support scripts are installed in /usr/share/irc. I
+thought about changing this to /usr/share/ircII, but don't really see
+the point.
+
+--
+
+Compiling with -Wall, we get:
+
+/tmp/SBo/ircii/source/hook.c:292:40: warning: ā€˜%3.3uā€™ directive
+output may be truncated writing between 3 and 10 bytes into a region
+of size 4 [-Wformat-truncation=]
+
+On further investigation, it's a bogus warning: yes, 3.3%u could
+produce up to 10 digits... but before line 292, there's code that
+rejects any number above 999. This means sprintf will write 3 bytes of
+digits followed by the terminating \0.
+
+--
+
+We compile with ncurses, not termcap... but the code in term.c uses
+termcap functions. These are actually provided by ncurses doing
+termcap emulation. See curs_termcap(3x). In practice this works fine,
+and lets us use terminals like rxvt-unicode, for which terminfo
+entries exist but are too new to be included in crusty old termcap.
diff --git a/network/ircII/README b/network/ircII/README
index 330bfe39e2..f2d2f4add4 100644
--- a/network/ircII/README
+++ b/network/ircII/README
@@ -6,9 +6,20 @@ variety of additional options.
ircII is the oldest IRC client still maintained.
+ircII has extensive built-in help, accessed by the /help command. If
+you'd rather read the help in a browser, it's also available as:
+
+file:///usr/doc/ircII-20210616_2/html/index.html
+
By default, this SlackBuild sets the default IRC server to
"SSLIRC/chat.freenode.org:6697". This only applies with ircII is
run without a server argument on the command line. You can change
the default server by setting the DEFSRV environment variable to the
host:port (with optional SSLIRC/ prefix for a secure connection), or
compile without a default server with DEFSRV=none.
+
+Optionally, ircII can be compiled with 'paranoid mode'. This stops
+ircII from including the ircII version or realname/username in CTCP
+VERSION and FINGER responses. It also stops ircII from responding to
+channel-wide CTCP requests entirely. To do this, export PARANOID=yes
+in the script's environment.
diff --git a/network/ircII/ircII.SlackBuild b/network/ircII/ircII.SlackBuild
index e48d1231f1..caf63c7534 100644
--- a/network/ircII/ircII.SlackBuild
+++ b/network/ircII/ircII.SlackBuild
@@ -10,16 +10,31 @@
# Normally I prefer all-lowercase package names, but this just looks
# *wrong* as "ircii".
+# 20210913 bkw:
+# - update for v20210616. The datestamp comes from the output of
+# "ircII -v" (not the ChangeLog).
+# - change DEFSRV to irc.libera.chat, now that freenode is a wasteland.
+# - use a private libexec/ircII dir instead of binaries in /usr/libexec.
+# done because some other ircII-based client might conflict someday.
+# - generate and include HTML docs.
+# - add NOTES_TO_SELF to avoid cluttering up the script with comments.
+# - correct and expand Debian's man pages.
+# - add support for 'paranoid mode'.
+# - have slack-desc show default server and paranoid mode.
+
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=ircII
-VERSION=${VERSION:-20190117_1}
+VERSION=${VERSION:-20210616_2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=${PRGNAM,,}
SRCVER=${VERSION%_*}
+
+# We're applying Debian's patches against a slightly older version.
+DEBSRCVER=20210328
DEBVER=${VERSION#*_}
if [ -z "$ARCH" ]; then
@@ -30,9 +45,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -58,7 +70,14 @@ fi
set -e
-DEFSRV="${DEFSRV:-SSLIRC/chat.freenode.org:6697}"
+PARANOID="${PARANOID:-no}"
+case "$PARANOID" in
+ y*|Y*|t*|T*|1) para_opt="--with-paranoid" ;;
+ *) para_opt="--without-paranoid" ;;
+esac
+echo "=== PARANOID='$PARANOID', para_opt='$para_opt'"
+
+DEFSRV="${DEFSRV:-SSLIRC/irc.libera.chat:6697}"
case "$DEFSRV" in
none|NONE) ;;
*:*) srvopt="--with-default-server=$DEFSRV" ;;
@@ -71,16 +90,24 @@ echo "=== DEFSRV='$DEFSRV', srvopt='$srvopt'"
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $SRCNAM-$SRCVER
-tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz
-cd $SRCNAM-$SRCVER
-tar xvf $CWD/${SRCNAM}_$SRCVER-$DEBVER.debian.tar.xz
+rm -rf $SRCNAM
+tar xvf $CWD/$SRCNAM-$SRCVER.tar.bz2
+cd $SRCNAM
+tar xvf $CWD/${SRCNAM}_$DEBSRCVER-$DEBVER.debian.tar.xz
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 {} \+
-# apply most of Debian's patches.
-rm -f debian/patches/0004-absolute-path*
+# apply most of Debian's patches, except:
+# - the absolute-path patch would move the nonexistent
+# /usr/share/irc/ircII.{motd,servers} to /etc/irc/{motd,servers}.
+# Since we don't ship either file, and their paths are settable in
+# ~/.ircrc anyway, I see no use for this patch.
+# - the Add-ioption patch is meant to fix some compile warnings that we
+# don't actually get. Plus, it won't apply cleanly.
+rm -f debian/patches/0004-absolute-path* \
+ debian/patches/0003-Add-ioption*
+
for i in $( cat debian/patches/series ); do
[ -e debian/patches/$i ] && patch -p1 < debian/patches/$i
done
@@ -95,16 +122,25 @@ sed -i -e '1i#include <curses.h>' \
sed -i -e '/AC_CHECK_LIB(termcap/s,termcap,ncurses,g' \
-e 's,termcap\.h ,,' \
configure.in
+
+# my own typo/grammar/etc fixes. minor nitpicks, maybe.
+patch -p1 < $CWD/manpage.diff
+
autoreconf -ifv
# is there a disadvantage to enabling emacs meta keys?
-CFLAGS="$SLKCFLAGS -Wl,-s" \
-CXXFLAGS="$SLKCFLAGS -Wl,-s" \
+# 20210913 bkw: force --with-openssl, rather than letting it
+# autodetect. this is so we can find out right away if Slackware's
+# openssl gets upgraded to something ircII doesn't yet support.
+CFLAGS="$SLKCFLAGS -Wall -Wl,-s" \
./configure \
$srvopt \
+ $para_opt \
--with-emacs-meta-keys \
+ --with-openssl \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/libexec/$PRGNAM \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
@@ -119,24 +155,33 @@ mkdir -p $PKG/usr/man/man1
make install DESTDIR=$PKG mandir=$PKG/usr/man/man1
# package called ircII, so let's have an ircII executable.
-ln -s irc-$VERSION $PKG/usr/bin/$PRGNAM
+ln -s $(basename $(realpath $PKG/usr/bin/irc)) $PKG/usr/bin/$PRGNAM
rm -f $PKG/usr/man/man1/irc.1
gzip -9 $PKG/usr/man/man1/*.1
ln -s ircII.1.gz $PKG/usr/man/man1/irc.1.gz
-# Debian includes some extra man pages
-for i in debian/*.1; do
- gzip -9c < $i > $PKG/usr/man/man1/$( basename $i ).gz
+# Debian includes some extra man pages. I've expanded them a bit and
+# fixed some typos.
+for i in $CWD/man/*.1; do
+ sed "s,@VERSION@,$VERSION,g" < $i | \
+ gzip -9c > $PKG/usr/man/man1/$( basename $i ).gz
done
-rm -f doc/*.1 doc/*.spec*
+# HTML docs (generated from /help text). Sure, why not?
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html
+perl doc/help2html.pl $PKG/usr/share/irc/help $PKG/usr/doc/$PRGNAM-$VERSION/html
+
+rm -f doc/*.1 doc/*.spec* doc/*.orig doc/*.pl
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a ChangeLog NEWS README doc/* contrib $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+sed -e "s,@para_opt@,$para_opt," \
+ -e "s,@srvopt@,$srvopt," \
+ < $CWD/slack-desc \
+ > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/network/ircII/ircII.info b/network/ircII/ircII.info
index 241b6c6e91..6d1a223eac 100644
--- a/network/ircII/ircII.info
+++ b/network/ircII/ircII.info
@@ -1,10 +1,10 @@
PRGNAM="ircII"
-VERSION="20190117_1"
+VERSION="20210616_2"
HOMEPAGE="http://www.eterna.com.au/ircii/"
-DOWNLOAD="http://ircii.warped.com/ircii-20190117.tar.gz \
- http://deb.debian.org/debian/pool/main/i/ircii/ircii_20190117-1.debian.tar.xz"
-MD5SUM="f0ca9ade8aa068acddbe15b215c0b22a \
- 6d077f10fb7133141d9e6bcba4ad0314"
+DOWNLOAD="https://slackware.uk/~urchlay/src/ircii-20210616.tar.bz2 \
+ https://deb.debian.org/debian/pool/main/i/ircii/ircii_20210328-2.debian.tar.xz"
+MD5SUM="521ede3dd468100373a9783841bc7a81 \
+ 335e7e22d6a1c106f874586a81c7ea3d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/network/ircII/man/ircflush.1 b/network/ircII/man/ircflush.1
new file mode 100644
index 0000000000..35562f3ff5
--- /dev/null
+++ b/network/ircII/man/ircflush.1
@@ -0,0 +1,30 @@
+.TH ircflush 1 "September 2021" "ircII @VERSION@" "SlackBuilds.org"
+.SH NAME
+ircflush \- a little program that tricks another program into line buffering its output
+.SH SYNOPSIS
+.B ircflush
+.RB [ program ]
+.RB [ arguments to program
+.SH DESCRIPTION
+What's the deal here? Well, it's like this. First we find an open
+tty/pty pair. Then we fork three processes. The first reads from stdin
+and sends the info to the master device. The next process reads from the
+master device and sends stuff to stdout. The last processes is the rest
+of the command line arguments exec'd. By doing all this, the exec'd
+process is fooled into flushing each line of output as it occurs.
+.P
+This program is intended as a 'helper' for ircII scripts.
+.SH OPTIONS
+.TP
+.B [ program ]
+.TP
+.B [ arguments to program]
+.TP
+.RE
+.SH AUTHOR
+.EX
+Michael Sandrof
+.EE
+.SH SEE ALSO
+.BR ircII (1),
+.BR irc (1)
diff --git a/network/ircII/man/ircio.1 b/network/ircII/man/ircio.1
new file mode 100644
index 0000000000..76dfa2cae5
--- /dev/null
+++ b/network/ircII/man/ircio.1
@@ -0,0 +1,39 @@
+.TH ircio 1 "September 2021" "ircII @VERSION@" "SlackBuilds.org"
+.SH NAME
+ircio \- A quaint little program to make irc life PING free
+.SH DESCRIPTION
+This little program connects to the server (given as arg 1) on
+the given port (given as arg 2). It then accepts input from stdin and
+sends it to that server. Likewise, it reads stuff sent from the server and
+sends it to stdout. Simple? Yes, it is. But wait! There's more! It
+also intercepts server PINGs and automatically responds to them. This
+frees up the process that starts ircio (such as IRCII) to pause without
+fear of being pooted off the net.
+.P
+.B ircio
+is not intended to be run by itself. It's started by ircII's -S command\-line
+option.
+.P
+.SH BUGS
+.B ircio
+doesn't work at all with SSL\-enabled IRC connections. It also
+doesn't work properly with the
+.B libera.chat
+network even without SSL: you can connect, but you'll get disconnected
+before the MOTD is sent.
+.P
+There are better ways to solve the problem
+.B ircio
+solves, such as
+.BR screen (1),
+.BR tmux (1),
+or just multiple X terminals. There's no need to suspend
+.B ircII
+in such environments.
+.SH AUTHOR
+.EX
+Michael Sandrof
+.EE
+.SH SEE ALSO
+.BR ircII (1),
+.BR ircflush (1)
diff --git a/network/ircII/man/wserv.1 b/network/ircII/man/wserv.1
new file mode 100644
index 0000000000..1c547ab128
--- /dev/null
+++ b/network/ircII/man/wserv.1
@@ -0,0 +1,30 @@
+.TH wserv 1 "September 2021" "ircII @VERSION@" "SlackBuilds.org"
+.SH NAME
+wserv \- little program that acts as a pipe between a screen or xterm window to the calling ircII process
+.SH SYNOPSIS
+.B wserv
+.RB [ /path/to/socket ]
+.RB [ /path/to/control ]
+.SH DESCRIPTION
+Works by opening up the unix domain socket that ircII binds
+before calling wserv, and which ircII also deletes after the
+connection has been made.
+.P
+.B wserv
+is not useful by itself. It gets run as needed by ircII when the
+.B /window create
+command is executed.
+.P
+.SH OPTIONS
+.TP
+.B [ /path/to/socket ]
+.TP
+.B [ /path/to/control ]
+.SH AUTHOR
+.EX
+Michael Sandrof
+.EE
+.SH SEE ALSO
+.BR ircII (1),
+.BR ircio (1),
+.B /help window create
diff --git a/network/ircII/manpage.diff b/network/ircII/manpage.diff
new file mode 100644
index 0000000000..4ad650926a
--- /dev/null
+++ b/network/ircII/manpage.diff
@@ -0,0 +1,38 @@
+diff -Naur ircii/doc/ircII.1 ircii.patched/doc/ircII.1
+--- ircii/doc/ircII.1 2021-06-18 14:20:02.000000000 -0400
++++ ircii.patched/doc/ircII.1 2021-09-13 23:51:35.255955020 -0400
+@@ -332,17 +332,17 @@
+ .Nm
+ scripts, that can then be loaded with
+ .Ic /load
+-.It Pa .../share/irc/
++.It Pa /usr/share/irc/
+ directory containing message-of-the-day, master initialization, help files, and
+ .Nm
+ scripts
+-.It Pa .../share/irc/script/global
++.It Pa /usr/share/irc/script/global
+ file loaded at the start of every
+ .Nm
+ session.
+-.It Pa PREFIX/share/irc/ircII.servers
++.It Pa /usr/share/irc/ircII.servers
+ The initial list of servers if none are provided on the command line.
+-.It Pa PREFIX/share/irc/ircII.motd
++.It Pa /usr/share/irc/ircII.motd
+ Message of the day.
+ This file is displayed only once each time it is changed.
+ .El
+@@ -399,9 +399,9 @@
+ .Ic /HELP \&?
+ command as this prints a listing of all available help files.
+ .Pp
+-Access to HTML version of the help files is availble from
+-.Lk http://eterna.com.au/ircii/help/ .
+-Note that these are generated from the builtin help files and
++Access to HTML versions of the help files is available from
++.Lk http://eterna.com.au/ircii/help/
++; note that these are generated from the builtin help files and
+ may have formatting issues.
+ .Sh SIGNALS
+ .Nm
diff --git a/network/ircII/slack-desc b/network/ircII/slack-desc
index 7086e8cd94..9783ec6e2b 100644
--- a/network/ircII/slack-desc
+++ b/network/ircII/slack-desc
@@ -14,6 +14,6 @@ ircII: variety of additional options.
ircII:
ircII: ircII is the oldest IRC client still maintained.
ircII:
-ircII:
-ircII:
-ircII:
+ircII: Build options:
+ircII: @para_opt@
+ircII: @srvopt@