Gentoo Archives: gentoo-commits

From: "Patrick Lauer (patrick)" <patrick@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-db/postgresql: postgresql-9.5_alpha1.ebuild ChangeLog
Date: Fri, 03 Jul 2015 03:25:31
Message-Id: 20150703032525.48EF3743@oystercatcher.gentoo.org
1 patrick 15/07/03 03:25:25
2
3 Modified: ChangeLog
4 Added: postgresql-9.5_alpha1.ebuild
5 Log:
6 Bump to 9.5_alpha
7
8 (Portage version: 2.2.20/cvs/Linux x86_64, unsigned Manifest commit)
9
10 Revision Changes Path
11 1.442 dev-db/postgresql/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/ChangeLog?rev=1.442&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/ChangeLog?rev=1.442&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/ChangeLog?r1=1.441&r2=1.442
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/dev-db/postgresql/ChangeLog,v
20 retrieving revision 1.441
21 retrieving revision 1.442
22 diff -u -r1.441 -r1.442
23 --- ChangeLog 28 Jun 2015 21:42:17 -0000 1.441
24 +++ ChangeLog 3 Jul 2015 03:25:25 -0000 1.442
25 @@ -1,6 +1,11 @@
26 # ChangeLog for dev-db/postgresql
27 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql/ChangeLog,v 1.441 2015/06/28 21:42:17 titanofold Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql/ChangeLog,v 1.442 2015/07/03 03:25:25 patrick Exp $
30 +
31 +*postgresql-9.5_alpha1 (03 Jul 2015)
32 +
33 + 03 Jul 2015; Patrick Lauer <patrick@g.o> +postgresql-9.5_alpha1.ebuild:
34 + Bump to 9.5_alpha
35
36 28 Jun 2015; Aaron W. Swenson <titanofold@g.o>
37 -postgresql-9.0.19.ebuild, -postgresql-9.0.19-r1.ebuild,
38
39
40
41 1.1 dev-db/postgresql/postgresql-9.5_alpha1.ebuild
42
43 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/postgresql-9.5_alpha1.ebuild?rev=1.1&view=markup
44 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/postgresql-9.5_alpha1.ebuild?rev=1.1&content-type=text/plain
45
46 Index: postgresql-9.5_alpha1.ebuild
47 ===================================================================
48 # Copyright 1999-2015 Gentoo Foundation
49 # Distributed under the terms of the GNU General Public License v2
50 # $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql/postgresql-9.5_alpha1.ebuild,v 1.1 2015/07/03 03:25:25 patrick Exp $
51
52 EAPI="5"
53
54 PYTHON_COMPAT=( python{2_{6,7},3_{2,3,4}} )
55
56 inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \
57 systemd user versionator
58
59 # This is a prerelease version, so no keywords please
60 KEYWORDS=""
61 #KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
62
63 SLOT="$(get_version_component_range 1-2)"
64
65 MY_PV=${PV/_/}
66
67 S=${WORKDIR}/${PN}-${MY_PV}
68
69 SRC_URI="mirror://postgresql/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
70
71 LICENSE="POSTGRESQL GPL-2"
72 DESCRIPTION="PostgreSQL RDBMS"
73 HOMEPAGE="http://www.postgresql.org/"
74
75 LINGUAS="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru sk sl sv tr
76 zh_CN zh_TW"
77 IUSE="doc kerberos kernel_linux ldap nls pam perl -pg_legacytimestamp python
78 +readline selinux +server ssl static-libs tcl threads uuid xml zlib"
79
80 for lingua in ${LINGUAS}; do
81 IUSE+=" linguas_${lingua}"
82 done
83
84 wanted_languages() {
85 local enable_langs
86
87 for lingua in ${LINGUAS} ; do
88 use linguas_${lingua} && enable_langs+="${lingua} "
89 done
90
91 echo -n ${enable_langs}
92 }
93
94 CDEPEND="
95 >=app-eselect/eselect-postgresql-1.2.0
96 sys-apps/less
97 virtual/libintl
98 kerberos? ( virtual/krb5 )
99 ldap? ( net-nds/openldap )
100 pam? ( virtual/pam )
101 perl? ( >=dev-lang/perl-5.8 )
102 python? ( ${PYTHON_DEPS} )
103 readline? ( sys-libs/readline:0= )
104 ssl? ( >=dev-libs/openssl-0.9.6-r1:0= )
105 tcl? ( >=dev-lang/tcl-8:0= )
106 xml? ( dev-libs/libxml2 dev-libs/libxslt )
107 zlib? ( sys-libs/zlib )
108 "
109
110 # uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
111 # supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
112 # the libc includes UUID functions.
113 UTIL_LINUX_LIBC=( elibc_{glibc,uclibc,musl} )
114 BSD_LIBC=( elibc_{Free,Net,Open}BSD )
115
116 nest_usedep() {
117 local front back
118 while [[ ${#} -gt 1 ]]; do
119 front+="${1}? ( "
120 back+=" )"
121 shift
122 done
123 echo "${front}${1}${back}"
124 }
125
126 IUSE+=" ${UTIL_LINUX_LIBC[@]} ${BSD_LIBC[@]}"
127 CDEPEND+="
128 uuid? (
129 ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
130 $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} ${BSD_LIBC[@]/#/!} dev-libs/ossp-uuid)
131 )"
132
133 DEPEND="${CDEPEND}
134 !!<sys-apps/sandbox-2.0
135 sys-devel/bison
136 sys-devel/flex
137 nls? ( sys-devel/gettext )
138 xml? ( virtual/pkgconfig )
139 "
140
141 RDEPEND="${CDEPEND}
142 !dev-db/postgresql-docs:${SLOT}
143 !dev-db/postgresql-base:${SLOT}
144 !dev-db/postgresql-server:${SLOT}
145 selinux? ( sec-policy/selinux-postgresql )
146 "
147
148 pkg_setup() {
149 use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
150
151 enewgroup postgres 70
152 enewuser postgres 70 /bin/bash /var/lib/postgresql postgres
153
154 use python && python-single-r1_pkg_setup
155 }
156
157 src_prepare() {
158 # Work around PPC{,64} compilation bug where bool is already defined
159 sed '/#ifndef __cplusplus/a #undef bool' -i src/include/c.h || die
160
161 # Set proper run directory
162 sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
163 -i src/include/pg_config_manual.h || die
164
165 use server || epatch "${FILESDIR}/${PN}-${SLOT}-no-server.patch"
166
167 # Fix bug 486556 where the server would crash at start up because of
168 # an infinite loop caused by a self-referencing symlink.
169 epatch "${FILESDIR}/postgresql-9.2-9.4-tz-dir-overflow.patch"
170
171 if use pam ; then
172 sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
173 -i src/backend/libpq/auth.c || \
174 die 'PGSQL_PAM_SERVICE rename failed.'
175 fi
176
177 epatch_user
178 }
179
180 src_configure() {
181 case ${CHOST} in
182 *-darwin*|*-solaris*)
183 use nls && append-libs intl
184 ;;
185 esac
186
187 export LDFLAGS_SL="${LDFLAGS}"
188 export LDFLAGS_EX="${LDFLAGS}"
189
190 local PO="${EPREFIX%/}"
191
192 local i uuid_config=""
193 if use uuid; then
194 for i in ${UTIL_LINUX_LIBC[@]}; do
195 use ${i} && uuid_config="--with-uuid=e2fs"
196 done
197 for i in ${BSD_LIBC[@]}; do
198 use ${i} && uuid_config="--with-uuid=bsd"
199 done
200 [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
201 fi
202
203 econf \
204 --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
205 --datadir="${PO}/usr/share/postgresql-${SLOT}" \
206 --docdir="${PO}/usr/share/doc/${PF}" \
207 --includedir="${PO}/usr/include/postgresql-${SLOT}" \
208 --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
209 --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
210 --with-system-tzdata="${PO}/usr/share/zoneinfo" \
211 $(use_enable !pg_legacytimestamp integer-datetimes) \
212 $(use_enable threads thread-safety) \
213 $(use_with kerberos gssapi) \
214 $(use_with ldap) \
215 $(use_with pam) \
216 $(use_with perl) \
217 $(use_with python) \
218 $(use_with readline) \
219 $(use_with ssl openssl) \
220 $(use_with tcl) \
221 ${uuid_config} \
222 $(use_with xml libxml) \
223 $(use_with xml libxslt) \
224 $(use_with zlib) \
225 "$(use_enable nls nls "$(wanted_languages)")"
226 }
227
228 src_compile() {
229 emake
230 emake -C contrib
231 }
232
233 src_install() {
234 emake DESTDIR="${D}" install
235 emake DESTDIR="${D}" install -C contrib
236
237 dodoc README HISTORY doc/{TODO,bug.template}
238
239 # man pages are already built, but if we have the target make them,
240 # they'll be generated from source before being installed so we
241 # manually install man pages.
242 # We use ${SLOT} instead of doman for postgresql.eselect
243 insinto /usr/share/postgresql-${SLOT}/man/
244 doins -r doc/src/sgml/man{1,3,7}
245 if ! use server; then
246 # Remove man pages for non-existent binaries
247 for m in {initdb,pg_{controldata,ctl,resetxlog},post{gres,master}}; do
248 rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
249 done
250 fi
251 docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
252
253 insinto /etc/postgresql-${SLOT}
254 newins src/bin/psql/psqlrc.sample psqlrc
255
256 dodir /etc/eselect/postgresql/slots/${SLOT}
257 echo "postgres_ebuilds=\"\${postgres_ebuilds} ${PF}\"" > \
258 "${ED}/etc/eselect/postgresql/slots/${SLOT}/base"
259
260 use static-libs || find "${ED}" -name '*.a' -delete
261
262 if use doc ; then
263 docinto html
264 dodoc doc/src/sgml/html/*
265
266 docinto sgml
267 dodoc doc/src/sgml/*.{sgml,dsl}
268 fi
269
270 if use server; then
271 sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
272 "${FILESDIR}/${PN}.confd" | newconfd - ${PN}-${SLOT}
273
274 sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
275 "${FILESDIR}/${PN}.init-9.3" | newinitd - ${PN}-${SLOT}
276
277 sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
278 "${FILESDIR}/${PN}.service" | \
279 systemd_newunit - ${PN}-${SLOT}.service
280
281 systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfilesd ${PN}-${SLOT}.conf
282
283 newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
284
285 use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
286
287 if use prefix ; then
288 keepdir /run/postgresql
289 fperms 0775 /run/postgresql
290 fi
291 fi
292 }
293
294 pkg_postinst() {
295 postgresql-config update
296
297 elog "If you need a global psqlrc-file, you can place it in:"
298 elog " ${EROOT%/}/etc/postgresql-${SLOT}/"
299
300 if use server ; then
301 elog
302 elog "Gentoo specific documentation:"
303 elog "https://wiki.gentoo.org/wiki/PostgreSQL"
304 elog
305 elog "Official documentation:"
306 elog "http://www.postgresql.org/docs/${SLOT}/static/index.html"
307 elog
308 elog "The default location of the Unix-domain socket is:"
309 elog " ${EROOT%/}/run/postgresql/"
310 elog
311 elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
312 elog "so that it contains your preferred locale in:"
313 elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}"
314 elog
315 elog "Then, execute the following command to setup the initial database"
316 elog "environment:"
317 elog " emerge --config =${CATEGORY}/${PF}"
318 fi
319 }
320
321 pkg_prerm() {
322 if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
323 ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
324 ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
325
326 ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
327 sleep 10
328 eend 0
329 fi
330 }
331
332 pkg_postrm() {
333 postgresql-config update
334 }
335
336 pkg_config() {
337 use server || die "USE flag 'server' not enabled. Nothing to configure."
338
339 [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \
340 && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}"
341 [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/"
342 [[ -z "${DATA_DIR}" ]] \
343 && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data"
344
345 # environment.bz2 may not contain the same locale as the current system
346 # locale. Unset and source from the current system locale.
347 if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then
348 unset LANG
349 unset LC_CTYPE
350 unset LC_NUMERIC
351 unset LC_TIME
352 unset LC_COLLATE
353 unset LC_MONETARY
354 unset LC_MESSAGES
355 unset LC_ALL
356 source "${EROOT%/}/etc/env.d/02locale"
357 [ -n "${LANG}" ] && export LANG
358 [ -n "${LC_CTYPE}" ] && export LC_CTYPE
359 [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
360 [ -n "${LC_TIME}" ] && export LC_TIME
361 [ -n "${LC_COLLATE}" ] && export LC_COLLATE
362 [ -n "${LC_MONETARY}" ] && export LC_MONETARY
363 [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
364 [ -n "${LC_ALL}" ] && export LC_ALL
365 fi
366
367 einfo "You can modify the paths and options passed to initdb by editing:"
368 einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}"
369 einfo
370 einfo "Information on options that can be passed to initdb are found at:"
371 einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
372 einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
373 einfo
374 einfo "PG_INITDB_OPTS is currently set to:"
375 if [[ -z "${PG_INITDB_OPTS}" ]] ; then
376 einfo " (none)"
377 else
378 einfo " ${PG_INITDB_OPTS}"
379 fi
380 einfo
381 einfo "Configuration files will be installed to:"
382 einfo " ${PGDATA}"
383 einfo
384 einfo "The database cluster will be created in:"
385 einfo " ${DATA_DIR}"
386 einfo
387 while [ "$correct" != "true" ] ; do
388 einfo "Are you ready to continue? (y/n)"
389 read answer
390 if [[ $answer =~ ^[Yy]([Ee][Ss])?$ ]] ; then
391 correct="true"
392 elif [[ $answer =~ ^[Nn]([Oo])?$ ]] ; then
393 die "Aborting initialization."
394 else
395 echo "Answer not recognized"
396 fi
397 done
398
399 if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
400 eerror "The given directory, '${DATA_DIR}', is not empty."
401 eerror "Modify DATA_DIR to point to an empty directory."
402 die "${DATA_DIR} is not empty."
403 fi
404
405 einfo "Creating the data directory ..."
406 if [[ ${EUID} == 0 ]] ; then
407 mkdir -p "${DATA_DIR}"
408 chown -Rf postgres:postgres "${DATA_DIR}"
409 chmod 0700 "${DATA_DIR}"
410 fi
411
412 einfo "Initializing the database ..."
413
414 if [[ ${EUID} == 0 ]] ; then
415 su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
416 else
417 "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
418 fi
419
420 if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
421 mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
422 ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
423 fi
424
425 cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
426 # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
427 # On the off-chance that you might need to work with UTF-8 encoded
428 # characters in PL/Perl
429 plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
430 EOF
431
432 einfo "The autovacuum function, which was in contrib, has been moved to the main"
433 einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
434 einfo "by default. You can disable it in the cluster's:"
435 einfo " ${PGDATA%/}/postgresql.conf"
436 einfo
437 einfo "The PostgreSQL server, by default, will log events to:"
438 einfo " ${DATA_DIR%/}/postmaster.log"
439 einfo
440 if use prefix ; then
441 einfo "The location of the configuration files have moved to:"
442 einfo " ${PGDATA}"
443 einfo "To start the server:"
444 einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
445 einfo "To stop:"
446 einfo " pg_ctl stop -D ${DATA_DIR}"
447 einfo
448 einfo "Or move the configuration files back:"
449 einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
450 else
451 einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
452 einfo "instead of 'pg_ctl'."
453 fi
454 }
455
456 src_test() {
457 einfo ">>> Test phase [check]: ${CATEGORY}/${PF}"
458
459 if use server && [[ ${UID} -ne 0 ]] ; then
460 emake check
461
462 einfo "If you think other tests besides the regression tests are necessary, please"
463 einfo "submit a bug including a patch for this ebuild to enable them."
464 else
465 use server || \
466 ewarn 'Tests cannot be run without the "server" use flag enabled.'
467 [[ ${UID} -eq 0 ]] || \
468 ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
469
470 ewarn 'Skipping.'
471 fi
472 }