From f05385edeef1b12adb2f9033e1fbddbada1c6caa Mon Sep 17 00:00:00 2001 From: B. Watson Date: Wed, 5 Feb 2014 08:54:02 +0700 Subject: network/cicb: Added (ICB client). Signed-off-by: Willy Sudiarto Raharjo --- network/cicb/README | 8 ++ network/cicb/cicb.SlackBuild | 114 +++++++++++++++ network/cicb/cicb.info | 10 ++ network/cicb/icb.1 | 272 +++++++++++++++++++++++++++++++++++ network/cicb/icbserverdb | 11 ++ network/cicb/slack-desc | 19 +++ network/cicb/tcl_continue_error.diff | 45 ++++++ 7 files changed, 479 insertions(+) create mode 100644 network/cicb/README create mode 100644 network/cicb/cicb.SlackBuild create mode 100644 network/cicb/cicb.info create mode 100644 network/cicb/icb.1 create mode 100644 network/cicb/icbserverdb create mode 100644 network/cicb/slack-desc create mode 100644 network/cicb/tcl_continue_error.diff (limited to 'network/cicb') diff --git a/network/cicb/README b/network/cicb/README new file mode 100644 index 0000000000..26ba466cfe --- /dev/null +++ b/network/cicb/README @@ -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. diff --git a/network/cicb/cicb.SlackBuild b/network/cicb/cicb.SlackBuild new file mode 100644 index 0000000000..f301bdaecb --- /dev/null +++ b/network/cicb/cicb.SlackBuild @@ -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} diff --git a/network/cicb/cicb.info b/network/cicb/cicb.info new file mode 100644 index 0000000000..4c485d6304 --- /dev/null +++ b/network/cicb/cicb.info @@ -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" diff --git a/network/cicb/icb.1 b/network/cicb/icb.1 new file mode 100644 index 0000000000..309ed9bf27 --- /dev/null +++ b/network/cicb/icb.1 @@ -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. diff --git a/network/cicb/icbserverdb b/network/cicb/icbserverdb new file mode 100644 index 0000000000..4ef7930e47 --- /dev/null +++ b/network/cicb/icbserverdb @@ -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 diff --git a/network/cicb/slack-desc b/network/cicb/slack-desc new file mode 100644 index 0000000000..e7a1379955 --- /dev/null +++ b/network/cicb/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------------------------------------------------------| +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: diff --git a/network/cicb/tcl_continue_error.diff b/network/cicb/tcl_continue_error.diff new file mode 100644 index 0000000000..dcba1b865c --- /dev/null +++ b/network/cicb/tcl_continue_error.diff @@ -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 = ""; -- cgit v1.2.3