Date: Sun, 12 Feb 2012 17:20:41 +0100 (CET) From: Martin Matuska <mm@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Cc: chifeng@gmail.com Subject: ports/165040: [PATCH] mail/sqlgrey: improve port Message-ID: <20120212162041.2D3FC10DC5@neo.vx.sk> Resent-Message-ID: <201202121630.q1CGUALP002573@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 165040 >Category: ports >Synopsis: [PATCH] mail/sqlgrey: improve port >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: Sun Feb 12 16:30:10 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Martin Matuska >Release: FreeBSD 9.0-STABLE amd64 >Organization: >Environment: System: FreeBSD neo.vx.sk 9.0-STABLE FreeBSD 9.0-STABLE #14 r231187M: Wed Feb 8 08:19:42 >Description: Use UID/GID framework from ports, set uid/gid to 226. Add rcng pidfile control and pidfile support from command line. Add support to listen on UNIX sockets. Added file(s): - files/patch-pidfile - files/patch-unixsockets Port maintainer (chifeng@gmail.com) is cc'd. Generated with FreeBSD Port Tools 0.99 >How-To-Repeat: >Fix: --- sqlgrey-1.8.0.r2.patch begins here --- Index: Makefile =================================================================== RCS file: /home/pcvs/ports/mail/sqlgrey/Makefile,v retrieving revision 1.19 diff -u -r1.19 Makefile --- Makefile 3 Jun 2011 11:25:11 -0000 1.19 +++ Makefile 12 Feb 2012 16:19:17 -0000 @@ -22,12 +22,12 @@ NO_BUILD= yes ETCFILES= clients_fqdn_whitelist clients_ip_whitelist dyn_fqdn.regexp smtp_server.regexp sqlgrey.conf -SGY_USERNAME?= sqlgrey -SGY_GROUPNAME?= ${SGY_USERNAME} +USERS= sqlgrey +GROUPS= ${USERS} ETCDIR?= etc/sqlgrey SUB_FILES= pkg-install -MY_SUB_LIST= ETCDIR=${ETCDIR} ETCFILES="${ETCFILES}" USER=${SGY_USERNAME} GROUP=${SGY_GROUPNAME} PERL=${PERL} +MY_SUB_LIST= ETCDIR=${ETCDIR} ETCFILES="${ETCFILES}" USER=${USERS} GROUP=${GROUPS} PERL=${PERL} SUB_LIST+= ${MY_SUB_LIST} PLIST_SUB= TOUCH=${TOUCH} ${MY_SUB_LIST} Index: files/patch-pidfile =================================================================== RCS file: files/patch-pidfile diff -N files/patch-pidfile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-pidfile 12 Feb 2012 16:19:17 -0000 @@ -0,0 +1,23 @@ +--- sqlgrey.orig 2010-02-01 10:59:53.000000000 +0100 ++++ sqlgrey 2012-02-12 17:14:41.328884011 +0100 +@@ -2542,7 +2542,7 @@ + # options parsing + my %opt = (); + GetOptions(\%opt, 'help|h', 'man', 'version', 'configfile|f=s', +- 'daemonize|d', 'kill|k') ++ 'daemonize|d', 'kill|k', 'pidfile|p=s') + or exit(1); + + if ($opt{help}) { pod2usage(1) } +@@ -2564,6 +2564,11 @@ + $dflt{dont_db_clean} = (-e $dflt{conf_dir}."/dont_db_clean"); + } + ++ # Check pidfile from command line arguments ++ if (defined $opt{pidfile}) { ++ $dflt{pidfile} = $opt{pidfile}; ++ } ++ + # Are we on a killing spray ? + if (defined $opt{kill}) { + my $pidfile = $dflt{pidfile}; Index: files/patch-unixsockets =================================================================== RCS file: files/patch-unixsockets diff -N files/patch-unixsockets --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-unixsockets 12 Feb 2012 16:19:17 -0000 @@ -0,0 +1,70 @@ +--- etc/sqlgrey.conf.orig 2010-02-01 10:59:53.000000000 +0100 ++++ etc/sqlgrey.conf 2012-02-12 16:52:18.757881415 +0100 +@@ -66,6 +66,8 @@ + # On which socket do SQLgrey wait for queries + # use the following if you need to bind on a public IP address + # inet = <public_ip>:2501 ++# to bind on a UNIX socket, use the following: ++# unix = /path/to/socket + # default : + # inet = 2501 # bind to localhost:2501 + +--- sqlgrey.orig 2010-02-01 10:59:53.000000000 +0100 ++++ sqlgrey 2012-02-12 17:03:56.689885169 +0100 +@@ -58,7 +58,8 @@ + $dflt{loglevel} = 2; # used for $dflt{log} entries in read_conffile() + $dflt{user} = 'sqlgrey'; + $dflt{group} = 'sqlgrey'; +-$dflt{inet} = '2501'; ++$dflt{proto} = 'tcp'; ++$dflt{port} = 'localhost:2501'; + $dflt{pidfile} = '/var/run/sqlgrey.pid'; + $dflt{conf_dir} = '/etc/sqlgrey'; + $dflt{reconnect_delay} = 5; # 5 minutes +@@ -2578,8 +2579,16 @@ + } + + # bind only localhost if no host is specified +- if(defined $dflt{inet} and $dflt{inet}=~/^\d+$/) { +- $dflt{inet} = "localhost:$dflt{inet}"; ++ if(defined $dflt{inet}) { ++ $dflt{proto} = "tcp"; ++ if ($dflt{inet}=~/^\d+$/) { ++ $dflt{port} = "localhost:$dflt{inet}"; ++ } else { ++ $dflt{port} = $dflt{inet}; ++ } ++ } elsif (defined $dflt{unix}) { ++ $dflt{proto} = "unix"; ++ $dflt{port} = $dflt{unix} ."|unix"; + } + + # set the actual reject code values +@@ -2604,8 +2613,8 @@ + my $server = bless { + server => { + commandline => [ $0, @ARGV_saved ], +- port => [ $dflt{inet} ], +- proto => 'tcp', ++ port => [ $dflt{port} ], ++ proto => $dflt{proto}, + user => $dflt{user}, + group => $dflt{group}, + setsid => $opt{daemonize} ? 1 : undef, +@@ -2675,6 +2684,16 @@ + ## Net::Server::Multiplex methods ## + #################################### + ++sub post_bind_hook() ++{ ++ my ($self) = @_; ++ ++ # unix socket permissions should be 666 ++ if($self->{server}{port}[0] =~ /^(.*)\|unix$/) { ++ chmod 0666, $1; ++ } ++} ++ + # Called before the first query comes. + sub pre_loop_hook() { + my $self = shift; Index: files/pkg-install.in =================================================================== RCS file: /home/pcvs/ports/mail/sqlgrey/files/pkg-install.in,v retrieving revision 1.2 diff -u -r1.2 pkg-install.in --- files/pkg-install.in 6 Nov 2006 19:46:25 -0000 1.2 +++ files/pkg-install.in 12 Feb 2012 16:19:17 -0000 @@ -15,23 +15,6 @@ exit 1 fi - # Create group if required - if /usr/sbin/pw group show "%%GROUP%%" >/dev/null 2>&1; then - echo "---> Using existing group \"%%GROUP%%\"" - else - echo "---> Adding group \"%%GROUP%%\"" - /usr/sbin/pw groupadd %%GROUP%% || exit 1 - fi - - # Create user if required - if /usr/sbin/pw user show "%%USER%%" >/dev/null 2>&1; then - echo "---> Using existing user \"%%USER%%\"" - else - echo "---> Adding user \"%%USER%%\"" - /usr/sbin/pw useradd "%%USER%%" -g "%%GROUP%%" -h - \ - -d "%%DATADIR%%" -s "/sbin/nologin" -c "Sqlgrey Owner" || exit 1 - fi - # Create home directory if required if [ -d "%%DATADIR%%" ]; then echo "---> Using existing Sqlgrey database directory (%%DATADIR%%)" @@ -47,14 +30,8 @@ POST-DEINSTALL) - echo "---> Please, remember to remove the user and the group with :" - if /usr/sbin/pw user show "%%USER%%" >/dev/null 2>&1; then - echo " /usr/sbin/pw userdel -n %%USER%%" - fi - if /usr/sbin/pw group show "%%GROUP%%" >/dev/null 2>&1; then - echo " /usr/sbin/pw groupdel -n %%GROUP%%" - fi - echo " as well as the databases." + echo "---> Please, remember to remove the database directory:" + echo " %%DATADIR%%" echo " If you're only updating, you can leave the things as they are." ;; Index: files/sqlgrey.in =================================================================== RCS file: /home/pcvs/ports/mail/sqlgrey/files/sqlgrey.in,v retrieving revision 1.3 diff -u -r1.3 sqlgrey.in --- files/sqlgrey.in 14 Jan 2012 08:56:05 -0000 1.3 +++ files/sqlgrey.in 12 Feb 2012 16:19:18 -0000 @@ -24,16 +24,17 @@ stop_postcmd=${name}_poststop -sqlgrey_poststop() -{ - rm -f $pidfile -} - load_rc_config $name sqlgrey_enable=${sqlgrey_enable-"NO"} required_files=${sqlgrey_config-"%%PREFIX%%/%%ETCDIR%%/sqlgrey.conf"} +pidfile=${sqlgrey_pidfile-"/var/run/sqlgrey.pid"} -command_args="--configfile=${required_files} --daemonize" +command_args="--configfile=${required_files} --pidfile=${pidfile} --daemonize" + +sqlgrey_poststop() +{ + rm -f $pidfile +} run_rc_command "$1" Index: UIDs =================================================================== RCS file: /home/pcvs/ports/UIDs,v retrieving revision 1.185 diff -u -r1.185 UIDs --- UIDs 2 Feb 2012 13:05:18 -0000 1.185 +++ UIDs 12 Feb 2012 14:51:07 -0000 @@ -116,6 +116,7 @@ drizzle:*:213:213::0:0:Drizzle daemon:/var/db/drizzle:/usr/sbin/nologin bs:*:220:220::0:0:Big Sister:/usr/local/bigsister:/bin/sh postgrey:*:225:225::0:0:Postgrey Owner:/nonexistent:/usr/sbin/nologin +sqlgrey:*:226:226::0:0:SQLgrey Owner:/nonexistent:/usr/sbin/nologin aprsd:*:240:240::0:0:aprsd:/nonexistent:/bin/sh tnc:*:241:241::0:0:aprsd:/nonexistent:/bin/sh prosody:*:242:242::0:0:Prosody Jabber Server:/nonexistent:/usr/sbin/nologin Index: GIDs =================================================================== RCS file: /home/pcvs/ports/GIDs,v retrieving revision 1.163 diff -u -r1.163 GIDs --- GIDs 12 Jan 2012 13:14:44 -0000 1.163 +++ GIDs 12 Feb 2012 14:51:07 -0000 @@ -109,6 +109,7 @@ drizzle:*:213: bs:*:220: postgrey:*:225: +sqlgrey:*:226: kismet:*:229: aprsd:*:240: tnc:*:241: --- sqlgrey-1.8.0.r2.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120212162041.2D3FC10DC5>