diff options
author | knu <knu@FreeBSD.org> | 2003-04-24 20:19:31 +0000 |
---|---|---|
committer | knu <knu@FreeBSD.org> | 2003-04-24 20:19:31 +0000 |
commit | 7896755f1f03da2721c585657a2f70b5dac4c0f8 (patch) | |
tree | 39c05002b4a839f0fb7de8c7e73a679b77341f92 /irc | |
parent | e558011b0684532adf6086088c98d1fcd3bcb8b2 (diff) | |
download | FreeBSD-ports-7896755f1f03da2721c585657a2f70b5dac4c0f8.zip FreeBSD-ports-7896755f1f03da2721c585657a2f70b5dac4c0f8.tar.gz |
Add patches to prevent multibyte encoded strings to be garbaged.
(already submitted to the author)
Add user & group in package building too.
Submitted by: bento
Remove user & group on deinstallation (only on bento).
Diffstat (limited to 'irc')
-rw-r--r-- | irc/dancer-services/Makefile | 2 | ||||
-rw-r--r-- | irc/dancer-services/files/patch-dcc.c | 11 | ||||
-rw-r--r-- | irc/dancer-services/files/patch-log.c | 14 | ||||
-rw-r--r-- | irc/dancer-services/files/patch-server.c | 15 | ||||
-rw-r--r-- | irc/dancer-services/pkg-deinstall | 56 | ||||
-rw-r--r-- | irc/dancer-services/pkg-install | 50 |
6 files changed, 124 insertions, 24 deletions
diff --git a/irc/dancer-services/Makefile b/irc/dancer-services/Makefile index 78a0cae..e809f23 100644 --- a/irc/dancer-services/Makefile +++ b/irc/dancer-services/Makefile @@ -36,9 +36,7 @@ post-patch: pre-install: ${MKDIR} ${PREFIX}/share/dancer-services -.if !defined(PACKAGE_BUILDING) && !defined(BATCH) @${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL -.endif post-install: ${FIND} ${PREFIX}/share/dancer-services -type d -print0 | \ diff --git a/irc/dancer-services/files/patch-dcc.c b/irc/dancer-services/files/patch-dcc.c new file mode 100644 index 0000000..9931632 --- /dev/null +++ b/irc/dancer-services/files/patch-dcc.c @@ -0,0 +1,11 @@ +--- source/dcc.c.orig Wed Nov 14 04:49:45 2001 ++++ source/dcc.c Fri Apr 25 04:07:12 2003 +@@ -1057,7 +1057,7 @@ + + if (ircncmp(msg, "PING", 4) == 0) + { +- notice(target, nick, msg - 1); ++ notice(target, nick, "%s", msg - 1); + SendUmode(OPERUMODE_Y, + "%s: CTCP PING received from %s!%s@%s", + target, diff --git a/irc/dancer-services/files/patch-log.c b/irc/dancer-services/files/patch-log.c new file mode 100644 index 0000000..e9ed377 --- /dev/null +++ b/irc/dancer-services/files/patch-log.c @@ -0,0 +1,14 @@ +--- source/log.c.orig Wed Nov 14 04:49:45 2001 ++++ source/log.c Fri Apr 25 04:02:23 2003 +@@ -214,9 +214,8 @@ + va_end(args); + + /* log the command */ +- stripformatsymbols( buffer ); +- putlog(LOG2, buffer); ++ putlog(LOG2, "%s", buffer); + + /* send it to opers with usermode +s */ +- SendUmode(OPERUMODE_S, buffer); ++ SendUmode(OPERUMODE_S, "%s", buffer); + } /* RecordCommand() */ diff --git a/irc/dancer-services/files/patch-server.c b/irc/dancer-services/files/patch-server.c new file mode 100644 index 0000000..a9419f9 --- /dev/null +++ b/irc/dancer-services/files/patch-server.c @@ -0,0 +1,15 @@ +--- source/server.c.orig Tue Mar 25 06:09:13 2003 ++++ source/server.c Fri Apr 25 04:09:10 2003 +@@ -1029,12 +1029,6 @@ + I moved this code from below for smoother source tweak -kre */ + command = av[3] + 1; + +- /* Obviously, this code down strips '%'. But what if some valid string +- contains regular '%' and it should _not_ be stripped, ie. passwd +- string? So, I'll add search for IDENTIFY string. -kre */ +- if (ircncmp(command, "IDENTIFY", 8)) +- stripformatsymbols(av[3]); +- + if (RestrictedAccess) + { + /* diff --git a/irc/dancer-services/pkg-deinstall b/irc/dancer-services/pkg-deinstall new file mode 100644 index 0000000..307194a --- /dev/null +++ b/irc/dancer-services/pkg-deinstall @@ -0,0 +1,56 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +ask() { + local question default answer + + question=$1 + default=$2 + if [ -z "$BATCH" ]; then + read -p "${question} [${default}]? " answer + fi + if [ x${answer} = x ]; then + answer=${default} + fi + echo ${answer} +} + +yesno() { + local dflt question answer + + question=$1 + dflt=$2 + while :; do + answer=$(ask "${question}" "${dflt}") + case "${answer}" in + [Yy]*) return 0;; + [Nn]*) return 1;; + esac + echo "Please answer yes or no." + done +} + +delete_account() { + local u g + + u=$1 + g=$2 + if yesno "Do you want me to remove group \"${g}\"" y; then + pw groupdel -n ${g} + echo "Done." + fi + if yesno "Do you want me to remove user \"${u}\"" y; then + pw userdel -n ${u} + echo "Done." + fi +} + +if [ "$2" != "POST-DEINSTALL" ]; then + exit 0 +fi + +if [ -n "$PACKAGE_BUILDING" ]; then + delete_account ircservices ircservices +fi diff --git a/irc/dancer-services/pkg-install b/irc/dancer-services/pkg-install index 6f75b09..1e5fa25 100644 --- a/irc/dancer-services/pkg-install +++ b/irc/dancer-services/pkg-install @@ -12,7 +12,7 @@ ask() { question=$1 default=$2 - if [ -z "${PACKAGE_BUILDING}" ]; then + if [ -z "${BATCH}" ]; then read -p "${question} [${default}]? " answer fi if [ x${answer} = x ]; then @@ -36,9 +36,7 @@ yesno() { done } -if which -s pw ; then - : -else +if ! which -s pw ; then cat <<EOF Your system does not include the "pw" utility. You should upgrade to a newer version of FreeBSD. Without "pw" this script will not @@ -47,42 +45,50 @@ EOF exit 1 fi +uid=73 +user=ircservices +gid=$uid +group=$user +gecos="IRC services" +shell=/nonexistent +home=/nonexistent + echo "" -if pw groupshow ircservices 2> /dev/null ; then - echo "You already have a group \"ircservices\", so I will use it." +if pw groupshow $group 2> /dev/null ; then + echo "You already have a group \"$group\", so I will use it." else - if pw groupshow 73 2> /dev/null ; then - echo "You already have a gid \"73\". Please create a user \"ircservices\"" - echo "with a default group of \"ircservices\"." + if pw groupshow $gid 2> /dev/null ; then + echo "You already have a gid \"$gid\". Please create a user \"$group\"" + echo "with a default group of \"$group\"." exit 1 fi - echo "You need a group \"ircservices\"." + echo "You need a group \"$group\"." if which -s pw && yesno "Would you like me to create it" y; then - pw groupadd ircservices -g 73 || exit + pw groupadd $group -g $gid || exit echo "Done." else echo "Please create it, and try again." - if ! pw usershow ircservices 2> /dev/null ; then - echo "While you're at it, please create a user \"ircservices\"" - echo 'too, with a default group of "ircservices".' + if ! pw usershow $user 2> /dev/null ; then + echo "While you're at it, please create a user \"$user\"" + echo 'too, with a default group of "$group".' fi exit 1 fi fi -if pw usershow ircservices 2> /dev/null ; then - echo "You already have a user \"ircservices\", so I will use it." +if pw usershow $user 2> /dev/null ; then + echo "You already have a user \"$user\", so I will use it." else - if pw usershow 73 2> /dev/null ; then - echo "You already have a uid \"73\". Please create a user \"irc + if pw usershow $uid 2> /dev/null ; then + echo "You already have a uid \"$uid\". Please create a user \"irc d\"" - echo "with a default group of \"ircservices\"." + echo "with a default group of \"$group\"." exit 1 fi - echo "You need a user \"ircservices\"." + echo "You need a user \"$user\"." if which -s pw && yesno "Would you like me to create it" y; then - pw useradd ircservices -g ircservices -u 73 -h - -d /nonexistent \ - -s /nonexistent -c "IRC Services" || exit + pw useradd $user -g $group -u $uid -h - -d $home \ + -s $shell -c "$gecos" || exit echo "Done." else echo "Please create it, and try again." |