Subject: pkg/14887: maintainer update of the chat/silc-server package to version 0.7.1
To: None <gnats-bugs@gnats.netbsd.org>
From: Lubomir Sedlacik <salo@silcnet.org>
List: netbsd-bugs
Date: 12/10/2001 05:11:34
>Number:         14887
>Category:       pkg
>Synopsis:       maintainer update of the chat/silc-server package to version 0.7.1
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Dec 09 21:12:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Lubomir Sedlacik
>Release:        -current
>Organization:
>Environment:
>Description:

hi,

please update the silc-server package to version 0.7.1.


changes in the netbsd's package from version 0.6.4 -> 0.7.1:

   - upgrade to silc-server-0.7.1 (the main changes below)
     the biggest change is the ipv6 support (new configuration file format is
     needed, though)

   - removed patch-ac because it was integrated into distribution
     (patch-ad was moved in its place)

   - completely rewritten rc.d script to use rc.subr instead and fixed the
     problem with removing pidfile so now status) works fine.

   - added default motd file

   - INSTALL and DEINSTALL scripts are cleaner and more useful, check for logs
     directory before creating it, added motd.txt installing/removing.

   - better and more helpful default configuration file (added Example:
     sections for each variable)

   - added examples/ directory containing sample configurations of various
     scenarios into $DOCDIR


changes in the silc-server itself:

        o Fixed WHOIS and IDENTIFY commands to return correct replies,
          and correct error replies.  This fixes various weird bugs
          related to these commands.

        o Send NO_SUCH_CLIENT_ID error notify if received private
          message to invalid Client ID.  It is guaranteed that if
          private message is sent to unknown client, the sender will
          receive a notification for it.

        o Send the kicker's information in KICK command to the kicked
          client.

        o Fixed LIST command to return correct amount of channels.
          This fixes the weird bug that LIST would show like 50 channels
          and some channels multiple times.

        o Channel topics, and users SILC modes are announced now during
          server->router connecting.

        o Implemented the founder authentication during JOIN command.

        o Support for IPv6 based Server ID added.

        o Memory leak fixes.


>How-To-Repeat:
>Fix:

this is the new file files/motd.txt:

diff -bu /dev/null files/motd.txt 
--- /dev/null   Mon Dec 10 05:08:45 2001
+++ files/motd.txt      Mon Dec 10 05:56:43 2001
@@ -0,0 +1,10 @@
+-
+- Message of the Day:
+-
+- This is new installed SILC Server from the NetBSD pkgsrc package.
+-
+- Example configuration files are located in the following directory:
+-   @PREFIX@/share/doc/silcd/examples/
+-
+- For more information about the SILC browse to http://silcnet.org/
+-

i am not sure how to handle rcs id here. if you think it is needed there, just
add one line please. it won't hurt and i'll maybe add removing of the line
before installing it in the future.


and the rest follows:

