Gentoo Archives: gentoo-commits

From: "Pacho Ramos (pacho)" <pacho@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in mail-filter/sqlgrey: sqlgrey-1.7.6-r1.ebuild ChangeLog
Date: Sun, 30 Mar 2014 13:53:08
Message-Id: 20140330135304.8D9FF20057@flycatcher.gentoo.org
1 pacho 14/03/30 13:53:04
2
3 Modified: ChangeLog
4 Added: sqlgrey-1.7.6-r1.ebuild
5 Log:
6 Add unit file (#504152 by Michael Hampicke)
7
8 (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
9
10 Revision Changes Path
11 1.16 mail-filter/sqlgrey/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/mail-filter/sqlgrey/ChangeLog?rev=1.16&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/mail-filter/sqlgrey/ChangeLog?rev=1.16&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/mail-filter/sqlgrey/ChangeLog?r1=1.15&r2=1.16
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/mail-filter/sqlgrey/ChangeLog,v
20 retrieving revision 1.15
21 retrieving revision 1.16
22 diff -u -r1.15 -r1.16
23 --- ChangeLog 5 Jun 2012 00:08:32 -0000 1.15
24 +++ ChangeLog 30 Mar 2014 13:53:04 -0000 1.16
25 @@ -1,6 +1,12 @@
26 # ChangeLog for mail-filter/sqlgrey
27 -# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/mail-filter/sqlgrey/ChangeLog,v 1.15 2012/06/05 00:08:32 zmedico Exp $
29 +# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
30 +# $Header: /var/cvsroot/gentoo-x86/mail-filter/sqlgrey/ChangeLog,v 1.16 2014/03/30 13:53:04 pacho Exp $
31 +
32 +*sqlgrey-1.7.6-r1 (30 Mar 2014)
33 +
34 + 30 Mar 2014; Pacho Ramos <pacho@g.o> +files/sqlgrey.service,
35 + +sqlgrey-1.7.6-r1.ebuild:
36 + Add unit file (#504152 by Michael Hampicke)
37
38 05 Jun 2012; Zac Medico <zmedico@g.o> sqlgrey-1.7.6.ebuild:
39 inherit user for enewgroup and enewuser
40 @@ -60,4 +66,3 @@
41 The ebuild is good quality and already support "emerge --config" so it has
42 only cosmetic changes to the submitted one.
43 Thanks Lionel :-)
44 -
45
46
47
48 1.1 mail-filter/sqlgrey/sqlgrey-1.7.6-r1.ebuild
49
50 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/mail-filter/sqlgrey/sqlgrey-1.7.6-r1.ebuild?rev=1.1&view=markup
51 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/mail-filter/sqlgrey/sqlgrey-1.7.6-r1.ebuild?rev=1.1&content-type=text/plain
52
53 Index: sqlgrey-1.7.6-r1.ebuild
54 ===================================================================
55 # Copyright 1999-2014 Gentoo Foundation
56 # Distributed under the terms of the GNU General Public License v2
57 # $Header: /var/cvsroot/gentoo-x86/mail-filter/sqlgrey/sqlgrey-1.7.6-r1.ebuild,v 1.1 2014/03/30 13:53:04 pacho Exp $
58
59 inherit eutils systemd user
60
61 DESCRIPTION="SQLgrey is a postfix policy service implementing a grey-listing policy"
62 SRC_URI="mirror://sourceforge/sqlgrey/${P}.tar.bz2"
63 HOMEPAGE="http://sqlgrey.sourceforge.net/"
64 LICENSE="GPL-2"
65 SLOT="0"
66 IUSE="mysql postgres sqlite"
67 RDEPEND="dev-lang/perl
68 dev-perl/DBI
69 dev-perl/net-server
70 dev-perl/Date-Calc
71 virtual/mailx
72 postgres? ( dev-perl/DBD-Pg )
73 sqlite? ( dev-perl/DBD-SQLite )
74 mysql? ( dev-perl/DBD-mysql )
75 !postgres? ( !mysql? ( !sqlite? ( dev-perl/DBD-Pg ) ) )"
76 DEPEND="$RDEPEND
77 sys-apps/sed"
78 KEYWORDS="~amd64 ~sparc ~x86"
79
80 pkg_setup() {
81 enewgroup sqlgrey
82 enewuser sqlgrey -1 -1 /var/spool/sqlgrey sqlgrey
83 }
84
85 src_unpack() {
86 unpack ${A}
87 epatch "${FILESDIR}/${P}-init.patch"
88 }
89
90 src_install () {
91 make gentoo-install ROOTDIR="${D}"
92 dodoc HOWTO FAQ README README.OPTINOUT README.PERF TODO Changelog
93
94 # keeps SQLgrey data in /var/spool/sqlgrey
95 diropts -m0775 -o sqlgrey -g sqlgrey
96 keepdir /var/spool/sqlgrey
97
98 systemd_dounit "${FILESDIR}/${PN}.service"
99 }
100
101 pkg_postinst() {
102 echo
103 einfo "To make use of greylisting, please update your postfix config."
104 einfo
105 einfo "Put something like this in /etc/postfix/main.cf:"
106 einfo " smtpd_recipient_restrictions ="
107 einfo " ..."
108 einfo " check_policy_service inet:127.0.0.1:2501"
109 einfo
110 einfo "Remember to restart Postfix after that change. Also remember"
111 einfo "to make the daemon start durig boot:"
112 einfo " rc-update add sqlgrey default"
113 einfo
114 echo
115 einfo "To setup SQLgrey to run out-of-the-box on your system, run:"
116 einfo "emerge --config ${PN}"
117 echo
118 ewarn "Read the documentation for more info (perldoc sqlgrey) or the"
119 ewarn "included howto /usr/share/doc/${PF}/HOWTO.gz"
120 echo
121 ewarn "If you are using MySQL >= 4.1 use \"latin1\" as charset for"
122 ewarn "the SQLgrey db"
123 echo
124 ebeep 2
125 epause 5
126 }
127
128 pkg_config () {
129
130 # SQLgrey configuration file
131 local SQLgrey_CONFIG="/etc/sqlgrey/sqlgrey.conf"
132 local SQLgrey_DB_USER_NAME="sqlgrey"
133 local SQLgrey_DB_NAME="sqlgrey"
134
135 # Check if a password is set in sqlgrey.conf
136 local SQLgrey_CONF_PWD=""
137 if [ -f "${SQLgrey_CONFIG}" ]; then
138 if (grep -iq "^[\t ]*db_pass[\t ]*=[\t ]*.*$" ${SQLgrey_CONFIG}); then
139 # User already has a db_pass entry
140 SQLgrey_CONF_PWD="$(sed -n 's:^[\t ]*db_pass[\t ]*=[\t ]*\(.*\)[\t ]*:\1:gIp' ${SQLgrey_CONFIG})"
141 else
142 SQLgrey_CONF_PWD=""
143 fi
144 else
145 ewarn "SQLgrey configuration missing. Exiting now."
146 echo
147 exit 0
148 fi
149
150 # Check if we need SQLgrey to configure for this system or not
151 local SQLgrey_DB_HOST="localhost"
152 local SQLgrey_KEY_INPUT="l,r,x"
153 einfo "SQLgrey database backend configuration"
154 einfo " Please select where SQLgrey database will run:"
155 einfo " [l] Database backend runs on localhost"
156 einfo " [r] Database backend runs on remote host"
157 einfo " [x] Exit"
158 echo
159 einfo " Press one of the keys [${SQLgrey_KEY_INPUT}]: "
160 while true; do
161 read -n 1 -s SQLgrey_ACCESS_TYPE
162 case "${SQLgrey_ACCESS_TYPE}" in
163 "r" | "R" )
164 SQLgrey_ACCESS_TYPE="r"
165 einfo " remote setup"
166 read -p " Please enter the remote hostname: " SQLgrey_DB_HOST
167 echo
168 break
169 ;;
170 "l" | "L" )
171 SQLgrey_ACCESS_TYPE="l"
172 einfo " local setup"
173 echo
174 break
175 ;;
176 "x" | "X" )
177 exit 0
178 ;;
179 esac
180 done
181
182 # Generate random password
183 if [[ "${SQLgrey_CONF_PWD}" == "" ]]; then
184 einfo "Generating random database user password..."
185 local SQLgrey_PWD_MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
186 local SQLgrey_DB_USER_PWD=""
187 while [ "${n:=1}" -le "16" ]; do
188 SQLgrey_DB_USER_PWD="${SQLgrey_DB_USER_PWD}${SQLgrey_PWD_MATRIX:$(($RANDOM%${#SQLgrey_PWD_MATRIX})):1}"
189 let n+=1
190 done
191 else
192 einfo "Reusing current database user password..."
193 local SQLgrey_DB_USER_PWD="${SQLgrey_CONF_PWD}"
194 fi
195 echo
196
197 # Configure the various database backends
198 local SQLgrey_KEY_INPUT=""
199 einfo "Creating SQLgrey database backend data and configuration"
200 einfo " Please select what kind of database you like to use:"
201 if use postgres || has_version dev-perl/DBD-Pg ; then
202 einfo " [p] PostgreSQL"
203 SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},p"
204 fi
205 if use mysql || has_version dev-perl/DBD-mysql ; then
206 einfo " [m] MySQL"
207 SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},m"
208 fi
209 if use sqlite || has_version dev-perl/DBD-SQLite ; then
210 einfo " [s] SQLite"
211 SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},s"
212 fi
213 einfo " [x] Exit"
214 SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},x"
215 echo
216 einfo " Press one of the keys [${SQLgrey_KEY_INPUT:1}]: "
217 while true; do
218 read -n 1 -s SQLgrey_DB_TYPE
219 case "${SQLgrey_DB_TYPE}" in
220 "p" | "P" )
221 SQLgrey_DB_TYPE="p"
222 einfo " PostgreSQL database backend"
223 echo
224 break
225 ;;
226 "m" | "M" )
227 SQLgrey_DB_TYPE="m"
228 einfo " MySQL database backend"
229 echo
230 break
231 ;;
232 "s" | "S" )
233 SQLgrey_DB_TYPE="s"
234 einfo " SQLite database backend"
235 echo
236 break
237 ;;
238 "x" | "X" )
239 exit 0
240 ;;
241 esac
242 done
243
244 # If we don't use SQLite, the password must not be set
245 if [[ ( "${SQLgrey_DB_TYPE}" != "s" ) && ( "${SQLgrey_CONF_PWD}" != "" ) ]]; then
246 ewarn "This configuration is only for new installations. You seem to"
247 ewarn "have already a modified sqlgrey.conf"
248 ewarn "Do you want to continue?"
249 SQLgrey_KEY_INPUT="y,n"
250 einfo " Press one of the keys [$SQLgrey_KEY_INPUT]: "
251 while true; do
252 read -n 1 -s SQLgrey_Ignore
253 case "$SQLgrey_Ignore" in
254 "y"|"Y" )
255 break
256 ;;
257 "n"|"N" )
258 exit 0
259 ;;
260 esac
261 done
262 fi
263
264 ## Per-RDBMS configuration ##
265 # POSTGRESQL
266 if [[ "${SQLgrey_DB_TYPE}" == "p" ]] ; then
267
268 ewarn "If prompted for a password, please enter your PgSQL postgres password"
269 ewarn ""
270
271 einfo "Creating SQLgrey PostgreSQL database \"${SQLgrey_DB_NAME}\" and user \"${SQLgrey_DB_USER_NAME}\""
272 /usr/bin/psql -h ${SQLgrey_DB_HOST} -d template1 -U postgres -c "CREATE USER ${SQLgrey_DB_USER_NAME} WITH PASSWORD '${SQLgrey_DB_USER_PWD}' NOCREATEDB NOCREATEUSER; CREATE DATABASE ${SQLgrey_DB_NAME}; GRANT ALL PRIVILEGES ON DATABASE ${SQLgrey_DB_NAME} TO ${SQLgrey_DB_USER_NAME}; GRANT ALL PRIVILEGES ON SCHEMA public TO ${SQLgrey_DB_USER_NAME}; UPDATE pg_database SET datdba=(SELECT usesysid FROM pg_shadow WHERE usename='${SQLgrey_DB_USER_NAME}') WHERE datname='${SQLgrey_DB_NAME}';"
273
274 einfo "Changing SQLgrey configuration in sqlgrey.conf"
275 sed -i "s:^[# ]*\(db_type[ \t]*= \).*:\1Pg:gI" ${SQLgrey_CONFIG}
276 sed -i "s:^[# ]*\(db_user[ \t]*= \).*:\1${SQLgrey_DB_USER_NAME}:gI" ${SQLgrey_CONFIG}
277 sed -i "s:^[# ]*\(db_pass[ \t]*= \).*:\1${SQLgrey_DB_USER_PWD}:gI" ${SQLgrey_CONFIG}
278 sed -i "s:^[# ]*\(db_host[ \t]*= \).*:\1${SQLgrey_DB_HOST}:gI" ${SQLgrey_CONFIG}
279 sed -i "s:^[# ]*\(db_name[ \t]*= \).*:\1${SQLgrey_DB_NAME}:gI" ${SQLgrey_CONFIG}
280 elif [[ "${SQLgrey_DB_TYPE}" == "m" ]] ; then
281 # MYSQL
282 ewarn "If prompted for a password, please enter your MySQL root password"
283 ewarn ""
284
285 einfo "Creating SQLgrey MySQL database \"${SQLgrey_DB_NAME}\" and user \"${SQLgrey_DB_USER_NAME}\""
286 echo -ne " "
287 /usr/bin/mysql -u root -h ${SQLgrey_DB_HOST} -p -e "CREATE DATABASE IF NOT EXISTS ${SQLgrey_DB_NAME} CHARACTER SET latin1; GRANT ALL ON ${SQLgrey_DB_NAME}.* TO ${SQLgrey_DB_USER_NAME}@${SQLgrey_DB_HOST} IDENTIFIED BY '${SQLgrey_DB_USER_PWD}';FLUSH PRIVILEGES;" -D mysql
288 echo
289
290 einfo "Changing SQLgrey configuration in sqlgrey.conf"
291 sed -i "s:^[# ]*\(db_type[ \t]*= \).*:\1mysql:gI" ${SQLgrey_CONFIG}
292 sed -i "s:^[# ]*\(db_user[ \t]*= \).*:\1${SQLgrey_DB_USER_NAME}:gI" ${SQLgrey_CONFIG}
293 sed -i "s:^[# ]*\(db_pass[ \t]*= \).*:\1${SQLgrey_DB_USER_PWD}:gI" ${SQLgrey_CONFIG}
294 sed -i "s:^[# ]*\(db_host[ \t]*= \).*:\1${SQLgrey_DB_HOST}:gI" ${SQLgrey_CONFIG}
295 sed -i "s:^[# ]*\(db_name[ \t]*= \).*:\1${SQLgrey_DB_NAME}:gI" ${SQLgrey_CONFIG}
296 elif [[ "${SQLgrey_DB_TYPE}" == "s" ]] ; then
297 einfo "Changing SQLgrey configuration in sqlgrey.conf"
298 sed -i "s:^[# ]*\(db_type[ \t]*= \).*:\1SQLite:gI" ${SQLgrey_CONFIG}
299 sed -i "s:^[# ]*\(db_name[ \t]*= \).*:\1${SQLgrey_DB_NAME}:gI" ${SQLgrey_CONFIG}
300 sed -i "s:^[# ]*\(db_user[ \t]*=.*\)$:# \1:gI" ${SQLgrey_CONFIG}
301 sed -i "s:^[# ]*\(db_pass[ \t]*= .*\)$:# \1:gI" ${SQLgrey_CONFIG}
302 sed -i "s:^[# ]*\(db_host[ \t]*= .*\)$:# \1:gI" ${SQLgrey_CONFIG}
303 sed -i "s:^[# ]*\(db_cleandelay[ \t]*= .*\)$:# \1:gI" ${SQLgrey_CONFIG}
304 fi
305 echo
306 if [[ "${SQLgrey_DB_TYPE}" != "s" ]]; then
307 einfo "Note: the database password is stored in $SQLgrey_CONFIG"
308 fi
309 }