View | Details | Raw Unified | Return to bug 182371 | Differences between
and this patch

Collapse All | Expand All

(-)ports-mgmt/pkg_replace/files/patch-pkg_replace_pkgng (-53 / +83 lines)
Lines 1-5 Link Here
1
--- sbin/pkg_replace/pkg_replace.sh.orig	2007-01-25 21:55:46.000000000 +0900
1
--- sbin/pkg_replace/pkg_replace.sh.orig	2007-01-25 12:55:46.000000000 +0000
2
+++ sbin/pkg_replace/pkg_replace.sh	2013-09-03 06:58:43.000000000 +0900
2
+++ sbin/pkg_replace/pkg_replace.sh	2013-09-25 09:49:37.926799231 +0000
3
@@ -125,14 +125,27 @@
3
@@ -125,14 +125,27 @@
4
 	: ${PACKAGEROOT="ftp://ftp.NetBSD.org"}
4
 	: ${PACKAGEROOT="ftp://ftp.NetBSD.org"}
5
 	: ${PKG_SUFX=".tgz"}
5
 	: ${PKG_SUFX=".tgz"}
Lines 96-140 Link Here
96
 
96
 
97
 	pkg_name=$1
97
 	pkg_name=$1
98
 	pkg_pkgdir=${PKG_DBDIR}/$1
98
 	pkg_pkgdir=${PKG_DBDIR}/$1
99
@@ -526,10 +558,27 @@
99
@@ -518,7 +550,7 @@
100
 }
101
 
102
 pkg_glob() {
103
-	local p _var _arg _pattern _deps _req_by
104
+	local p _var _arg _pattern _deps _req_by _pkgs
105
 
106
 	_var=$1; shift
107
 	eval ${_var}=
108
@@ -526,30 +558,27 @@
100
 
109
 
101
 	for _arg in ${1+"$@"}; do
110
 	for _arg in ${1+"$@"}; do
102
 		_pattern=${_arg#${PKG_DBDIR}/}
111
 		_pattern=${_arg#${PKG_DBDIR}/}
103
+		if is_yes ${use_pkgng}; then
112
+		if is_yes ${use_pkgng}; then
104
+			for p in `${PKG_INFO} -g "${_pattern}" 2>/dev/null`; do
113
+			_pkgs="$(${PKG_INFO} -g "${_pattern}" 2>/dev/null || :)"
105
+				if is_yes ${opt_depends}; then
106
+					pkg_depends '_deps' "$p"
107
+					eval ${_var}=\"\$${_var} \${_deps}\"
108
+				fi
109
+
110
+				eval ${_var}=\"\$${_var} \$p\"
111
 
112
+				if is_yes ${opt_required_by}; then
113
+					pkg_required_by '_req_by' "$p"
114
+					eval ${_var}=\"\$${_var} \${_req_by}\"
115
+				fi
116
+			done
117
+			if [ -z "${pkgs}" ]; then
118
+				warn "No such installed package: ${_arg}"
119
+			fi
120
+		else
114
+		else
121
 		case ${_pattern} in
115
+			_pattern="$(echo "${_pattern}" | sed -Ee 's/(\\)?([.+])/\\\2/g')"
116
+			_pkgs="$(${PKG_INFO} -EX "^${_pattern}-([a-z]?[0-9]+\.)?([a-z]?[0-9]*[a-z]?\.?)*([_,][0-9]+)*\$" 2>/dev/null || :)"
117
+		fi
118
+		if [ -z "${_pkgs}" ]; then
119
+			warn "No such installed package: ${_arg}"
120
+			continue
121
+		fi
122
+		for p in ${_pkgs}; do
123
+			if is_yes ${opt_depends}; then
124
+				pkg_depends '_deps' "$p"
125
+				eval ${_var}=\"\$${_var} \${_deps}\"
126
+			fi
127
 
128
-		case ${_pattern} in
122
-		*\**|*-pl[0-9]*|*-[0-9]*[0-9.][a-z]|*-[0-9]*[0-9]) ;;
129
-		*\**|*-pl[0-9]*|*-[0-9]*[0-9.][a-z]|*-[0-9]*[0-9]) ;;
123
-		*)		_pattern="${_pattern}-[0-9]*[0-9a-z]" ;;
130
-		*)		_pattern="${_pattern}-[0-9]*[0-9a-z]" ;;
124
+		*\**|*-[0-9]*|*-[brv.][0-9]*|*-a.[0-9]*|*-pl[0-9]*|*-b.r[0-9]*|*-cr.[a-z]*) ;;
131
-		esac
125
+		*)		_pattern="${_pattern}-[0-9]*[0-9a-zA-Z]" ;;
132
-
126
 		esac
133
-		for p in ${PKG_DBDIR}/${_pattern}/+CONTENTS; do
127
 
