From owner-freebsd-ports-bugs@FreeBSD.ORG Tue Jan 8 14:50:01 2008 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA2AB16A41B for ; Tue, 8 Jan 2008 14:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B838213C44B for ; Tue, 8 Jan 2008 14:50:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m08Eo1gx020312 for ; Tue, 8 Jan 2008 14:50:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m08Eo1PW020311; Tue, 8 Jan 2008 14:50:01 GMT (envelope-from gnats) Resent-Date: Tue, 8 Jan 2008 14:50:01 GMT Resent-Message-Id: <200801081450.m08Eo1PW020311@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Daniel Roethlisberger Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6136916A421 for ; Tue, 8 Jan 2008 14:47:12 +0000 (UTC) (envelope-from roe@calvin.roe.ch) Received: from calvin.roe.ch (calvin.roe.ch [213.144.141.26]) by mx1.freebsd.org (Postfix) with ESMTP id 1E54D13C4EB for ; Tue, 8 Jan 2008 14:47:12 +0000 (UTC) (envelope-from roe@calvin.roe.ch) Received: from roe by calvin.roe.ch (envelope-from ) with LOCAL (auth=roe) id 1JCF2s-0005NX-G5 ; Tue, 08 Jan 2008 15:03:10 +0100 Message-Id: Date: Tue, 08 Jan 2008 15:03:10 +0100 From: Daniel Roethlisberger Sender: Daniel Roethlisberger To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: daniel@roe.ch Subject: ports/119452: [patch] net/iodine - add rc script, UID/GID X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Roethlisberger List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jan 2008 14:50:01 -0000 >Number: 119452 >Category: ports >Synopsis: [patch] net/iodine - add rc script, UID/GID >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Jan 08 14:50:00 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Daniel Roethlisberger >Release: FreeBSD 6.2-RELEASE-p9 i386 >Organization: >Environment: System: FreeBSD calvin.roe.ch 6.2-RELEASE-p9 FreeBSD 6.2-RELEASE-p9 #0: Thu Nov 29 04:22:49 UTC 2007 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/SMP i386 >Description: Added files: files/iodined.in pkg-install Changes: * Add an rc script for automatically running iodined. It supports various options, including chroot/setuid support which "just works" and sensible defaults where they make sense. * Create user/group _iodined. * Symlink iodined(8) to iodine(8). * Fix pkg-message and actually display it in post-install. Note that there is a separate diff against /usr/ports/[UG]IDs >How-To-Repeat: Install iodine and notice that you have to run the daemon manually and that there is no manual page for iodined (only iodine). >Fix: --- iodine-rc.diff begins here --- diff -ruN iodine.orig/Makefile iodine/Makefile --- iodine.orig/Makefile Sat Dec 15 10:10:34 2007 +++ iodine/Makefile Tue Jan 8 14:18:17 2008 @@ -7,6 +7,7 @@ PORTNAME= iodine PORTVERSION= 0.4.1 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= http://code.kryo.se/iodine/ @@ -18,6 +19,8 @@ PORTDOCS= CHANGELOG README TODO MAN8= iodine.8 +MLINKS= iodine.8 iodined.8 +USE_RC_SUBR= iodined .include @@ -36,5 +39,9 @@ ${INSTALL_DATA} ${WRKSRC}/${f} ${DOCSDIR} .endfor .endif + +post-install: + @${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL + @${CAT} ${PKGMESSAGE} .include diff -ruN iodine.orig/files/iodined.in iodine/files/iodined.in --- iodine.orig/files/iodined.in Thu Jan 1 01:00:00 1970 +++ iodine/files/iodined.in Tue Jan 8 14:30:38 2008 @@ -0,0 +1,49 @@ +#!/bin/sh + +# PROVIDE: iodined +# REQUIRE: LOGIN +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# iodined_enable (bool): Set to NO by default. +# Set it to YES to enable iodined. +# iodined_password (string): Not set by default, mandatory. +# Password used for client authentication. +# Note that the password will be visible to ps(1) et al. +# iodined_domain (string): Not set by default, mandatory. +# Tunnel domain delegated to iodined, e.g. "t.example.net". +# iodined_addr (string): Set to 172.16.0.1 by default. +# IPv4 address used for the daemon end of the tunnel. +# iodined_flags (string): Set to "-u _iodined -t /var/empty" by default. +# Additional flags to iodined, see manual page. +# + +. %%RC_SUBR%% + +name="iodined" +rcvar="${name}"_enable + +command=%%PREFIX%%/sbin/"${name}" + +load_rc_config "$name" + +: ${iodined_enable="NO"} +: ${iodined_password=""} +: ${iodined_domain=""} +: ${iodined_addr="172.16.0.1"} +: ${iodined_flags="-u _iodined -t /var/empty"} + +if checkyesno iodined_enable; then + if [ -z "$iodined_password" ]; then + err 1 'Must set $iodined_password in rc.conf or rc.conf.local' + fi + if [ -z "$iodined_domain" ]; then + err 1 'Must set $iodined_domain in rc.conf or rc.conf.local' + fi +fi + +command_args="-P $iodined_password $iodined_addr $iodined_domain" + +run_rc_command "$1" + diff -ruN iodine.orig/pkg-install iodine/pkg-install --- iodine.orig/pkg-install Thu Jan 1 01:00:00 1970 +++ iodine/pkg-install Tue Jan 8 12:25:01 2008 @@ -0,0 +1,36 @@ +#!/bin/sh + +case $2 in +POST-INSTALL) + USER=_iodined + GROUP=${USER} + UID=353 + GID=${UID} + PW=/usr/sbin/pw + + if ${PW} group show "${GROUP}" 2>/dev/null; then + echo "You already have a group \"${GROUP}\", so I will use it." + else + if ${PW} groupadd ${GROUP} -g ${GID}; then + echo "Added group \"${GROUP}\"." + else + echo "Adding group \"${GROUP}\" failed..." + exit 1 + fi + fi + + if ${PW} user show "${USER}" 2>/dev/null; then + echo "You already have a user \"${USER}\", so I will use it." + else + if ${PW} useradd ${USER} -u ${UID} -g ${GROUP} -h - \ + -d "/var/empty" -s /sbin/nologin -c "OSPF Daemon" + then + echo "Added user \"${USER}\"." + else + echo "Adding user \"${USER}\" failed..." + exit 1 + fi + fi + exit 0 + ;; +esac diff -ruN iodine.orig/pkg-message iodine/pkg-message --- iodine.orig/pkg-message Sat Feb 24 08:52:26 2007 +++ iodine/pkg-message Tue Jan 8 14:10:10 2008 @@ -1,19 +1,31 @@ -=== Quick Start === +**** This port installs the iodine daemon, but does not invoke iodined by + default. If you want to invoke iodined at startup, put these lines + into /etc/rc.conf or /etc/rc.conf.local: -Server: + iodined_enable="YES" # iodined enabled? + iodined_password="changeme" # password for clients + iodined_domain="t.example.net" # delegated tunnel domain -iodined -f -u nobody 10.0.0.1 tunnelhost.example.net + Optionally, you may override these defaults: -Client: + iodined_addr="172.16.0.1" # tunnel base IPv4 address + iodined_flags="-u _iodined -t /var/empty" # additional flags -iodine -f -u nobody 192.168.1.1 tunnelhost.example.net +**** You need to delegate the tunnel zone to your iodined instance. + Add lines like these to the DNS zone file for example.net: -You need add these lines to the DNS zone file: + iodinehost IN A 192.0.2.1 + t IN NS iodinehost.example.net. -tunnelhost IN A 192.168.1.1 -tunnel IN NS tunnelhost.example.net +**** If you want to start the server manually in the foreground, use + something like: -The server side of the tunnel is 10.0.0.1. + iodined -f -u _iodined -t /var/empty 172.16.0.1 t.example.net + + Run the client using something like: + + iodine -f -u _iodined -t /var/empty 192.168.1.1 t.example.net + + See iodine(1) for more information. -Please check README for details. --- iodine-rc.diff ends here --- --- iodine-uidgid.diff begins here --- --- UIDs.orig Sun Sep 30 09:19:48 2007 +++ UIDs Tue Jan 8 12:24:20 2008 @@ -102,6 +102,7 @@ dkfilter:*:325:325:DK Filter Owner:/nonexistent:/usr/sbin/nologin wildfire:*:340:340::0:0:Wildfire Daemon:/nonexistent:/usr/sbin/nologin stunnel:*:341:341::0:0:Stunnel Daemon:/nonexistent:/usr/sbin/nologin +_iodined:*:353:353:Iodine Daemon:/nonexistent:/usr/sbin/nologin ldap:*:389:389:OpenLDAP Server:/nonexistent:/usr/sbin/nologin tiarra:*:398:398:Tiarra IRC Proxy:/nonexistent:/usr/sbin/nologin drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/usr/sbin/nologin --- GIDs.orig Fri Sep 7 05:08:58 2007 +++ GIDs Tue Jan 8 12:24:29 2008 @@ -92,6 +92,7 @@ dkfilter:*:325: wildfire:*:340: stunnel:*:341: +_iodined:*:353: ldap:*:389: tiarra:*:398: drweb:*:426: --- iodine-uidgid.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: