summaryrefslogtreecommitdiffstats
path: root/irc
diff options
context:
space:
mode:
authorknu <knu@FreeBSD.org>2003-04-24 20:19:31 +0000
committerknu <knu@FreeBSD.org>2003-04-24 20:19:31 +0000
commit7896755f1f03da2721c585657a2f70b5dac4c0f8 (patch)
tree39c05002b4a839f0fb7de8c7e73a679b77341f92 /irc
parente558011b0684532adf6086088c98d1fcd3bcb8b2 (diff)
downloadFreeBSD-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/Makefile2
-rw-r--r--irc/dancer-services/files/patch-dcc.c11
-rw-r--r--irc/dancer-services/files/patch-log.c14
-rw-r--r--irc/dancer-services/files/patch-server.c15
-rw-r--r--irc/dancer-services/pkg-deinstall56
-rw-r--r--irc/dancer-services/pkg-install50
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."
OpenPOWER on IntegriCloud