Thu Feb 8 12:59:28 2018 UTC ()
Fix an inconsistency for package database directory.

The pkgdb variable generated for pbulk.conf is ${PREFIX}/var/db/pkg but
bootstrap generates by default PKG_DBDIR=${PREFIX}/pkgdb.
This fix add a common PKGDBDIR variable used for both pbulk.conf and
bootstrapkit.


(triaxx)
diff -r1.6 -r1.7 pkgsrc/mk/pbulk/pbulk.sh

cvs diff -r1.6 -r1.7 pkgsrc/mk/pbulk/pbulk.sh (expand / switch to unified diff)

--- pkgsrc/mk/pbulk/pbulk.sh 2017/08/27 18:18:57 1.6
+++ pkgsrc/mk/pbulk/pbulk.sh 2018/02/08 12:59:28 1.7
@@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
1#!/bin/sh 1#!/bin/sh
2# $NetBSD: pbulk.sh,v 1.6 2017/08/27 18:18:57 sevan Exp $ 2# $NetBSD: pbulk.sh,v 1.7 2018/02/08 12:59:28 triaxx Exp $
3set -e 3set -e
4 4
5usage="usage: ${0##*/} [-lun] [-c mk.conf.fragment] [-d nodes]" 5usage="usage: ${0##*/} [-lun] [-c mk.conf.fragment] [-d nodes]"
6 6
7while getopts lunc:d: opt; do 7while getopts lunc:d: opt; do
8 case $opt in 8 case $opt in
9 l) limited=yes;; 9 l) limited=yes;;
10 u) unprivileged=yes;; 10 u) unprivileged=yes;;
11 n) native=yes;; 11 n) native=yes;;
12 c) mk_fragment="${OPTARG}";; 12 c) mk_fragment="${OPTARG}";;
13 d) nodes="${OPTARG}";; 13 d) nodes="${OPTARG}";;
14 \?) echo "$usage" 1>&2; exit 1;; 14 \?) echo "$usage" 1>&2; exit 1;;
15 esac 15 esac
@@ -28,26 +28,31 @@ if [ -n "$unprivileged" ]; then @@ -28,26 +28,31 @@ if [ -n "$unprivileged" ]; then
28: ${BULKLOG:=${HOME}/bulklog} 28: ${BULKLOG:=${HOME}/bulklog}
29fi 29fi
30 30
31## 31##
32: ${PBULKPREFIX:=/usr/pbulk} 32: ${PBULKPREFIX:=/usr/pbulk}
33: ${PBULKWORK:=${TMPDIR}/work-pbulk} 33: ${PBULKWORK:=${TMPDIR}/work-pbulk}
34 34
35: ${PACKAGES:=/mnt/packages} 35: ${PACKAGES:=/mnt/packages}
36: ${BULKLOG:=/mnt/bulklog} 36: ${BULKLOG:=/mnt/bulklog}
37 37
38# almost constant: 38# almost constant:
39: ${PKGSRCDIR:=/usr/pkgsrc} 39: ${PKGSRCDIR:=/usr/pkgsrc}
40 40
 41# setting pkgdb directory:
 42if [ -n "$unprivileged" -o -n "${PREFIX}" ]; then
 43: ${PKGDBDIR:=${PREFIX}/var/db/pkg}
 44fi
 45
41# Do it early since adding it after it fails is problematic: 46# Do it early since adding it after it fails is problematic:
42if [ ! -n "$unprivileged" ]; then 47if [ ! -n "$unprivileged" ]; then
43case "$(uname)" in 48case "$(uname)" in
44NetBSD) 49NetBSD)
45if ! id pbulk; then user add -m -g users pbulk; fi 50if ! id pbulk; then user add -m -g users pbulk; fi
46;; 51;;
47FreeBSD) 52FreeBSD)
48if ! id pbulk; then 53if ! id pbulk; then
49 if ! pw groupshow users; then pw groupadd users; fi 54 if ! pw groupshow users; then pw groupadd users; fi
50 pw useradd pbulk -m -g users 55 pw useradd pbulk -m -g users
51fi 56fi
52;; 57;;
53*) 58*)
@@ -114,35 +119,35 @@ EOF @@ -114,35 +119,35 @@ EOF
114cat > ${PBULKPREFIX}/etc/pbulk.list <<EOF 119cat > ${PBULKPREFIX}/etc/pbulk.list <<EOF
115pkgtools/digest 120pkgtools/digest
116EOF 121EOF
117fi 122fi
118 123
119if [ -n "$unprivileged" ]; then 124if [ -n "$unprivileged" ]; then
120# Unprivileged bulk build: 125# Unprivileged bulk build:
121cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<EOF 126cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<EOF
122# Unprivileged bulk build overrides: 127# Unprivileged bulk build overrides:
123unprivileged_user=$(id -un) 128unprivileged_user=$(id -un)
124pkgsrc=${PKGSRCDIR} 129pkgsrc=${PKGSRCDIR}
125prefix=${PREFIX} 130prefix=${PREFIX}
126varbase=${PREFIX}/var 131varbase=${PREFIX}/var
127pkgdb=${PREFIX}/var/db/pkg 132pkgdb=${PKGDBDIR}
128EOF 133EOF
129elif [ -n "${PREFIX}" ]; then 134elif [ -n "${PREFIX}" ]; then
130# Non-default prefix: 135# Non-default prefix:
131cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<EOF 136cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<EOF
132# Non-default prefix overrides: 137# Non-default prefix overrides:
133prefix=${PREFIX} 138prefix=${PREFIX}
134varbase=${PREFIX}/var 139varbase=${PREFIX}/var
135pkgdb=${PREFIX}/var/db/pkg 140pkgdb=${PKGDBDIR}
136EOF 141EOF
137fi 142fi
138 143
139# Quotes around "EOF" are important below 144# Quotes around "EOF" are important below
140# (they prevent variable expansion in here-document): 145# (they prevent variable expansion in here-document):
141cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<"EOF" 146cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<"EOF"
142# Don't forget to recompute dependent settings: 147# Don't forget to recompute dependent settings:
143make=${prefix}/bin/bmake 148make=${prefix}/bin/bmake
144EOF 149EOF
145 150
146if [ -n "$native" ]; then 151if [ -n "$native" ]; then
147# Native bulk build (native make, no bootstrap kit needed): 152# Native bulk build (native make, no bootstrap kit needed):
148cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<EOF 153cat >> ${PBULKPREFIX}/etc/pbulk.conf.over <<EOF
@@ -177,24 +182,25 @@ mv ${PBULKPREFIX}/etc/pbulk.conf.new ${P @@ -177,24 +182,25 @@ mv ${PBULKPREFIX}/etc/pbulk.conf.new ${P
177# Bootstrapping 182# Bootstrapping
178if [ -n "$native" ]; then 183if [ -n "$native" ]; then
179if [ -n "$mk_fragment" ]; then cat "$mk_fragment" > /etc/mk.conf; fi 184if [ -n "$mk_fragment" ]; then cat "$mk_fragment" > /etc/mk.conf; fi
180else 185else
181# Ensure that the directory for bootstrap kit exists: 186# Ensure that the directory for bootstrap kit exists:
182mkdir -p ${PACKAGES} 187mkdir -p ${PACKAGES}
183 188
184# Creating the bootstrap kit 189# Creating the bootstrap kit
185${PKGSRCDIR}/bootstrap/bootstrap \ 190${PKGSRCDIR}/bootstrap/bootstrap \
186 ${unprivileged:+--unprivileged} \ 191 ${unprivileged:+--unprivileged} \
187 ${PREFIX:+--prefix=${PREFIX}} \ 192 ${PREFIX:+--prefix=${PREFIX}} \
188 ${mk_fragment:+--mk-fragment="$mk_fragment"} \ 193 ${mk_fragment:+--mk-fragment="$mk_fragment"} \
189 --workdir=${TMPDIR}/work \ 194 --workdir=${TMPDIR}/work \
 195 ${PKGDBDIR:+--pkgdbdir=${PKGDBDIR}} \
190 --gzip-binary-kit=${PACKAGES}/bootstrap.tar.gz 196 --gzip-binary-kit=${PACKAGES}/bootstrap.tar.gz
191rm -rf ${TMPDIR}/work 197rm -rf ${TMPDIR}/work
192rm -f ${TMPDIR}/mk.conf.inc 198rm -f ${TMPDIR}/mk.conf.inc
193fi 199fi
194# Keep "packages" in pbulk.conf and "PACKAGES" in mk.conf fragment in sync. 200# Keep "packages" in pbulk.conf and "PACKAGES" in mk.conf fragment in sync.
195 201
196# Final preparations: 202# Final preparations:
197mkdir -p ${PACKAGES} 203mkdir -p ${PACKAGES}
198 204
199# Let's start: 205# Let's start:
200#PACKAGES=${PACKAGES} WRKOBJDIR=${TMPDIR} ${PBULKPREFIX}/bin/bulkbuild 206#PACKAGES=${PACKAGES} WRKOBJDIR=${TMPDIR} ${PBULKPREFIX}/bin/bulkbuild