Index: DEINSTALL
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/DEINSTALL,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 DEINSTALL
20c20
< CONFFILES="silcd.conf"
---
> CONFFILES="silcd.conf motd.txt"
Index: INSTALL
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/INSTALL,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 INSTALL
18c18
< CONFFILES="silcd.conf"
---
> CONFFILES="silcd.conf motd.txt"
26a27
> 	${MKDIR} ${SERVERROOT}
34,35c35,43
< 	${MKDIR} ${SERVERROOT}
< 	${MKDIR} ${LOGDIR}
---
> 	if [ -d ${LOGDIR} ]
> 	then
> 		echo "        WARNING: ${LOGDIR} already exists, owner"
> 		echo "                 and permissions may be changed."
> 	else
> 		${MKDIR} ${LOGDIR}
> 		echo "        ${LOGDIR}"
> 	fi
> 
38d45
< 	echo "        ${LOGDIR}"
61d67
< 			${CHMOD} 600 ${FILE}
63a70,71
> 	${CHMOD} 600 ${CONFDIR}/silcd.conf
> 	${CHMOD} 644 ${CONFDIR}/motd.txt
66c74
<   * you might need to customize your configuration file
---
>   * you might need to customize your configuration file and the MOTD
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/Makefile,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 Makefile
3c3
< DISTNAME=		silc-server-0.6.4
---
> DISTNAME=		silc-server-0.7.1
52c52
< post-build:
---
> pre-install:
55a56
> 	${SED} ${FILES_SUBST_SED} ${FILESDIR}/motd.txt > ${WRKDIR}/motd.txt
57a59
> 	${INSTALL_SCRIPT} ${WRKDIR}/motd.txt ${PREFIX}/share/doc/silcd/motd.txt.default
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/PLIST,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 PLIST
11a12,26
> share/doc/silcd/motd.txt.default
> share/doc/silcd/examples/README
> share/doc/silcd/examples/cell1_backup.conf
> share/doc/silcd/examples/cell1_router.conf
> share/doc/silcd/examples/cell1_server1.conf
> share/doc/silcd/examples/cell1_server2.conf
> share/doc/silcd/examples/cell2_router.conf
> share/doc/silcd/examples/cell2_server1.conf
> share/doc/silcd/examples/cell2_server2.conf
> share/doc/silcd/examples/cell3_router.conf
> share/doc/silcd/examples/cell3_server1.conf
> share/doc/silcd/examples/cell3_server2.conf
> share/doc/silcd/examples/silcd.prv
> share/doc/silcd/examples/silcd.pub
> @dirrm share/doc/silcd/examples
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/distinfo,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 distinfo
3,5c3,5
< SHA1 (silc-server-0.6.4.tar.bz2) = d53aabb36b0e24b365fd49a433d635eba1cb62b9
< Size (silc-server-0.6.4.tar.bz2) = 1002604 bytes
< SHA1 (patch-aa) = eafe1def396397b9e32581420ac35a32fb35cfa4
---
> SHA1 (silc-server-0.7.1.tar.bz2) = e6b71679c5f10d2982bfbd0a6188fffa310fcce5
> Size (silc-server-0.7.1.tar.bz2) = 1092236 bytes
> SHA1 (patch-aa) = b0d1100685af0e429a4405abf601d53bd8550fff
7,8c7
< SHA1 (patch-ac) = 9aee9c5b74f0c59ae38a89f339bb0d5a96e789d6
< SHA1 (patch-ad) = af7435aae8da43041c8931b9b648415b83a5ffb3
---
> SHA1 (patch-ac) = 84e7e136d32b76a05654ddb07f65ab9c3a70efe2
Index: files/silcd.sh
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/files/silcd.sh,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 silcd.sh
7a8,9
> . /etc/rc.subr
> 
9a12,15
> command="@PREFIX@/sbin/silcd"
> start_precmd="silcd_precmd"
> stop_cmd="silcd_stop"
> confdir="@SILCD_CONF_DIR@"
11,29c17,22
< command=${1:-start}
< 
< case ${command} in
< start)
< 	if [ ! -f @SILCD_CONF_DIR@/silcd.prv ]
< 	then
< 		@PREFIX@/sbin/silcd -C @SILCD_CONF_DIR@
< 	fi
< 	if [ -x @PREFIX@/sbin/silcd -a -f @SILCD_CONF_DIR@/silcd.conf ]
< 	then
< 		echo "Starting ${name}."
< 		@PREFIX@/sbin/silcd
< 	fi
< 	;;
< stop)
< 	if [ -f ${pidfile} ]; then
< 		pid=`head -1 ${pidfile}`
< 		echo "Stopping ${name}."
< 		kill -TERM ${pid}
---
> silcd_precmd()
> {
> 	if [ -f $confdir/silcd.conf ]; then
> 		if [ ! -f $confdir/silcd.prv ]; then
> 			$command -C $confdir
> 		fi
31c24
< 		echo "${name} not running?"
---
> 		warn "Cannot open $confdir/silcd.conf"
33,44c26,36
< 	;;
< restart)
< 	( $0 stop )
< 	sleep 1
< 	$0 start
< 	;;
< status)
< 	if [ -f ${pidfile} ]; then
< 		pid=`head -1 ${pidfile}`
< 		echo "${name} is running as pid ${pid}."
< 	else
< 		echo "${name} is not running."
---
> }
> 
> silcd_stop()
> {
> 	if [ -z "$_pid" ]; then
> 		if [ -n "$pidfile" ]; then
> 			echo "${name} not running? (check $pidfile)."
> 		else
> 			echo "${name} not running?"
> 		fi
> 		exit 1
46,48c38,54
< 	;;
< esac
< exit 0
---
> 
> 	if ! eval $_precmd && [ -z "$_rc_force_run" ]; then
> 		return 1
> 	fi      
> 
> 	echo "Stopping ${name}."
> 	_doit=\
> "${_user:+su -m $_user -c '}kill -${sig_stop:-TERM} $_pid${_user:+'}"
> 	eval $_doit
> 
> 	eval $_pidcmd
> 	if [ ! $_pid ]; then
> 		rm -f $pidfile
> 	fi
> }
> 
> run_rc_command "$1"
Index: patches/patch-aa
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/patches/patch-aa,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 patch-aa
3,5c3,5
< --- Makefile.in.orig	Sun Nov 11 18:02:38 2001
< +++ Makefile.in	Tue Nov 13 18:42:52 2001
< @@ -511,25 +511,12 @@
---
> --- Makefile.in.orig	Sun Dec  9 21:24:29 2001
> +++ Makefile.in	Sun Dec  9 23:09:26 2001
> @@ -528,25 +528,12 @@
32,34c32,34
< @@ -537,19 +524,8 @@
<  	$(INSTALL_DATA) $(srcdir)/INSTALL $(docdir)/
<  	$(INSTALL_DATA) $(srcdir)/TODO $(docdir)/
---
> @@ -560,19 +547,8 @@
>  	$(INSTALL_DATA) $(srcdir)/doc/examples/silc* $(docdir)/examples/
>  	$(INSTALL_DATA) $(srcdir)/doc/examples/cell* $(docdir)/examples/
48,49c48,49
< -@SILC_DIST_CLIENT_FALSE@install-data-hook: install-dirs generate-server-key sim-install doc-install etc-install
< +@SILC_DIST_CLIENT_FALSE@install-data-hook: install-dirs doc-install
---
> -@SILC_DIST_CLIENT_FALSE@install-data-hook: install-dirs generate-server-key sim-install doc-install examples-install etc-install
> +@SILC_DIST_CLIENT_FALSE@install-data-hook: install-dirs doc-install examples-install
Index: patches/patch-ac
===================================================================
RCS file: /cvsroot/pkgsrc/chat/silc-server/patches/patch-ac,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 patch-ac
3,15c3,234
< --- lib/silcmath/mpi/mpi-priv.h.orig    Sat Nov 24 20:06:50 2001
< +++ lib/silcmath/mpi/mpi-priv.h Sat Nov 24 20:07:51 2001
< @@ -242,3 +242,10 @@
<  /* }}} */
<  #endif
<  
< +#if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
< +# if defined restrict || 199901L <= __STDC_VERSION__           
< +#  define __restrict restrict                       
< +# else
< +#  define __restrict      
< +# endif
< +#endif
---
> --- doc/example_silcd.conf.in.orig	Thu Nov 29 21:23:19 2001
> +++ doc/example_silcd.conf.in	Sun Dec  9 23:47:33 2001
> @@ -8,25 +8,27 @@
>  # Configured ciphers.
>  #
>  # Format: <name>:<module path>:<key length>:<block length>
> +# Example: aes-256-cbc:/usr/local/lib/silc/aes.sim.so:32:16
>  #
>  # If the cipher is builtin the <module path> maybe omitted.
>  #
>  [Cipher]
> -aes-256-cbc:@MODULESDIR@/aes.sim.so:32:16
> -aes-192-cbc:@MODULESDIR@/aes.sim.so:24:16
> -aes-128-cbc:@MODULESDIR@/aes.sim.so:16:16
> -twofish-256-cbc:@MODULESDIR@/twofish.sim.so:32:16
> -twofish-192-cbc:@MODULESDIR@/twofish.sim.so:24:16
> -twofish-128-cbc:@MODULESDIR@/twofish.sim.so:16:16
> -mars-256-cbc:@MODULESDIR@/mars.sim.so:32:16
> -mars-192-cbc:@MODULESDIR@/mars.sim.so:24:16
> -mars-128-cbc:@MODULESDIR@/mars.sim.so:16:16
> -none:@MODULESDIR@/none.sim.so:0:0
> +aes-256-cbc::32:16
> +aes-192-cbc::24:16
> +aes-128-cbc::16:16
> +twofish-256-cbc::32:16
> +twofish-192-cbc::24:16
> +twofish-128-cbc::16:16
> +mars-256-cbc::32:16
> +mars-192-cbc::24:16
> +mars-128-cbc::16:16
> +none::0:0
>  
>  #
>  # Configured hash functions.
>  #
>  # Format: <name>:<module path>:<block length>:<digest length>
> +# Example: sha1::64:20
>  #
>  # If the hash function is builtin the <module path> maybe omitted.
>  #
> @@ -39,6 +41,7 @@
>  # configured to the [hash] section.
>  #
>  # Format: <name>:<hash name>:<mac length>
> +# Example: hmac-sha1-96:sha1:12
>  #
>  [hmac]
>  hmac-sha1-96:sha1:12
> @@ -50,6 +53,7 @@
>  # Configured PKCS.
>  #
>  # Format: <name>
> +# Example: rsa
>  #
>  [PKCS]
>  rsa
> @@ -59,6 +63,7 @@
>  # run as root.
>  #
>  # Format: <user>:<group>
> +# Example: silcd:silcd
>  #
>  [Identity]
>  nobody:nobody
> @@ -67,22 +72,25 @@
>  # Server's administrative information.
>  #
>  # Format: <location>:<server type>:<admin's name>:<admin's email address>
> +# Example: Kuopio, Finland:Test Server:Pekka Riikonen:priikone@poseidon.pspt.fi
>  #
>  [AdminInfo]
> -Kuopio, Finland:Test Server:Pekka Riikonen:priikone@poseidon.pspt.fi
> +Default Location:NetBSD Test Server:Root of All Evil:root@localhost
>  
>  #
>  # Server information.
>  #
> -# Format: +<server FQDN>:<server IP>:<geographic location>:<port>
> +# Format: <server FQDN>:<server IP>:<geographic location>:<port>
> +# Example: lassi.kuo.fi.ssh.com:10.2.1.6:Kuopio, Finland:706
>  #
>  [ServerInfo]
> -lassi.kuo.fi.ssh.com:10.2.1.6:Kuopio, Finland:706
> +localhost:127.0.0.1:Default Location:706
>  
>  #
>  # Server keys
>  #
> -# Format: +<public key>:<private key>
> +# Format: <public key>:<private key>
> +# Example: /usr/local/silc/etc/silcd.pub:/usr/local/silc/etc/silcd.prv
>  #
>  [ServerKeys]
>  @ETCDIR@/silcd.pub:@ETCDIR@/silcd.prv
> @@ -91,9 +99,10 @@
>  # Listenning ports.
>  #
>  # Format: <local IP>:<Listener IP>:<port>
> +# Example: 10.2.1.6:10.2.1.6:706
>  #
>  [ListenPort]
> -10.2.1.6:10.2.1.6:706
> +127.0.0.1:127.0.0.1:706
>  
>  #
>  # Log files.
> @@ -107,12 +116,13 @@
>  #         warninglogile:<path>:<max byte size>
>  #         errorlogile:<path>:<max byte size>
>  #         fatallogile:<path>:<max byte size>
> +# Example: infologfile:/usr/local/silc/logs/silcd.log:10000
>  #
>  [Logging]
>  infologfile:@LOGSDIR@/silcd.log:10000
> -#warninglogfile:@LOGSDIR@/silcd_warning.log:10000
> -#errorlogfile:@LOGSDIR@/error.log:10000
> -#fatallogfile:@LOGSDIR@/silcd_error.log:
> +warninglogfile:@LOGSDIR@/silcd_warning.log:10000
> +errorlogfile:@LOGSDIR@/error.log:10000
> +fatallogfile:@LOGSDIR@/silcd_error.log:
>  
>  #
>  # Connection classes.
> @@ -121,6 +131,7 @@
>  # used to optimize the server and the connections.#
>  #
>  # Format: <class number>:<ping freq>:<connect freq>:<max links>
> +# Example: 1:100:100:100
>  #
>  [ConnectionClass]
>  1:100:100:100
> @@ -130,6 +141,7 @@
>  # Configured client connections.
>  #
>  # Format: <remote host>:<auth method>:<auth data>:<port>:<class>
> +# Example: :::706:1
>  #
>  # The <auth data> is either passphrase or file path to the public key
>  # file.
> @@ -141,12 +153,13 @@
>  # Configured server administrator connections
>  #
>  # Format: <host>:<username>:<nickname>:<auth method>:<auth data>
> +# Example: 10.2.1.199:priikone:pekka:passwd:veryscret
>  #
>  # The <auth data> is either passphrase or file path to the public key
>  # file.
>  #
>  [AdminConnection]
> -10.2.1.199:priikone:pekka:passwd:veryscret
> +127.0.0.1:admin:admin:passwd:verysecret
>  
>  #
>  # Configured server connections.
> @@ -158,6 +171,10 @@
>  #
>  # Format: <remote host>:<auth method>:<auth data>:<port>:
>  #         <version ID>:<class>:<backup connection>
> +# Example: 10.2.1.7:passwd:veryscret:706:1:1:0
> +#          10.2.1.17:passwd:veryscret13:706:1:1:1   backup connection, that
> +#                                                   host will use this server
> +#                                                   as backup router.
>  #
>  # The <auth data> is either passphrase or file path to the public key
>  # file. If the connection is backup connection then set the <backup 
> @@ -165,10 +182,6 @@
>  # set to value 1 then this server will be backup router.
>  #
>  [ServerConnection]
> -10.2.1.7:passwd:veryscret:706:1:1:0
> -10.2.1.17:passwd:veryscret13:706:1:1:1   # backup connection, that host
> -                                         # will use this server as backup
> -                                         # router.
>  
>  #
>  # Configured router connections.
> @@ -181,6 +194,9 @@
>  # Format: <remote host>:<auth method>:<auth data>:<port>:<version ID>:
>  #         <class>:<initiator>:<backup replace IP>:<backup replace port>:
>  #         <local backup>
> +# Example: 10.2.1.100:passwd:veryverysecret:706:1:1:1
> +#          10.2.100.131:pubkey:/path/to/the/publickey:706:1:1:1
> +#          10.2.100.100:pubkey:/path/to/the/publickey:706:1:1:0:10.2.1.6:706:1
>  #
>  # The <auth data> is either passphrase or file path to the public key
>  # file. If you are the initiator of the connection then set the <initiator>
> @@ -195,9 +211,6 @@
>  # If the backup router is in other cell then set it to value 0.
>  #
>  [RouterConnection]
> -#10.2.1.100:passwd:veryverysecret:706:1:1:1
> -#10.2.100.131:pubkey:/path/to/the/publickey:706:1:1:1
> -#10.2.100.100:pubkey:/path/to/the/publickey:706:1:1:0:10.2.1.6:706:1
>  
>  #
>  # Denied connections.
> @@ -205,22 +218,28 @@
>  # These connections are denied to connect our server.
>  #
>  # Format: <remote host>:<port>:<comment>
> +# Example: 10.2.1.99:0:Your connection has been denied
>  #
>  [DenyConnection]
> -#10.2.1.99:0:Your connection has been denied
>  
>  #
>  # Message Of The Day
>  #
> -# specify the text file containing the motd:
> +# Specify the text file containing the motd.
>  #
> -#[motd]
> -#@ETCDIR@/motd.txt
> +# Format: <filename>
> +# Example: /usr/local/silc/etc/motd.txt
> +#
> +[motd]
> +@ETCDIR@/motd.txt
>  
>  #
> -# Pid File
> +# Pidfile
> +#
> +# Specify the pidfile where it will be written.
>  #
> -# specify the pidfile where it will be written:
> +# Format: <filename>
> +# Example: /var/run/silcd.pid
>  #
>  [pid]
> -@PIDFILE@
> +/var/run/silcd.pid
>Release-Note:
>Audit-Trail:
>Unformatted: