diff --git a/network/sic/README b/network/sic/README index c4a96694d5..842025a1bf 100644 --- a/network/sic/README +++ b/network/sic/README @@ -1,10 +1,18 @@ -sic (simple irc client) +sic (simple irc client from suckless.org) sic is an extremely simple IRC client. It consists of less than 250 lines of code. -The default host is "irc.oftc.net" and the default port is 6667. You -can change these by setting IRCHOST and/or IRCPORT in the script's -environment, e.g.: +You can control the build via environment variables: -# IRCHOST=chat.freenode.org IRCPORT=6668 ./sic.SlackBuild +IRCHOST - sets the default IRC server (default: irc.oftc.net). +IRCPORT - sets the default port (default: 6667). +SLASH - set SLASH=yes to change the command prefix from a colon (:) to + a slash (/), to make sic work more like other IRC clients. + +For even finer-grained control, you can copy config.def.h from the +sic source to config.h in the SlackBuild directory, and edit it before +building. + +If you want to apply any patches to the sic source, see patches/README +for instructions. diff --git a/network/sic/git2tarxz.sh b/network/sic/git2tarxz.sh new file mode 100644 index 0000000000..c169301276 --- /dev/null +++ b/network/sic/git2tarxz.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +# Create source tarball from git repo, with generated version +# number. + +# Note that this script doesn't need to be run as root. It does +# need to be able to write to the current directory it's run from. + +# Takes one optional argument, which is the commit or tag to create +# a tarball of. With no arg, HEAD is used. + +PRGNAM=sic +CLONE_URL=https://git.suckless.org/sic + +set -e + +GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX ) +rm -rf $GITDIR +git clone $CLONE_URL $GITDIR + +CWD="$( pwd )" +cd $GITDIR + +if [ "$1" != "" ]; then + git reset --hard "$1" || exit 1 +fi + +GIT_SHA=$( git rev-parse --short HEAD ) +DATE=$( git log --date=format:%Y%m%d --format=%cd | head -1 ) +TAG=$( git tag | tail -1 ) + +VERSION=$TAG+${DATE}_${GIT_SHA} + +rm -rf .git +find . -name .gitignore -print0 | xargs -0 rm -f + +cd "$CWD" +rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz +mv $GITDIR $PRGNAM-$VERSION +tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION + +echo +echo "Created tarball: $PRGNAM-$VERSION.tar.xz" +echo "VERSION=$VERSION" diff --git a/network/sic/patches/README b/network/sic/patches/README new file mode 100644 index 0000000000..a9c9ce960d --- /dev/null +++ b/network/sic/patches/README @@ -0,0 +1,10 @@ +This directory is for optional patches. Any *.diff files found here +will be applied to the sic source in ASCIIbetical order, when the +SlackBuild is run. + +If the order of patches matters (if later ones depend on earlier +ones), name them e.g. 001-foo.diff, 002-bar.diff, etc. + +Upstream provides a few patches here: + +http://tools.suckless.org/sic/patches/ diff --git a/network/sic/sic.SlackBuild b/network/sic/sic.SlackBuild index 6e05bc4249..0b04f980b3 100644 --- a/network/sic/sic.SlackBuild +++ b/network/sic/sic.SlackBuild @@ -22,6 +22,13 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20210924 bkw: +# - update for latest git. +# - add support for SLASH=yes. +# - add support for user config.h. +# - add support for patches. +# - update README to reflect the above. + # 20201113 bkw: The original author of this script hasn't been heard # from since 2011, and it needs some attention (still mentions i486) # so I'm taking it. @@ -35,7 +42,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=sic -VERSION=${VERSION:-1.2} +VERSION=${VERSION:-1.2+20210506_058547e} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -48,9 +55,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 @@ -80,22 +84,52 @@ rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar xvzf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z cd $PRGNAM-$VERSION chown -R root:root . chmod 644 * -sed -i "s/CFLAGS =/CFLAGS +=/" config.mk +# this is more complex than it has to be: upstream released a a mix +# of -p0 and -p1 patches. +for i in $CWD/patches/*.diff; do + if [ -e "$i" ]; then + P=1 + patch --dry-run -p0 < $i &>/dev/null && P=0 + echo "=== Applying $( basename $i ) with -p$P" + patch -p$P < $i + fi +done -[ -n "$IRCHOST" ] && \ - sed -i "/host *= *\"/s,\"[^\"]*\",\"$IRCHOST\"," $PRGNAM.c +if [ -e "$CWD/config.h" ]; then + # if the user's got his own config.h, use it + cat "$CWD/config.h" > config.h +else + # if not, use the upstream default + cat config.def.h > config.h +fi -[ -n "$IRCPORT" ] && \ - sed -i "/port *= *\"/s,\"[^\"]*\",\"$IRCPORT\"," $PRGNAM.c +# IRCHOST IRCPORT SLASH modify the config.h, even overriding what's +# in the user's custom one. Also fixup the man page. +if [ -n "$IRCHOST" ]; then + sed -i "/DEFAULT_HOST/s,\".*\"\$,\"$IRCHOST\"," config.h + sed -i "/default host/s,(.*) *$,($IRCHOST)," $PRGNAM.1 +fi + +if [ -n "$IRCPORT" ]; then + sed -i "/DEFAULT_PORT/s,\".*\"\$,\"$IRCPORT\"," config.h + sed -i "/default port/s,(.*) *$,($IRCPORT)," $PRGNAM.1 +fi + +if [ "${SLASH:-no}" = "yes" ]; then + sed -i "s|':'|'/'|" config.h + sed -i '/^\.BI :/s,:,/,' $PRGNAM.1 +fi CFLAGS="$SLKCFLAGS -Wl,-s" \ DESTDIR=$PKG \ make \ + VERSION="$VERSION" \ + CFLAGS="$SLKCFLAGS" \ PREFIX=/usr \ MANPREFIX=/usr/man \ install @@ -103,7 +137,7 @@ make \ gzip -9 $PKG/usr/man/man1/$PRGNAM.1 mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION +cp -a LICENSE README config.h $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install diff --git a/network/sic/sic.info b/network/sic/sic.info index f466828855..355b87cd23 100644 --- a/network/sic/sic.info +++ b/network/sic/sic.info @@ -1,8 +1,8 @@ PRGNAM="sic" -VERSION="1.2" +VERSION="1.2+20210506_058547e" HOMEPAGE="http://tools.suckless.org/sic" -DOWNLOAD="http://dl.suckless.org/tools/sic-1.2.tar.gz" -MD5SUM="eb099e790c3ce7866df50d3fe1a52c25" +DOWNLOAD="https://slackware.uk/~urchlay/src/sic-1.2+20210506_058547e.tar.xz" +MD5SUM="e28bbec757711fd3a8883200e467b088" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" diff --git a/network/sic/slack-desc b/network/sic/slack-desc index 8a2a71b460..bc34e76761 100644 --- a/network/sic/slack-desc +++ b/network/sic/slack-desc @@ -6,7 +6,7 @@ # customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| -sic: sic (simple irc client) +sic: sic (simple irc client from suckless.org) sic: sic: sic is an extremely simple IRC client. It consists of less than 250 sic: lines of code.