FreeBSD Bugzilla – Attachment 136995 Details for
Bug 182371
ports-mgmt/pkg_replace: fixup pattrn matching in pkg_glob() function
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
ports-mgmt__pkg_replace.diff
ports-mgmt__pkg_replace.diff (text/plain), 7.60 KB, created by
Iouri V. Ivliev
on 2013-09-25 14:00:01 UTC
(
hide
)
Description:
ports-mgmt__pkg_replace.diff
Filename:
MIME Type:
Creator:
Iouri V. Ivliev
Created:
2013-09-25 14:00:01 UTC
Size:
7.60 KB
patch
obsolete
>diff -ruN ports-mgmt/pkg_replace.orig/files/patch-pkg_replace_pkgng ports-mgmt/pkg_replace/files/patch-pkg_replace_pkgng >--- ports-mgmt/pkg_replace.orig/files/patch-pkg_replace_pkgng 2013-09-25 14:50:58.577970511 +0400 >+++ ports-mgmt/pkg_replace/files/patch-pkg_replace_pkgng 2013-09-25 13:51:52.558672626 +0400 >@@ -1,5 +1,5 @@ >---- sbin/pkg_replace/pkg_replace.sh.orig 2007-01-25 21:55:46.000000000 +0900 >-+++ sbin/pkg_replace/pkg_replace.sh 2013-09-03 06:58:43.000000000 +0900 >+--- sbin/pkg_replace/pkg_replace.sh.orig 2007-01-25 12:55:46.000000000 +0000 >++++ sbin/pkg_replace/pkg_replace.sh 2013-09-25 09:49:37.926799231 +0000 > @@ -125,14 +125,27 @@ > : ${PACKAGEROOT="ftp://ftp.NetBSD.org"} > : ${PKG_SUFX=".tgz"} >@@ -96,45 +96,66 @@ > > pkg_name=$1 > pkg_pkgdir=${PKG_DBDIR}/$1 >-@@ -526,10 +558,27 @@ >+@@ -518,7 +550,7 @@ >+ } >+ >+ pkg_glob() { >+- local p _var _arg _pattern _deps _req_by >++ local p _var _arg _pattern _deps _req_by _pkgs >+ >+ _var=$1; shift >+ eval ${_var}= >+@@ -526,30 +558,27 @@ > > for _arg in ${1+"$@"}; do > _pattern=${_arg#${PKG_DBDIR}/} > + if is_yes ${use_pkgng}; then >-+ for p in `${PKG_INFO} -g "${_pattern}" 2>/dev/null`; do >-+ if is_yes ${opt_depends}; then >-+ pkg_depends '_deps' "$p" >-+ eval ${_var}=\"\$${_var} \${_deps}\" >-+ fi >-+ >-+ eval ${_var}=\"\$${_var} \$p\" >- >-+ if is_yes ${opt_required_by}; then >-+ pkg_required_by '_req_by' "$p" >-+ eval ${_var}=\"\$${_var} \${_req_by}\" >-+ fi >-+ done >-+ if [ -z "${pkgs}" ]; then >-+ warn "No such installed package: ${_arg}" >-+ fi >++ _pkgs="$(${PKG_INFO} -g "${_pattern}" 2>/dev/null || :)" > + else >- case ${_pattern} in >++ _pattern="$(echo "${_pattern}" | sed -Ee 's/(\\)?([.+])/\\\2/g')" >++ _pkgs="$(${PKG_INFO} -EX "^${_pattern}-([a-z]?[0-9]+\.)?([a-z]?[0-9]*[a-z]?\.?)*([_,][0-9]+)*\$" 2>/dev/null || :)" >++ fi >++ if [ -z "${_pkgs}" ]; then >++ warn "No such installed package: ${_arg}" >++ continue >++ fi >++ for p in ${_pkgs}; do >++ if is_yes ${opt_depends}; then >++ pkg_depends '_deps' "$p" >++ eval ${_var}=\"\$${_var} \${_deps}\" >++ fi >+ >+- case ${_pattern} in > - *\**|*-pl[0-9]*|*-[0-9]*[0-9.][a-z]|*-[0-9]*[0-9]) ;; > - *) _pattern="${_pattern}-[0-9]*[0-9a-z]" ;; >-+ *\**|*-[0-9]*|*-[brv.][0-9]*|*-a.[0-9]*|*-pl[0-9]*|*-b.r[0-9]*|*-cr.[a-z]*) ;; >-+ *) _pattern="${_pattern}-[0-9]*[0-9a-zA-Z]" ;; >- esac >- >- for p in ${PKG_DBDIR}/${_pattern}/+CONTENTS; do >-@@ -552,6 +601,7 @@ >- warn "No such installed package: ${_arg}" >+- esac >+- >+- for p in ${PKG_DBDIR}/${_pattern}/+CONTENTS; do >+- if [ -e "$p" ]; then >+- p=${p#${PKG_DBDIR}/} >+- p=${p%/+CONTENTS} >+- >+- if is_yes ${opt_depends}; then >+- pkg_depends '_deps' "$p" >+- eval ${_var}=\"\$${_var} \${_deps}\" >+- fi >+- >+- eval ${_var}=\"\$${_var} \$p\" >++ eval ${_var}=\"\$${_var} \$p\" >+ >+- if is_yes ${opt_required_by}; then >+- pkg_required_by '_req_by' "$p" >+- eval ${_var}=\"\$${_var} \${_req_by}\" >+- fi >+- else >+- warn "No such installed package: ${_arg}" >++ if is_yes ${opt_required_by}; then >++ pkg_required_by '_req_by' "$p" >++ eval ${_var}=\"\$${_var} \${_req_by}\" > fi > done >-+ fi > done >- >- set -f >-@@ -568,6 +618,12 @@ >+@@ -568,6 +597,12 @@ > done < "${PKG_DBDIR}/$2/+REQUIRING" > fi > #else >@@ -147,7 +168,7 @@ > if [ -r "${PKG_DBDIR}/$2/+CONTENTS" ]; then > while read X; do > case $X in >-@@ -588,6 +644,12 @@ >+@@ -588,6 +623,12 @@ > pkg_required_by() { > local X > >@@ -160,7 +181,7 @@ > eval $1= > if [ -r "${PKG_DBDIR}/$2/+REQUIRED_BY" ]; then > while read X; do >-@@ -597,7 +659,7 @@ >+@@ -597,7 +638,7 @@ > } > > pkg_sort() { >@@ -169,7 +190,7 @@ > > _var=$1; shift > _sorted= >-@@ -612,7 +674,13 @@ >+@@ -612,7 +653,13 @@ > *" ${_arg} "*) continue ;; > esac > >@@ -184,7 +205,7 @@ > pkg_depends '_deps' "${_arg}" > > for p in ${_deps}; do >-@@ -715,7 +783,7 @@ >+@@ -715,7 +762,7 @@ > if empty ${_log}; then > try "$@" || return $? > else >@@ -193,7 +214,7 @@ > > { try "$@" || echo $? > "${_cookie}"; } | tee -a "${_log}" || > warn "tee(1) failed." >-@@ -757,9 +825,11 @@ >+@@ -757,9 +804,11 @@ > info "Installing '$1'" > > case $1 in >@@ -206,7 +227,7 @@ > > xtry "${2-}" ${PKG_ADD} ${install_args} "$1" || return 1 > ;; >-@@ -795,7 +865,11 @@ >+@@ -795,7 +844,11 @@ > > deinstall_args= > is_yes ${opt_force} && deinstall_args="-f" >@@ -218,7 +239,7 @@ > > #ifdef WITH_PKGSRC > if [ -e "${PKG_DBDIR}/$1/+PRESERVE" ]; then >-@@ -915,7 +989,11 @@ >+@@ -915,7 +968,11 @@ > *) subdir="${OS_MAJOR}-stable" ;; > esac > >@@ -230,7 +251,7 @@ > #endif > #endif > uri="${PACKAGEROOT}${uri_path}${pkg}" >-@@ -987,7 +1065,11 @@ >+@@ -987,7 +1044,11 @@ > return 1 > fi > #else >@@ -242,7 +263,7 @@ > #endif > #endif > } >-@@ -1031,12 +1113,17 @@ >+@@ -1031,12 +1092,17 @@ > } > > preserve_libs() { >@@ -262,7 +283,16 @@ > case ${file##*/} in > lib*.so.[0-9]*) > if [ -f "${file}" ]; then >-@@ -1080,20 +1167,30 @@ >+@@ -1055,7 +1121,7 @@ >+ clean_libs() { >+ local delete_files file dest >+ >+- if empty ${preserved_files} || ! is_yes ${opt_preserve_libs}; then >++ if ! is_yes ${opt_preserve_libs} || empty ${preserved_files}; then >+ return 0 >+ fi >+ >+@@ -1080,20 +1146,30 @@ > fix_dependencies() { > #ifndef WITH_PKGSRC > #ifndef WITH_OPENBSD >@@ -295,7 +325,7 @@ > fi > fi > done >-@@ -1102,6 +1199,11 @@ >+@@ -1102,6 +1178,11 @@ > } > > update_dependencies() { >@@ -307,7 +337,7 @@ > local p req_by > > pkg_required_by 'req_by' "$2" >-@@ -1114,6 +1216,7 @@ >+@@ -1114,6 +1195,7 @@ > update_pkgdep "$p" "$1-[^-]*" "$2" || return 1 > done > fi >@@ -315,7 +345,7 @@ > } > > have_pkgdep() { >-@@ -1122,7 +1225,7 @@ >+@@ -1122,7 +1204,7 @@ > if [ -r "${PKG_DBDIR}/$1/+CONTENTS" ]; then > while read X; do > case $X in >@@ -324,7 +354,7 @@ > return 0 ;; > [!@]*) break ;; > esac >-@@ -1134,7 +1237,7 @@ >+@@ -1134,7 +1216,7 @@ > > update_pkgdep() { > update_file "${PKG_DBDIR}/$1/+CONTENTS" \ >@@ -333,7 +363,7 @@ > } > > delete_pkgdep() { >-@@ -1325,7 +1428,7 @@ >+@@ -1325,7 +1407,7 @@ > > init_install() { > case $1 in >@@ -342,7 +372,7 @@ > set_pkg_vars_for_binary "$1" || return 1 ;; > /*) set_port_vars "$1" || return 1 ;; > *) set_port_vars "${PORTSDIR}/$1" || return 1 ;; >-@@ -1351,7 +1454,7 @@ >+@@ -1351,7 +1433,7 @@ > done > > case ${replace_with} in >@@ -351,7 +381,7 @@ > pkg_binary=${replace_with} ;; > ?*) > pkg_portdir=${replace_with} >-@@ -1428,6 +1531,12 @@ >+@@ -1428,6 +1510,12 @@ > do_replace() { > local pkg_log pkg_tmpdir old_package old_required_by preserved_files > >@@ -364,7 +394,7 @@ > init_replace "$1" || { status=skipped; return 0; } > > if [ "${cur_pkg_name}" != "${pkg_name}" ]; then >-@@ -1482,7 +1591,9 @@ >+@@ -1482,7 +1570,9 @@ > fi > > pkg_tmpdir="${tmpdir}/${cur_pkg_name}" >@@ -374,7 +404,7 @@ > > if ! find_package 'old_package' "${cur_pkg_name}"; then > old_package="${pkg_tmpdir}/${cur_pkg_name}${PKG_SUFX}" >-@@ -1491,7 +1602,11 @@ >+@@ -1491,7 +1581,11 @@ > if ! { > create_dir "${pkg_tmpdir}" && > backup_package "${cur_pkg_name}" "${old_package}" && >@@ -387,7 +417,7 @@ > preserve_libs "${cur_pkg_name}" > }; then > log="backup error" >-@@ -1503,6 +1618,9 @@ >+@@ -1503,6 +1597,9 @@ > if install_package "${pkg_binary:-${pkg_portdir}}" "${pkg_log}"; then > status=done > cur_pkg_pkgdir=${PKG_DBDIR}/${pkg_name} >@@ -397,7 +427,7 @@ > else > log="install error" > restore_package "${old_package}" || { >-@@ -1515,8 +1633,10 @@ >+@@ -1515,8 +1612,10 @@ > log="deinstall error" > fi > >@@ -408,7 +438,7 @@ > process_package "${old_package}" || > warn "Failed to keep the old version." > clean_libs || >-@@ -1527,7 +1647,11 @@ >+@@ -1527,7 +1626,11 @@ > case ${status} in > done) > fix_dependencies "${pkg_name}" || return 1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 182371
: 136995 |
136996
|
136997