network/cicb: Added (ICB client).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2014-02-05 08:54:02 +07:00 committed by Erik Hanson
parent b9fe91a6a6
commit f05385edee
7 changed files with 479 additions and 0 deletions

8
network/cicb/README Normal file
View file

@ -0,0 +1,8 @@
cicb (ICB client)
ICB (International CB) is a teleconferencing system that allows Internet
users to participate in realtime online discussions (similar to IRC). This
package builds a client program (called, strangely enough, "icb") that
is used to access ICB.
icb has extensive built-in help, accessed by the /help command.

View file

@ -0,0 +1,114 @@
#!/bin/sh
# Slackware build script for cicb
# Written by B. Watson (yalhcru@gmail.com)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
PRGNAM=cicb
VERSION=${VERSION:-5.1.1b3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -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-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Recent stdio.h defines a getline(), cicb's internal getline() conflicts.
# There's probably a way to fix this more elegantly with some combination
# of gcc feature macros, but my attempt led to a maze of twisty compile errors.
# Renaming cicb's getline() to get_line() works fine and seems more
# future-proof.
sed -i 's/getline *(/get_line(/g' icb/*.[ch]
# Need this for recent tcl, to allow deprecated features. Someday this will
# probably stop working and upstream will have to fix it.
SLKCFLAGS="$SLKCFLAGS -DUSE_INTERP_ERRORLINE -DUSE_INTERP_RESULT"
# Another tcl fix (from upstream's CVS repo)
patch -p1 < $CWD/tcl_continue_error.diff
# library autodetection is broken on 64-bit, hence the
# --with-(readline|ssl)* and the LDFLAGS below. They don't do any harm
# on 32-bit.
LDFLAGS="-L/usr/lib$LIBDIRSUFFIX" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--with-ssl \
--with-ssl-lib=/usr/lib$LIBDIRSUFFIX \
--with-readlinelib=/usr/lib$LIBDIRSUFFIX \
--datarootdir=/usr/share/$PRGNAM \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux
make
# no DESTDIR support, and prefix= is broken. Manual install.
# icbserverdb is newer than what's in the cicb tarball, it came from:
# wget -O icbserverdb ftp://ftp.icb.net/pub/icb/servers
mkdir -p $PKG/usr/bin $PKG/usr/share/$PRGNAM
ln -s icb $PKG/usr/bin/$PRGNAM
install -s -m0755 icb/icb $PKG/usr/bin
install -m0644 $CWD/icbserverdb system.icbrc $PKG/usr/share/$PRGNAM
# man page written for this SlackBuild
mkdir -p $PKG/usr/man/man1
gzip -9c < $CWD/icb.1 > $PKG/usr/man/man1/icb.1.gz
ln -s icb.1.gz $PKG/usr/man/man1/$PRGNAM.1.gz
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a C* README TODO TRIGGERS 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
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

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

@ -0,0 +1,10 @@
PRGNAM="cicb"
VERSION="5.1.1b3"
HOMEPAGE="http://cicb.sourceforge.net/"
DOWNLOAD="http://downloads.sourceforge.net/project/cicb/cicb/cicb.5.1.1b3/cicb-5.1.1b3.tar.gz"
MD5SUM="204989b74ee70585d718ec5f100959c8"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"

272
network/cicb/icb.1 Normal file
View file

@ -0,0 +1,272 @@
.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "ICB 1"
.TH ICB 1 "2014-02-04" "5.1.1b3" "SlackBuilds.org"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
icb \- a color\-capable International/Internet CB chat client
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
icb \fB[options]\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\s-1ICB \s0(International \s-1CB,\s0 or Internet \s-1CB\s0) is a teleconferencing system that
allows Internet users to participate in realtime online discussions.
.SH "OPTIONS"
.IX Header "OPTIONS"
Options may be abbreviated to the shortest unique prefix (generally
one or two characters). Options requiring an argument must have a space
before the argument.
.IP "\-nickname \fInick\fR" 4
.IX Item "-nickname nick"
Sign on with nickname \fInick\fR (default: see \fB\s-1ENVIRONMENT\s0\fR below).
.IP "\-password \fIpass\fR" 4
.IX Item "-password pass"
Set password to \fIpass\fR. Note: specifying a password on the command line implies \-clear.
.IP "\-password \-" 4
.IX Item "-password -"
Prompt for password.
.IP "\-group \fIgroup\fR" 4
.IX Item "-group group"
Sign on into group \fIgroup\fR.
.IP "\-server \fIname\fR" 4
.IX Item "-server name"
Connect to server named \fIname\fR.
.IP "\-host \fIhost\fR" 4
.IX Item "-host host"
Connect to server on host \fIhost\fR (default: \fBdefault.icb.net\fR).
.IP "\-port \fIport\fR" 4
.IX Item "-port port"
Try to connect to port \fIport\fR (default: 7326, or 7327 when using \s-1SSL\s0).
.IP "\-bindhost \fIhost\fR" 4
.IX Item "-bindhost host"
Try to bind outgoing connect to host \fIhost\fR (default: 0.0.0.0).
.IP "\-SSL" 4
.IX Item "-SSL"
Use \s-1SSL.\s0
.IP "\-list" 4
.IX Item "-list"
List known servers, in order.
.IP "\-clear" 4
.IX Item "-clear"
Wipe args from command line.
.IP "\-who" 4
.IX Item "-who"
See who's on; don't sign on.
.IP "\-restricted" 4
.IX Item "-restricted"
Restricted mode. Disables logging, external shell commands, and
the tcl commands \fIexec\fR, \fIprint\fR, \fIfile\fR, and \fIsource\fR.
.IP "\-color" 4
.IX Item "-color"
Enable \s-1ANSI\s0 color mode (disabled by default).
.IP "\-help" 4
.IX Item "-help"
Display built-in help message.
.SH "ENVIRONMENT"
.IX Header "ENVIRONMENT"
.IP "\s-1ICBNAME\s0" 4
.IX Item "ICBNAME"
.PD 0
.IP "\s-1FNNAME\s0" 4
.IX Item "FNNAME"
.IP "\s-1FORUMNAME\s0" 4
.IX Item "FORUMNAME"
.PD
If the \fB\-nickname\fR option is not given, these environment variables
are checked in the order listed. The first one that's set is used as
the nickname on the server. If none are set, the login name on the local
system is used as the nickname.
.IP "\s-1EDITOR\s0" 4
.IX Item "EDITOR"
.PD 0
.IP "\s-1VISUAL\s0" 4
.IX Item "VISUAL"
.PD
If \s-1EDITOR \s0(or \s-1VISUAL,\s0 if \s-1EDITOR\s0 is not set) is set to \*(L"emacs\*(R" (or a
path ending in \*(L"emacs\*(R", such as \*(L"/usr/bin/emacs\*(R"), icb will use emacs
editing mode by default, otherwise it will use vi mode. However, the
default \fIsystem.icbrc\fR contains \*(L"oset editmode emacs\*(R" which overrides
this variable. To use the environment, add \*(L"ounset editmode\*(R" to your
\&\fI~/.icb/icbrc\fR.
.IP "\s-1SHELL\s0" 4
.IX Item "SHELL"
The shell to use when running external commands from within icb, via
the \fIc_chell\fR command (see \fB/help primitives\fR). If not set, \fB/bin/sh\fR
is used.
.SH "FILES"
.IX Header "FILES"
.IP "/usr/share/cicb/icbserverdb" 4
.IX Item "/usr/share/cicb/icbserverdb"
List of \s-1ICB\s0 servers. Used by the \fB\-list\fR and \fB\-server\fR options.
.IP "/usr/share/cicb/system.icbrc" 4
.IX Item "/usr/share/cicb/system.icbrc"
System-wide \s-1ICB\s0 startup script, in \s-1TCL.\s0 Contains many helpful comments.
.ie n .IP "$HOME/.icb/icbrc" 4
.el .IP "\f(CW$HOME\fR/.icb/icbrc" 4
.IX Item "$HOME/.icb/icbrc"
Per-user startup script, sourced by system.icbrc if found.
.SH "AUTHORS"
.IX Header "AUTHORS"
\&\s-1ICB\s0 is based on Sean Casey's ForumNet (\*(L"forum\*(R" or \*(L"fn\*(R") 0.10, with his
permission. The new name was devised by Mark Giaquinto and John Atwood
DeVries. The actual code here is based on release 5.0.9 of the Tcl C\-Icb
client. It has been severely modified by a loose knit group of users who
can't seem to part with the traditional client code.
.PP
The parts of the code that are left over from ForumNet are Copyright (c)
1990 by Carrick Sean Casey.
.PP
The parts of the code that are left over from icb 5.0.9 is Copyright (c)
1993 by Mark J. Reed.
.PP
That said, cicb 5.1 is nearly a complete rewrite of the original code by
the cicb-workers committee, which includes, but is not limited to: Erik
Fichtner, Phil Stracchino, Michel Hoche-Mong, and Felix Lee.
.PP
This man page written by B. Watson for the SlackBuilds.org project, and may
be used by anyone.
.SH "LICENSE"
.IX Header "LICENSE"
This code has been placed under the \s-1GNU\s0 Public License with Mark Reed's
blessing. Please see the file \*(L"\s-1COPYING\*(R"\s0 for further information.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
icb's extensive built-in help, accessed by the \fB/help\fR command.
.PP
The \s-1ICB\s0 web site, \fBhttp://www.icb.net/\fR.

11
network/cicb/icbserverdb Normal file
View file

@ -0,0 +1,11 @@
#
# Server Name IP address Server Admin Port
#
default default.icb.net falcon@icb.net 7326
chime chime.icb.net falcon@icb.net 7326
echo echo.icb.net queue@echo.com 7326
empire empire.icb.net ???@empire.net 7326
cjnetworks cjnetworks.icb.net ???@cjnetworks.com 7326
swcp swcp.icb.net ???@swcp.com 7326
bossanova bossanova.icb.net colby@bossanova.com 7326
squarewave squarewave.icb.net lerner@squarewave.com 7326

19
network/cicb/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------------------------------------------------------|
cicb: cicb (ICB client)
cicb:
cicb: ICB (International CB) is a teleconferencing system that allows
cicb: Internet users to participate in realtime online discussions
cicb: (similar to IRC). This package builds a client program (called,
cicb: strangely enough, "icb") that is used to access ICB.
cicb:
cicb: Project URL: http://www.icb.net/
cicb:
cicb:
cicb:

View file

@ -0,0 +1,45 @@
diff -wNaur -xCVS cicb-5.1.1b3/icb/parse.c cicb/icb/parse.c
--- cicb-5.1.1b3/icb/parse.c 2009-03-23 02:51:53.000000000 -0400
+++ cicb/icb/parse.c 2013-07-05 02:16:27.000000000 -0400
@@ -1,4 +1,4 @@
-/* $Id: parse.c,v 1.20 2009/03/23 06:51:53 hoche Exp $ */
+/* $Id: parse.c,v 1.21 2013/07/05 06:16:27 hoche Exp $ */
/* parse a line from the user */
@@ -8,6 +8,9 @@
#define ARRAY_SIZE(x) (sizeof (x) / sizeof (x[0]))
+#define TCL_CONTINUE_ERROR_MSG "invoked \"continue\" outside of a loop"
+#define TCL_IGNORE 666
+
/* This is similar to Tcl_VarEval, but it treats each string as a separate
list element, rather than concat-ing the strings together and then
@@ -76,6 +79,14 @@
if (status == TCL_CONTINUE) {
send_command (cmd, args);
status = TCL_OK;
+ } else if (status == TCL_ERROR) {
+
+ /* handle the dreaded "invoked continue" message */
+ char *errmsg = (char*)Tcl_GetStringResult (interp);
+ if (strcmp(errmsg, TCL_CONTINUE_ERROR_MSG) == 0) {
+ send_command (cmd, args);
+ status = TCL_IGNORE;
+ }
}
return status;
@@ -122,7 +133,9 @@
putl (result, PL_SL);
}
error_mode = 0;
-
+ } else if (status == TCL_IGNORE) {
+ /* do nothing */
+ error_mode = 0;
} else {
/* Report an error. */
char* errmsg = "";