134
-			if [ -e "$p" ]; then
128
 		for p in ${PKG_DBDIR}/${_pattern}/+CONTENTS; do
135
-				p=${p#${PKG_DBDIR}/}
129
@@ -552,6 +601,7 @@
136
-				p=${p%/+CONTENTS}
130
 				warn "No such installed package: ${_arg}"
137
-
138
-				if is_yes ${opt_depends}; then
139
-					pkg_depends '_deps' "$p"
140
-					eval ${_var}=\"\$${_var} \${_deps}\"
141
-				fi
142
-
143
-				eval ${_var}=\"\$${_var} \$p\"
144
+			eval ${_var}=\"\$${_var} \$p\"
145
 
146
-				if is_yes ${opt_required_by}; then
147
-					pkg_required_by '_req_by' "$p"
148
-					eval ${_var}=\"\$${_var} \${_req_by}\"
149
-				fi
150
-			else
151
-				warn "No such installed package: ${_arg}"
152
+			if is_yes ${opt_required_by}; then
153
+				pkg_required_by '_req_by' "$p"
154
+				eval ${_var}=\"\$${_var} \${_req_by}\"
131
 			fi
155
 			fi
132
 		done
156
 		done
133
+		fi
134
 	done
157
 	done
135
 
158
@@ -568,6 +597,12 @@
136
 	set -f
137
@@ -568,6 +618,12 @@
138
 		done < "${PKG_DBDIR}/$2/+REQUIRING"
159
 		done < "${PKG_DBDIR}/$2/+REQUIRING"
139
 	fi
160
 	fi
140
 #else
161
 #else
Lines 147-153 Link Here
147
 	if [ -r "${PKG_DBDIR}/$2/+CONTENTS" ]; then
168
 	if [ -r "${PKG_DBDIR}/$2/+CONTENTS" ]; then
148
 		while read X; do
169
 		while read X; do
149
 			case $X in
170
 			case $X in
150
@@ -588,6 +644,12 @@
171
@@ -588,6 +623,12 @@
151
 pkg_required_by() {
172
 pkg_required_by() {
152
 	local X
173
 	local X
153
 
174
 
Lines 160-166 Link Here
160
 	eval $1=
181
 	eval $1=
161
 	if [ -r "${PKG_DBDIR}/$2/+REQUIRED_BY" ]; then
182
 	if [ -r "${PKG_DBDIR}/$2/+REQUIRED_BY" ]; then
162
 		while read X; do
183
 		while read X; do
163
@@ -597,7 +659,7 @@
184
@@ -597,7 +638,7 @@
164
 }
185
 }
165
 
186
 
166
 pkg_sort() {
187
 pkg_sort() {
Lines 169-175 Link Here
169
 
190
 
170
 	_var=$1; shift
191
 	_var=$1; shift
171
 	_sorted=
192
 	_sorted=
172
@@ -612,7 +674,13 @@
193
@@ -612,7 +653,13 @@
173
 		*" ${_arg} "*)	continue ;;
194
 		*" ${_arg} "*)	continue ;;
174
 		esac
195
 		esac
175
 
196
 
Lines 184-190 Link Here
184
 			pkg_depends '_deps' "${_arg}"
205
 			pkg_depends '_deps' "${_arg}"
185
 
206
 
186
 			for p in ${_deps}; do
207
 			for p in ${_deps}; do
187
@@ -715,7 +783,7 @@
208
@@ -715,7 +762,7 @@
188
 	if empty ${_log}; then
209
 	if empty ${_log}; then
189
 		try "$@" || return $?
210
 		try "$@" || return $?
190
 	else
211
 	else
Lines 193-199 Link Here
193
 
214
 
194
 		{ try "$@" || echo $? > "${_cookie}"; } | tee -a "${_log}" ||
215
 		{ try "$@" || echo $? > "${_cookie}"; } | tee -a "${_log}" ||
195
 			warn "tee(1) failed."
216
 			warn "tee(1) failed."
196
@@ -757,9 +825,11 @@
217
@@ -757,9 +804,11 @@
197
 	info "Installing '$1'"
218
 	info "Installing '$1'"
198
 
219
 
199
 	case $1 in
220
 	case $1 in
Lines 206-212 Link Here
206
 
227
 
207
 		xtry "${2-}" ${PKG_ADD} ${install_args} "$1" || return 1
228
 		xtry "${2-}" ${PKG_ADD} ${install_args} "$1" || return 1
208
 		;;
229
 		;;
209
@@ -795,7 +865,11 @@
230
@@ -795,7 +844,11 @@
210
 
231
 
211
 	deinstall_args=
232
 	deinstall_args=
212
 	is_yes ${opt_force} && deinstall_args="-f"
233
 	is_yes ${opt_force} && deinstall_args="-f"
Lines 218-224 Link Here
218
 
239
 
219
 #ifdef WITH_PKGSRC
240
 #ifdef WITH_PKGSRC
220
 	if [ -e "${PKG_DBDIR}/$1/+PRESERVE" ]; then
241
 	if [ -e "${PKG_DBDIR}/$1/+PRESERVE" ]; then
221
@@ -915,7 +989,11 @@
242
@@ -915,7 +968,11 @@
222
 		*)		subdir="${OS_MAJOR}-stable" ;;
