Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 48752
Collapse All | Expand All

(-)/usr/portage/dev-db/postgresql/postgresql-7.4.2.ebuild (-24 / +29 lines)
Lines 45-50 Link Here
45
	ssl? ( >=dev-libs/openssl-0.9.6-r1 )"
45
	ssl? ( >=dev-libs/openssl-0.9.6-r1 )"
46
46
47
PG_DIR="/var/lib/postgresql"
47
PG_DIR="/var/lib/postgresql"
48
MAX_CONNECTIONS=1024
48
49
49
pkg_setup() {
50
pkg_setup() {
50
	if [ -f ${PG_DIR}/data/PG_VERSION ] ; then
51
	if [ -f ${PG_DIR}/data/PG_VERSION ] ; then
Lines 123-129 Link Here
123
		--libdir=/usr/lib \
124
		--libdir=/usr/lib \
124
		--enable-depend \
125
		--enable-depend \
125
		--with-gnu-ld \
126
		--with-gnu-ld \
126
		--with-maxbackends=1024 \
127
		--with-maxbackends=${MAX_CONNECTIONS} \
127
		$myconf || die
128
		$myconf || die
128
129
129
	make || die
130
	make || die
Lines 222-254 Link Here
222
			einfo "Read the documentation to check how to upgrade to version ${PV}."
223
			einfo "Read the documentation to check how to upgrade to version ${PV}."
223
		fi
224
		fi
224
	else
225
	else
225
		# On hppa, postgresql need way more than the default sem index and shmmax
226
		local SEM=`sysctl -n kernel.sem | cut -f-3`
226
		if [ "${ARCH}" = "hppa" ]; then
227
		local SEMMNI=`sysctl -n kernel.sem | cut -f4`
227
			SEM_IDX_MIN=1024
228
		local SEMMNI_MIN=`expr \( ${MAX_CONNECTIONS} + 15 \) / 16`
228
			SHMMAX_MIN=100000000
229
		local SHMMAX=`sysctl -n kernel.shmmax`
229
			SEM_IDX=`sysctl kernel.sem | awk '{ print $6 }'`
230
		local SHMMAX_MIN=134217728 # 128M
230
			if [ $SEM_IDX -lt ${SEM_IDX_MIN} ]; then
231
231
				eerror "The last value of /proc/sys/kernel/sem is too low for postgresql to run"
232
		if [ ${SEMMNI} -lt ${SEMMNI_MIN} ]; then
232
				eerror "Temporary setting this value to ${SEM_IDX_MIN} while creating the initial database."
233
			eerror "The current value of SEMMNI is too low"
233
				cat /proc/sys/kernel/sem | sed -e "s/\t${SEM_IDX}/\t${SEM_IDX_MIN}/" > /proc/sys/kernel/sem
234
			eerror "for postgresql to run ${MAX_CONNECTIONS} connections"
234
			fi
235
			eerror "Temporary setting this value to ${SEMMNI_MIN} while creating the initial database."
236
			echo ${SEM} ${SEMMNI_MIN} > /proc/sys/kernel/sem
235
		fi
237
		fi
236
		sudo -u postgres /usr/bin/initdb --pgdata ${PG_DIR}/data
238
		sudo -u postgres /usr/bin/initdb --pgdata ${PG_DIR}/data
237
239
238
		if [ "${ARCH}" = "hppa" ]; then
240
		if [ ! `sysctl -n kernel.sem | cut -f4` -eq ${SEMMNI} ] ; then
239
			if [ ! `sysctl kernel.sem | awk '{ print $6 }'` -eq ${SEM_IDX} ] ; then
241
			echo ${SEM} ${SEMMNI} > /proc/sys/kernel/sem
240
				cat /proc/sys/kernel/sem | sed -e "s/\t${SEM_IDX_MIN}/\t${SEM_IDX}/" > /proc/sys/kernel/sem
242
			ewarn "Restoring the SEMMNI value to the previous value"
241
				ewarn "Restoring the sem idx value to the previous value"
243
			ewarn "Please edit the last value of kernel.sem in /etc/sysctl.conf"
242
				ewarn "Please edit the last value of kernel.sem in /etc/sysctl.conf"
244
			ewarn "and set it to at least ${SEMMNI_MIN}"
243
				ewarn "and set it to at least ${SEM_IDX_MIN}"
245
			ewarn ""
244
			fi
246
			ewarn "  kernel.sem = ${SEM} ${SEMMNI_MIN}"
245
247
			ewarn ""
246
			if [ `sysctl kernel.shmmax | awk '{ print $3 }'` -lt ${SHMMAX_MIN} ]; then
248
		fi
247
				eerror "The current value of /proc/sys/kernel/shmmax is too low"
249
248
				eerror "for postgresql to run. Please edit /etc/sysctl.conf and set"
250
		if [ ${SHMMAX} -lt ${SHMMAX_MIN} ]; then
249
				eerror "this value to at least ${SHMMAX_MIN}."
251
			eerror "The current value of SHMMAX is too low for postgresql to run."
252
			eerror "Please edit /etc/sysctl.conf and set this value to at least ${SHMMAX_MIN}."
253
			eerror ""
254
			eerror "  kernel.shmmax = ${SHMMAX_MIN}"
255
			eerror ""
250
256
251
			fi
252
		fi
257
		fi
253
258
254
		einfo "If you are upgrading from a pre-7.3 version of PostgreSQL, please read"
259
		einfo "If you are upgrading from a pre-7.3 version of PostgreSQL, please read"

Return to bug 48752