diff options
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 |
commit | 901d10e94874d539c6f5b21523789a5e2343b0a9 (patch) | |
tree | a0cbb4e9775ece61b013b3c50e51146d85543ec3 | |
parent | ee5489e7ef85645b40c47b57d803c4ffe4f6c62f (diff) | |
download | slackbuilds-901d10e94874d539c6f5b21523789a5e2343b0a9.tar.gz |
network/ircII: Updated for version 20210616_2.
Signed-off-by: B. Watson <yalhcru@gmail.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r-- | network/ircII/NOTES_TO_SELF | 44 | ||||
-rw-r--r-- | network/ircII/README | 11 | ||||
-rw-r--r-- | network/ircII/ircII.SlackBuild | 83 | ||||
-rw-r--r-- | network/ircII/ircII.info | 10 | ||||
-rw-r--r-- | network/ircII/man/ircflush.1 | 30 | ||||
-rw-r--r-- | network/ircII/man/ircio.1 | 39 | ||||
-rw-r--r-- | network/ircII/man/wserv.1 | 30 | ||||
-rw-r--r-- | network/ircII/manpage.diff | 38 | ||||
-rw-r--r-- | network/ircII/slack-desc | 6 |
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@ |