243
 		*)		subdir="${OS_MAJOR}-stable" ;;
223
 		esac
244
 		esac
224
 
245
 
Lines 230-236 Link Here
230
 #endif
251
 #endif
231
 #endif
252
 #endif
232
 		uri="${PACKAGEROOT}${uri_path}${pkg}"
253
 		uri="${PACKAGEROOT}${uri_path}${pkg}"
233
@@ -987,7 +1065,11 @@
254
@@ -987,7 +1044,11 @@
234
 		return 1
255
 		return 1
235
 	fi
256
 	fi
236
 #else
257
 #else
Lines 242-248 Link Here
242
 #endif
263
 #endif
243
 #endif
264
 #endif
244
 }
265
 }
245
@@ -1031,12 +1113,17 @@
266
@@ -1031,12 +1092,17 @@
246
 }
267
 }
247
 
268
 
248
 preserve_libs() {
269
 preserve_libs() {
Lines 262-268 Link Here
262
 		case ${file##*/} in
283
 		case ${file##*/} in
263
 		lib*.so.[0-9]*)
284
 		lib*.so.[0-9]*)
264
 			if [ -f "${file}" ]; then
285
 			if [ -f "${file}" ]; then
265
@@ -1080,20 +1167,30 @@
286
@@ -1055,7 +1121,7 @@
287
 clean_libs() {
288
 	local delete_files file dest
289
 
290
-	if empty ${preserved_files} || ! is_yes ${opt_preserve_libs}; then
291
+	if ! is_yes ${opt_preserve_libs} || empty ${preserved_files}; then
292
 		return 0
293
 	fi
294
 
295
@@ -1080,20 +1146,30 @@
266
 fix_dependencies() {
296
 fix_dependencies() {
267
 #ifndef WITH_PKGSRC
297
 #ifndef WITH_PKGSRC
268
 #ifndef WITH_OPENBSD
298
 #ifndef WITH_OPENBSD
Lines 295-301 Link Here
295
 			fi
325
 			fi
296
 		fi
326
 		fi
297
 	done
327
 	done
298
@@ -1102,6 +1199,11 @@
328
@@ -1102,6 +1178,11 @@
299
 }
329
 }
300
 
330
 
301
 update_dependencies() {
331
 update_dependencies() {
Lines 307-313 Link Here
307
 	local p req_by
337
 	local p req_by
308
 
338
 
309
 	pkg_required_by 'req_by' "$2"
339
 	pkg_required_by 'req_by' "$2"
310
@@ -1114,6 +1216,7 @@
340
@@ -1114,6 +1195,7 @@
311
 			update_pkgdep "$p" "$1-[^-]*" "$2" || return 1
341
 			update_pkgdep "$p" "$1-[^-]*" "$2" || return 1
312
 		done
342
 		done
313
 	fi
343
 	fi
Lines 315-321 Link Here
315
 }
345
 }
316
 
346
 
317
 have_pkgdep() {
347
 have_pkgdep() {
318
@@ -1122,7 +1225,7 @@
348
@@ -1122,7 +1204,7 @@
319
 	if [ -r "${PKG_DBDIR}/$1/+CONTENTS" ]; then
349
 	if [ -r "${PKG_DBDIR}/$1/+CONTENTS" ]; then
320
 		while read X; do
350
 		while read X; do
321
 			case $X in
351
 			case $X in
Lines 324-330 Link Here
324
 				return 0 ;;
354
 				return 0 ;;
325
 			[!@]*)	break ;;
355
 			[!@]*)	break ;;
326
 			esac
356
 			esac
327
@@ -1134,7 +1237,7 @@
357
@@ -1134,7 +1216,7 @@
328
 
358
 
329
 update_pkgdep() {
359
 update_pkgdep() {
330
 	update_file "${PKG_DBDIR}/$1/+CONTENTS" \
360
 	update_file "${PKG_DBDIR}/$1/+CONTENTS" \
Lines 333-339 Link Here
333
 }
363
 }
334
 
364
 
335
 delete_pkgdep() {
365
 delete_pkgdep() {
336
@@ -1325,7 +1428,7 @@
366
@@ -1325,7 +1407,7 @@
337
 
367
 
338
 init_install() {
368
 init_install() {
339
 	case $1 in
369
 	case $1 in
Lines 342-348 Link Here
342
 		set_pkg_vars_for_binary "$1" || return 1 ;;
372
 		set_pkg_vars_for_binary "$1" || return 1 ;;
343
 	/*)	set_port_vars "$1" || return 1 ;;
373
 	/*)	set_port_vars "$1" || return 1 ;;
344
 	*)	set_port_vars "${PORTSDIR}/$1" || return 1 ;;
374
 	*)	set_port_vars "${PORTSDIR}/$1" || return 1 ;;
345
@@ -1351,7 +1454,7 @@
375
@@ -1351,7 +1433,7 @@
346
 	done
376
 	done
347
 
377
 
348
 	case ${replace_with} in
378
 	case ${replace_with} in
Lines 351-357 Link Here
351
 		pkg_binary=${replace_with} ;;
381
 		pkg_binary=${replace_with} ;;
352
 	?*)
382
 	?*)
353
 		pkg_portdir=${replace_with}
383
 		pkg_portdir=${replace_with}
354
@@ -1428,6 +1531,12 @@
384
@@ -1428,6 +1510,12 @@
355
 do_replace() {
385
 do_replace() {
356
 	local pkg_log pkg_tmpdir old_package old_required_by preserved_files
386
 	local pkg_log pkg_tmpdir old_package old_required_by preserved_files
357
 
387
 
Lines 364-370 Link Here
364
 	init_replace "$1" || { status=skipped; return 0; }
394
 	init_replace "$1" || { status=skipped; return 0; }
365
 
395
 
366
 	if [ "${cur_pkg_name}" != "${pkg_name}" ]; then
396
 	if [ "${cur_pkg_name}" != "${pkg_name}" ]; then
367
@@ -1482,7 +1591,9 @@
397
@@ -1482,7 +1570,9 @@
368
 	fi
398
 	fi
369
 
399
 
370
 	pkg_tmpdir="${tmpdir}/${cur_pkg_name}"
400
 	pkg_tmpdir="${tmpdir}/${cur_pkg_name}"
Lines 374-380 Link Here
374
 
404
 
375
 	if ! find_package 'old_package' "${cur_pkg_name}"; then
405
 	if ! find_package 'old_package' "${cur_pkg_name}"; then
376
 		old_package="${pkg_tmpdir}/${cur_pkg_name}${PKG_SUFX}"
406
 		old_package="${pkg_tmpdir}/${cur_pkg_name}${PKG_SUFX}"
377
@@ -1491,7 +1602,11 @@
407
@@ -1491,7 +1581,11 @@
378
 	if ! {
408
 	if ! {
379
 		create_dir "${pkg_tmpdir}" &&
409
 		create_dir "${pkg_tmpdir}" &&
380
 		backup_package "${cur_pkg_name}" "${old_package}" &&
410
 		backup_package "${cur_pkg_name}" "${old_package}" &&
Lines 387-393 Link Here
387
 		preserve_libs "${cur_pkg_name}"
417
 		preserve_libs "${cur_pkg_name}"
388
 	}; then
418
 	}; then
389
 		log="backup error"
419
 		log="backup error"
390
@@ -1503,6 +1618,9 @@
420
@@ -1503,6 +1597,9 @@
391
 		if install_package "${pkg_binary:-${pkg_portdir}}" "${pkg_log}"; then
421
 		if install_package "${pkg_binary:-${pkg_portdir}}" "${pkg_log}"; then
392
 			status=done
422
 			status=done
393
 			cur_pkg_pkgdir=${PKG_DBDIR}/${pkg_name}
423
 			cur_pkg_pkgdir=${PKG_DBDIR}/${pkg_name}
Lines 397-403 Link Here
397
 		else
427
 		else
398
 			log="install error"
428
 			log="install error"
399
 			restore_package "${old_package}" || {
429
 			restore_package "${old_package}" || {
400
@@ -1515,8 +1633,10 @@
430
@@ -1515,8 +1612,10 @@
401
 		log="deinstall error"
431
 		log="deinstall error"
402
 	fi
432
 	fi
403
 
433
 
Lines 408-414 Link Here
408
 	process_package "${old_package}" ||
438
 	process_package "${old_package}" ||
409
 		warn "Failed to keep the old version."
439
 		warn "Failed to keep the old version."
410
 	clean_libs ||
440
 	clean_libs ||
411
@@ -1527,7 +1647,11 @@
441
@@ -1527,7 +1626,11 @@
412
 	case ${status} in
442
 	case ${status} in
413
 	done)
443
 	done)
414
 		fix_dependencies "${pkg_name}" || return 1
444
 		fix_dependencies "${pkg_name}" || return 1

Return to bug 182371