pkgtools/pkg_rolling-replace: Update to 0.24.9
When using the -u option to find mismatched packages, mark each affected package with 'mismatch=YES'. Otherwise, consider such packages as targets to rebuild. ok gdt@.
This commit is contained in:
parent
51c58acbfc
commit
fd4ea6db8e
3 changed files with 44 additions and 29 deletions
|
@ -1,6 +1,6 @@
|
|||
# $NetBSD: Makefile,v 1.45 2019/08/27 19:30:36 gdt Exp $
|
||||
# $NetBSD: Makefile,v 1.46 2021/01/09 19:12:46 rhialto Exp $
|
||||
|
||||
PKGNAME= pkg_rolling-replace-0.24.8
|
||||
PKGNAME= pkg_rolling-replace-0.24.9
|
||||
CATEGORIES= pkgtools
|
||||
|
||||
MAINTAINER= gdt@NetBSD.org
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: pkg_rolling-replace.8,v 1.20 2015/02/12 08:22:16 abs Exp $
|
||||
.\" $NetBSD: pkg_rolling-replace.8,v 1.21 2021/01/09 19:12:46 rhialto Exp $
|
||||
.Dd February 1, 2010
|
||||
.Dt PKG_ROLLING-REPLACE 8
|
||||
.Os
|
||||
|
@ -16,9 +16,10 @@
|
|||
.Nm
|
||||
runs
|
||||
.Dq make replace
|
||||
on packages that have been marked to have unsafe dependencies or have
|
||||
been marked to be rebuilt.
|
||||
Optionally it can replace any outdated packages (as reported by
|
||||
on packages that have been marked to have unsafe dependencies,
|
||||
to be mismatched, or marked to be rebuilt.
|
||||
Optionally it can discover, mark and replace any mismatched packages
|
||||
(as reported by
|
||||
.Xr pkg_chk 8 )
|
||||
as well.
|
||||
.Pp
|
||||
|
@ -68,13 +69,19 @@ packages).
|
|||
(Usually this results in packages being upgraded to newer versions,
|
||||
assuming the pkgsrc tree is more recent than the currently installed
|
||||
packages.)
|
||||
The packages discovered this way will be marked as mismatched, so that
|
||||
in a re-run of
|
||||
.Nm
|
||||
you don't need to repeat the
|
||||
.Fl u
|
||||
flag.
|
||||
.Ss Options
|
||||
.Bl -tag -width xxxxxxxx
|
||||
.It Fl B
|
||||
Pass
|
||||
.Dq -B
|
||||
to
|
||||
.Xl pkg_chk 8
|
||||
.Xr pkg_chk 8
|
||||
to also mark any packages with any change in build version data.
|
||||
.It Fl D Ar VARIABLE=VALUE
|
||||
Passes VARIABLE=VALUE to each make call.
|
||||
|
@ -122,8 +129,10 @@ This will replace packages more aggressively and can be used to solve
|
|||
shared library problems.
|
||||
.It Fl u
|
||||
Use
|
||||
.Xl pkg_chk 8
|
||||
to check for outdated packages, and replace those too.
|
||||
.Xr pkg_chk 8
|
||||
to check for mismatched packages, mark them with 'mismatch=YES',
|
||||
and replace those too.
|
||||
Otherwise, consider packages marked 'mismatch=YES' to be mismatched.
|
||||
.It Fl v
|
||||
Verbose output.
|
||||
.It Fl X Ar pkgs
|
||||
|
@ -131,11 +140,8 @@ Exclude the comma-separated list of package base names
|
|||
from being rebuilt for any reason.
|
||||
.It Fl x Ar pkgs
|
||||
Exclude the comma-separated list of package base names
|
||||
from the check for outdated packages.
|
||||
This has no effect if the
|
||||
.Fl u
|
||||
flag is not given,
|
||||
and does not prevent packages from being rebuilt for any other reason
|
||||
from the check for mismatched packages.
|
||||
This does not prevent packages from being rebuilt for any other reason
|
||||
(such as being a dependency of another package that is also rebuilt,
|
||||
or having any of the
|
||||
.Xr pkg_admin 1
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $NetBSD: pkg_rolling-replace.sh,v 1.40 2019/08/27 19:30:36 gdt Exp $
|
||||
# $NetBSD: pkg_rolling-replace.sh,v 1.41 2021/01/09 19:12:46 rhialto Exp $
|
||||
#<license>
|
||||
# Copyright (c) 2006 BBN Technologies Corp. All rights reserved.
|
||||
#
|
||||
|
@ -108,12 +108,12 @@ usage()
|
|||
-n Don't actually do make replace
|
||||
-r Just replace, don't create binary packages
|
||||
-s Replace even if the ABIs are still compatible ("strict")
|
||||
-u Update outdated packages
|
||||
-u Update mismatched packages
|
||||
-v Verbose
|
||||
-D VAR=VAL Passes given variables and values to make
|
||||
-L <path> Log to path (<path>/pkgdir/pkg)
|
||||
-X <pkg> exclude <pkg> from being rebuilt
|
||||
-x <pkg> exclude <pkg> from outdated check
|
||||
-x <pkg> exclude <pkg> from mismatch check
|
||||
|
||||
pkg_rolling-replace does 'make replace' on one package at a time,
|
||||
tsorting the packages being replaced according to their
|
||||
|
@ -126,14 +126,14 @@ pkg_rolling-replace can be used in one of two ways:
|
|||
'pkg_rolling-replace' (no arguments) to rebuild them against the
|
||||
new version.
|
||||
|
||||
- 'pkg_chk -u' will delete all your mismatched (outdated)
|
||||
packages, then reinstall them one at a time, leaving you without
|
||||
those packages in the meantime. 'pkg_rolling-replace -u' will
|
||||
instead upgrade them in place, allowing you to keep using your
|
||||
system in the meantime (maybe...if you're lucky...because
|
||||
pkg_rolling-replace replaces the \"deepest\" dependency first,
|
||||
things could still break if that happens to be a fundamental
|
||||
library whose ABI has changed).
|
||||
- 'pkg_chk -u' will delete all your mismatched packages (where the
|
||||
package version does not match the pkgsrc version), then reinstall
|
||||
them one at a time, leaving you without those packages in the
|
||||
meantime. 'pkg_rolling-replace -u' will instead upgrade them in
|
||||
place, allowing you to keep using your system in the meantime
|
||||
(maybe...if you're lucky...because pkg_rolling-replace replaces
|
||||
the \"deepest\" dependency first, things could still break if that
|
||||
happens to be a fundamental library whose ABI has changed).
|
||||
"
|
||||
exit 1
|
||||
}
|
||||
|
@ -158,6 +158,9 @@ check_packages_mismatched()
|
|||
# than category/pkg and remove the version.
|
||||
for word in $line; do
|
||||
if [ "$(echo $word | egrep '^[^/]+-[0-9][^-/]*$')" ]; then
|
||||
if [ -z "$opt_F" ]; then
|
||||
pkg_admin set mismatch=YES "$word" 1>&2
|
||||
fi
|
||||
echo $word | sed 's/-[0-9][^-]*$//'
|
||||
break #done with this line
|
||||
fi
|
||||
|
@ -374,14 +377,18 @@ SUCCEEDED=""
|
|||
FAILED=""
|
||||
|
||||
MISMATCH_TODO=
|
||||
if [ -n "$opt_u" -o -n "$opt_F" ]; then
|
||||
if [ -n "$opt_u" ]; then
|
||||
echo "${OPI} Checking for mismatched installed packages using pkg_chk"
|
||||
MISMATCH_TODO=$(check_packages_mismatched)
|
||||
echo "${OPI} Excluding the following mismatched packages:"
|
||||
echo "${OPC} EXCLUDE=[$EXCLUDE]"
|
||||
MISMATCH_TODO=$(exclude $EXCLUDE --from $MISMATCH_TODO)
|
||||
else
|
||||
echo "${OPI} Checking for mismatched installed packages (mismatch=YES)"
|
||||
MISMATCH_TODO=$(check_packages_w_flag 'mismatch')
|
||||
fi
|
||||
|
||||
echo "${OPI} Excluding the following mismatched packages:"
|
||||
echo "${OPC} EXCLUDE=[$EXCLUDE]"
|
||||
MISMATCH_TODO=$(exclude $EXCLUDE --from $MISMATCH_TODO)
|
||||
|
||||
if [ -z "$opt_F" ]; then
|
||||
echo "${OPI} Checking for rebuild-requested installed packages (rebuild=YES)"
|
||||
REBUILD_TODO=$(check_packages_w_flag 'rebuild')
|
||||
|
@ -549,6 +556,8 @@ while [ -n "$REPLACE_TODO" ]; do
|
|||
abort "package $pkg still has unsafe_depends."
|
||||
[ -z "$(${PKG_INFO} -Q rebuild $pkg)" ] || \
|
||||
abort "package $pkg is still requested to be rebuilt."
|
||||
[ -z "$(${PKG_INFO} -Q mismatch $pkg)" ] || \
|
||||
abort "package $pkg is still a mismatched version."
|
||||
fi
|
||||
# If -r not given, make a binary package.
|
||||
if [ -z "$opt_r" -a -z "$fail" -a -z "$opt_F" ]; then
|
||||
|
|
Loading…
Reference in a new issue