| @@ -1,217 +1,217 @@ | | | @@ -1,217 +1,217 @@ |
1 | # $NetBSD: replace.mk,v 1.8 2021/01/17 20:18:42 rhialto Exp $ | | 1 | # $NetBSD: replace.mk,v 1.9 2024/01/26 12:42:01 riastradh Exp $ |
2 | # | | 2 | # |
3 | | | 3 | |
4 | # _pkgformat-destdir-replace: | | 4 | # _pkgformat-destdir-replace: |
5 | # Updates a package in-place on the system. | | 5 | # Updates a package in-place on the system. |
6 | # | | 6 | # |
7 | # See also: | | 7 | # See also: |
8 | # replace | | 8 | # replace |
9 | # | | 9 | # |
10 | # XXX: The whole replacement, from deinstalling the old package up | | 10 | # XXX: The whole replacement, from deinstalling the old package up |
11 | # to installing the new package, should be one transaction. | | 11 | # to installing the new package, should be one transaction. |
12 | # | | 12 | # |
13 | _pkgformat-replace: \ | | 13 | _pkgformat-replace: \ |
14 | replace-tarup \ | | 14 | replace-tarup \ |
15 | replace-preserve-installed-info \ | | 15 | replace-preserve-installed-info \ |
16 | replace-preserve-required-by \ | | 16 | replace-preserve-required-by \ |
17 | deinstall \ | | 17 | deinstall \ |
18 | install-clean \ | | 18 | install-clean \ |
19 | install \ | | 19 | install \ |
20 | replace-fixup-required-by \ | | 20 | replace-fixup-required-by \ |
21 | replace-fixup-installed-info \ | | 21 | replace-fixup-installed-info \ |
22 | .PHONY | | 22 | .PHONY |
23 | | | 23 | |
24 | # tarup is omitted for DESTDIR, because the benefits are very small | | 24 | # tarup is omitted for DESTDIR, because the benefits are very small |
25 | _pkgformat-destdir-replace: \ | | 25 | _pkgformat-destdir-replace: \ |
26 | replace-destdir \ | | 26 | replace-destdir \ |
27 | .PHONY | | 27 | .PHONY |
28 | | | 28 | |
29 | # _pkgformat-undo-replace: | | 29 | # _pkgformat-undo-replace: |
30 | # Undoes the actions from a previous _pkgformat-replace. | | 30 | # Undoes the actions from a previous _pkgformat-replace. |
31 | # | | 31 | # |
32 | # See also: | | 32 | # See also: |
33 | # undo-replace | | 33 | # undo-replace |
34 | # | | 34 | # |
35 | _pkgformat-undo-replace: \ | | 35 | _pkgformat-undo-replace: \ |
36 | undo-replace-check \ | | 36 | undo-replace-check \ |
37 | replace-preserve-installed-info \ | | 37 | replace-preserve-installed-info \ |
38 | replace-preserve-required-by \ | | 38 | replace-preserve-required-by \ |
39 | deinstall \ | | 39 | deinstall \ |
40 | undo-replace-install \ | | 40 | undo-replace-install \ |
41 | replace-fixup-required-by \ | | 41 | replace-fixup-required-by \ |
42 | replace-clean \ | | 42 | replace-clean \ |
43 | .PHONY | | 43 | .PHONY |
44 | | | 44 | |
45 | _pkgformat-destdir-undo-replace: \ | | 45 | _pkgformat-destdir-undo-replace: \ |
46 | undo-replace-check \ | | 46 | undo-replace-check \ |
47 | undo-destdir-replace-install \ | | 47 | undo-destdir-replace-install \ |
48 | replace-clean \ | | 48 | replace-clean \ |
49 | .PHONY | | 49 | .PHONY |
50 | | | 50 | |
51 | _INSTALLED_INFO_FILE= ${WRKDIR}/.replace-+INSTALLED_INFO | | 51 | _INSTALLED_INFO_FILE= ${WRKDIR}/.replace-+INSTALLED_INFO |
52 | _REQUIRED_BY_FILE= ${WRKDIR}/.replace-+REQUIRED_BY | | 52 | _REQUIRED_BY_FILE= ${WRKDIR}/.replace-+REQUIRED_BY |
53 | | | 53 | |
54 | _COOKIE.replace= ${WRKDIR}/.replace_done | | 54 | _COOKIE.replace= ${WRKDIR}/.replace_done |
55 | _REPLACE_OLDNAME_FILE= ${WRKDIR}/.replace_oldname | | 55 | _REPLACE_OLDNAME_FILE= ${WRKDIR}/.replace_oldname |
56 | _REPLACE_NEWNAME_FILE= ${WRKDIR}/.replace_newname | | 56 | _REPLACE_NEWNAME_FILE= ${WRKDIR}/.replace_newname |
57 | | | 57 | |
58 | _REPLACE_OLDNAME_CMD= \ | | 58 | _REPLACE_OLDNAME_CMD= \ |
59 | [ -f ${_REPLACE_OLDNAME_FILE} ] \ | | 59 | [ -f ${_REPLACE_OLDNAME_FILE} ] \ |
60 | || ${FAIL_MSG} "[${.TARGET}] ${_REPLACE_OLDNAME_FILE}: File not found"; \ | | 60 | || ${FAIL_MSG} "[${.TARGET}] ${_REPLACE_OLDNAME_FILE}: File not found"; \ |
61 | oldname=`${CAT} ${_REPLACE_OLDNAME_FILE}` | | 61 | oldname=`${CAT} ${_REPLACE_OLDNAME_FILE}` |
62 | | | 62 | |
63 | _REPLACE_NEWNAME_CMD= \ | | 63 | _REPLACE_NEWNAME_CMD= \ |
64 | [ -f ${_REPLACE_NEWNAME_FILE} ] \ | | 64 | [ -f ${_REPLACE_NEWNAME_FILE} ] \ |
65 | || ${FAIL_MSG} "[${.TARGET}] ${_REPLACE_NEWNAME_FILE}: File not found"; \ | | 65 | || ${FAIL_MSG} "[${.TARGET}] ${_REPLACE_NEWNAME_FILE}: File not found"; \ |
66 | newname=`${CAT} ${_REPLACE_NEWNAME_FILE}` | | 66 | newname=`${CAT} ${_REPLACE_NEWNAME_FILE}` |
67 | | | 67 | |
68 | # Verifies that there was a previous "replace" action performed that can be undone. | | 68 | # Verifies that there was a previous "replace" action performed that can be undone. |
69 | # | | 69 | # |
70 | undo-replace-check: .PHONY | | 70 | undo-replace-check: .PHONY |
71 | ${RUN} [ -f ${_COOKIE.replace} ] \ | | 71 | ${RUN} [ -f ${_COOKIE.replace} ] \ |
72 | || ${FAIL_MSG} "No replacement to undo!" | | 72 | || ${FAIL_MSG} "No replacement to undo!" |
73 | | | 73 | |
74 | # Generates a binary package for the (older) installed package using pkg_tarup. | | 74 | # Generates a binary package for the (older) installed package using pkg_tarup. |
75 | # | | 75 | # |
76 | replace-tarup: .PHONY | | 76 | replace-tarup: .PHONY |
77 | ${RUN} [ -x ${_PKG_TARUP_CMD:Q} ] \ | | 77 | ${RUN} [ -x ${_PKG_TARUP_CMD:Q} ] \ |
78 | || ${FAIL_MSG} ${_PKG_TARUP_CMD:Q}" was not found."; \ | | 78 | || ${FAIL_MSG} ${_PKG_TARUP_CMD:Q}" was not found."; \ |
79 | ${_REPLACE_OLDNAME_CMD}; \ | | 79 | ${_REPLACE_OLDNAME_CMD}; \ |
80 | ${PKGSRC_SETENV} PKG_DBDIR=${_PKG_DBDIR} PKG_SUFX=${PKG_SUFX} \ | | 80 | ${PKGSRC_SETENV} PKG_DBDIR=${_PKG_DBDIR} PKG_SUFX=${PKG_SUFX} \ |
81 | PKGREPOSITORY=${WRKDIR} \ | | 81 | PKGREPOSITORY=${WRKDIR} \ |
82 | ${_PKG_TARUP_CMD} $${oldname} || \ | | 82 | ${_PKG_TARUP_CMD} $${oldname} || \ |
83 | ${FAIL_MSG} "Could not pkg_tarup $${oldname}". | | 83 | ${FAIL_MSG} "Could not pkg_tarup $${oldname}". |
84 | | | 84 | |
85 | # Re-installs the old package that has been saved by replace-tarup. | | 85 | # Re-installs the old package that has been saved by replace-tarup. |
86 | # | | 86 | # |
87 | undo-replace-install: .PHONY | | 87 | undo-replace-install: .PHONY |
88 | @${PHASE_MSG} "Re-adding ${PKGNAME} from saved tar-up package." | | 88 | @${PHASE_MSG} "Re-adding ${PKGNAME} from saved tar-up package." |
89 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ | | 89 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ |
90 | ${ECHO} "Installing saved package ${WRKDIR}/$${oldname}${PKG_SUFX}"; \ | | 90 | ${ECHO} "Installing saved package ${WRKDIR}/$${oldname}${PKG_SUFX}"; \ |
91 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} ${WRKDIR}/$${oldname}${PKG_SUFX} | | 91 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} ${WRKDIR}/$${oldname}${PKG_SUFX} |
92 | | | 92 | |
93 | undo-destdir-replace-install: .PHONY | | 93 | undo-destdir-replace-install: .PHONY |
94 | @${PHASE_MSG} "Re-adding ${PKGNAME} from saved tar-up package." | | 94 | @${PHASE_MSG} "Re-adding ${PKGNAME} from saved tar-up package." |
95 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ | | 95 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ |
96 | ${ECHO} "Installing saved package ${WRKDIR}/$${oldname}${PKG_SUFX}"; \ | | 96 | ${ECHO} "Installing saved package ${WRKDIR}/$${oldname}${PKG_SUFX}"; \ |
97 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D ${WRKDIR}/$${oldname}${PKG_SUFX} | | 97 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D ${WRKDIR}/$${oldname}${PKG_SUFX} |
98 | | | 98 | |
99 | # Computes and saves the full names of the installed package to be replaced | | 99 | # Computes and saves the full names of the installed package to be replaced |
100 | # (oldname) and the package that will be installed (newname), so that these | | 100 | # (oldname) and the package that will be installed (newname), so that these |
101 | # names are available later. | | 101 | # names are available later. |
102 | # | | 102 | # |
103 | replace-names: .PHONY | | 103 | replace-names: .PHONY |
104 | ${RUN} if [ x"${OLDNAME}" = x ]; then \ | | 104 | ${RUN} if [ x"${OLDNAME}" = x ]; then \ |
105 | wildcard=${PKGWILDCARD:Q}; \ | | 105 | wildcard=${PKGWILDCARD:Q}; \ |
106 | else \ | | 106 | else \ |
107 | wildcard="${OLDNAME}-[0-9]*"; \ | | 107 | wildcard="${OLDNAME}-[0-9]*"; \ |
108 | fi; \ | | 108 | fi; \ |
109 | ${_PKG_BEST_EXISTS} "$${wildcard}" > ${_REPLACE_OLDNAME_FILE} | | 109 | ${_PKG_BEST_EXISTS} "$${wildcard}" > ${_REPLACE_OLDNAME_FILE} |
110 | ${RUN} ${ECHO} ${PKGNAME} > ${_REPLACE_NEWNAME_FILE} | | 110 | ${RUN} ${ECHO} ${PKGNAME} > ${_REPLACE_NEWNAME_FILE} |
111 | ${RUN} ${CP} -f ${_REPLACE_NEWNAME_FILE} ${_COOKIE.replace} | | 111 | ${RUN} ${CP} -f ${_REPLACE_NEWNAME_FILE} ${_COOKIE.replace} |
112 | | | 112 | |
113 | # Saves and removes the +INSTALLED_INFO file from the installed package. | | 113 | # Saves and removes the +INSTALLED_INFO file from the installed package. |
114 | # | | 114 | # |
115 | replace-preserve-installed-info: .PHONY | | 115 | replace-preserve-installed-info: .PHONY |
116 | @${STEP_MSG} "Preserving existing +INSTALLED_INFO file." | | 116 | @${STEP_MSG} "Preserving existing +INSTALLED_INFO file." |
117 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ | | 117 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ |
118 | installed_info="${_PKG_DBDIR}/$$oldname/+INSTALLED_INFO"; \ | | 118 | installed_info="${_PKG_DBDIR}/$$oldname/+INSTALLED_INFO"; \ |
119 | ${TEST} ! -f "$$installed_info" || \ | | 119 | ${TEST} ! -f "$$installed_info" || \ |
120 | ${MV} $$installed_info ${_INSTALLED_INFO_FILE} | | 120 | ${MV} $$installed_info ${_INSTALLED_INFO_FILE} |
121 | | | 121 | |
122 | # Saves and removes the +REQUIRED_BY file from the installed package. | | 122 | # Saves and removes the +REQUIRED_BY file from the installed package. |
123 | # | | 123 | # |
124 | replace-preserve-required-by: .PHONY | | 124 | replace-preserve-required-by: .PHONY |
125 | @${STEP_MSG} "Preserving existing +REQUIRED_BY file." | | 125 | @${STEP_MSG} "Preserving existing +REQUIRED_BY file." |
126 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ | | 126 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ |
127 | required_by="${_PKG_DBDIR}/$$oldname/+REQUIRED_BY"; \ | | 127 | required_by="${_PKG_DBDIR}/$$oldname/+REQUIRED_BY"; \ |
128 | ${TEST} ! -f "$$required_by" || \ | | 128 | ${TEST} ! -f "$$required_by" || \ |
129 | ${MV} $$required_by ${_REQUIRED_BY_FILE} | | 129 | ${MV} $$required_by ${_REQUIRED_BY_FILE} |
130 | | | 130 | |
131 | # Fixes the +CONTENTS files of dependent packages to refer to the | | 131 | # Fixes the +CONTENTS files of dependent packages to refer to the |
132 | # replacement package, and puts the +REQUIRED_BY file back into place. | | 132 | # replacement package, and puts the +REQUIRED_BY file back into place. |
133 | # It also sets the unsafe_depends_strict tag on each dependent package, | | 133 | # It also sets the unsafe_depends_strict tag on each dependent package, |
134 | # and sets the unsafe_depends tag if the replaced package has a different | | 134 | # and sets the unsafe_depends tag if the replaced package has a different |
135 | # version. | | 135 | # version. |
136 | # | | 136 | # |
137 | # XXX Only set unsafe_depends if there is an ABI change. | | 137 | # XXX Only set unsafe_depends if there is an ABI change. |
138 | # | | 138 | # |
139 | replace-fixup-required-by: .PHONY | | 139 | replace-fixup-required-by: .PHONY |
140 | @${STEP_MSG} "Fixing @pkgdep entries in dependent packages." | | 140 | @${STEP_MSG} "Fixing @pkgdep entries in dependent packages." |
141 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ | | 141 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ |
142 | ${_REPLACE_NEWNAME_CMD}; \ | | 142 | ${_REPLACE_NEWNAME_CMD}; \ |
143 | ${TEST} -f ${_REQUIRED_BY_FILE} || exit 0; \ | | 143 | ${TEST} -f ${_REQUIRED_BY_FILE} || exit 0; \ |
144 | ${CAT} ${_REQUIRED_BY_FILE} | \ | | 144 | ${CAT} ${_REQUIRED_BY_FILE} | \ |
145 | while read pkg; do \ | | 145 | while read pkg; do \ |
146 | case $$pkg in \ | | 146 | case $$pkg in \ |
147 | "") continue ;; \ | | 147 | "") continue ;; \ |
148 | /*) pkgdir="$$pkg" ;; \ | | 148 | /*) pkgdir="$$pkg" ;; \ |
149 | *) pkgdir="${_PKG_DBDIR}/$$pkg" ;; \ | | 149 | *) pkgdir="${_PKG_DBDIR}/$$pkg" ;; \ |
150 | esac; \ | | 150 | esac; \ |
151 | contents="$$pkgdir/+CONTENTS"; \ | | 151 | contents="$$pkgdir/+CONTENTS"; \ |
152 | newcontents="$$contents.$$$$"; \ | | 152 | newcontents="$$contents.$$$$"; \ |
153 | ${PKGSRC_SETENV} OLDNAME="$$oldname" NEWNAME="$$newname" \ | | 153 | ${PKGSRC_SETENV} OLDNAME="$$oldname" NEWNAME="$$newname" \ |
154 | ${AWK} '($$0 ~ "^@pkgdep " ENVIRON["OLDNAME"]) \ | | 154 | ${AWK} '($$0 ~ "^@pkgdep " ENVIRON["OLDNAME"]) \ |
155 | { print "@pkgdep " ENVIRON["NEWNAME"]; next } \ | | 155 | { print "@pkgdep " ENVIRON["NEWNAME"]; next } \ |
156 | { print }' \ | | 156 | { print }' \ |
157 | $$contents > $$newcontents; \ | | 157 | $$contents > $$newcontents; \ |
158 | ${MV} -f $$newcontents $$contents; \ | | 158 | ${MV} -f $$newcontents $$contents; \ |
159 | ${PKG_ADMIN} set unsafe_depends_strict=YES $$pkg; \ | | 159 | ${PKG_ADMIN} set unsafe_depends_strict=YES $$pkg; \ |
160 | if ${TEST} "$$oldname" != "$$newname"; then \ | | 160 | if ${TEST} "$$oldname" != "$$newname"; then \ |
161 | ${PKG_ADMIN} set unsafe_depends=YES $$pkg; \ | | 161 | ${PKG_ADMIN} set unsafe_depends=YES $$pkg; \ |
162 | fi; \ | | 162 | fi; \ |
163 | done; \ | | 163 | done; \ |
164 | ${MV} ${_REQUIRED_BY_FILE} ${_PKG_DBDIR}/$$newname/+REQUIRED_BY | | 164 | ${MV} ${_REQUIRED_BY_FILE} ${_PKG_DBDIR}/$$newname/+REQUIRED_BY |
165 | | | 165 | |
166 | # Removes unsafe_depends*, rebuild and mismatch tags from this package. | | 166 | # Removes unsafe_depends*, rebuild and mismatch tags from this package. |
167 | # | | 167 | # |
168 | replace-fixup-installed-info: .PHONY | | 168 | replace-fixup-installed-info: .PHONY |
169 | @${STEP_MSG} "Removing unsafe_depends and rebuild tags." | | 169 | @${STEP_MSG} "Removing unsafe_depends and rebuild tags." |
170 | ${RUN} ${_REPLACE_NEWNAME_CMD}; \ | | 170 | ${RUN} ${_REPLACE_NEWNAME_CMD}; \ |
171 | [ ! -f ${_INSTALLED_INFO_FILE} ] || \ | | 171 | [ ! -f ${_INSTALLED_INFO_FILE} ] || \ |
172 | ${MV} ${_INSTALLED_INFO_FILE} ${_PKG_DBDIR}/$$newname/+INSTALLED_INFO; \ | | 172 | ${MV} ${_INSTALLED_INFO_FILE} ${_PKG_DBDIR}/$$newname/+INSTALLED_INFO; \ |
173 | for var in unsafe_depends unsafe_depends_strict rebuild mismatch; do \ | | 173 | for var in unsafe_depends unsafe_depends_strict rebuild mismatch; do \ |
174 | ${PKG_ADMIN} unset $$var $$newname; \ | | 174 | ${PKG_ADMIN} unset $$var $$newname; \ |
175 | done | | 175 | done |
176 | | | 176 | |
177 | # Removes the state files for the "replace" target, so that it may be re-invoked. | | 177 | # Removes the state files for the "replace" target, so that it may be re-invoked. |
178 | # | | 178 | # |
179 | replace-clean: .PHONY | | 179 | replace-clean: .PHONY |
180 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ | | 180 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ |
181 | ${_REPLACE_NEWNAME_CMD}; \ | | 181 | ${_REPLACE_NEWNAME_CMD}; \ |
182 | ${RM} -f ${WRKDIR}/$$oldname${PKG_SUFX}; \ | | 182 | ${RM} -f ${WRKDIR}/$$oldname${PKG_SUFX}; \ |
183 | ${RM} -f ${WRKDIR}/$$newname${PKG_SUFX}; \ | | 183 | ${RM} -f ${WRKDIR}/$$newname${PKG_SUFX}; \ |
184 | ${RM} -f ${_REPLACE_OLDNAME_FILE} ${_REPLACE_NEWNAME_FILE} \ | | 184 | ${RM} -f ${_REPLACE_OLDNAME_FILE} ${_REPLACE_NEWNAME_FILE} \ |
185 | ${_COOKIE.replace} | | 185 | ${_COOKIE.replace} |
186 | | | 186 | |
187 | # Logically we would like to do a "pkg_add -U". However, that fails | | 187 | # Logically we would like to do a "pkg_add -U". However, that fails |
188 | # if there is a depending package that exactly depends on the package | | 188 | # if there is a depending package that exactly depends on the package |
189 | # being replaced, so we override that check with -D. Historically, | | 189 | # being replaced, so we override that check with -D. Historically, |
190 | # 'make replace' would replace a package regardless of whether that | | 190 | # 'make replace' would replace a package regardless of whether that |
191 | # broke depending packages (typically due to shlib ABI changes, | | 191 | # broke depending packages (typically due to shlib ABI changes, |
192 | # especially major version bumps). Therefore, make replace in DESTDIR | | 192 | # especially major version bumps). Therefore, make replace in DESTDIR |
193 | # mode should behave the same way. unsafe_depends will be set on | | 193 | # mode should behave the same way. unsafe_depends will be set on |
194 | # depending packages, and then those may be rebuilt via a manual | | 194 | # depending packages, and then those may be rebuilt via a manual |
195 | # process or by pkg_rolling-replace. | | 195 | # process or by pkg_rolling-replace. |
196 | replace-destdir: .PHONY | | 196 | replace-destdir: .PHONY |
197 | @${PHASE_MSG} "Updating using binary package of "${PKGNAME:Q} | | 197 | @${PHASE_MSG} "Updating using binary package of "${PKGNAME:Q} |
198 | .if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) | | 198 | .if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) |
199 | @${MKDIR} ${_CROSS_DESTDIR}${PREFIX} | | 199 | @${MKDIR} ${_CROSS_DESTDIR}${PREFIX} |
200 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D -m ${MACHINE_ARCH} -I -p ${_CROSS_DESTDIR}${PREFIX} ${STAGE_PKGFILE} | | 200 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D -m ${OPSYS:Q}/${MACHINE_ARCH:Q}\ ${OS_VERSION:Q} -I -p ${_CROSS_DESTDIR}${PREFIX} ${STAGE_PKGFILE} |
201 | @${ECHO} "Fixing recorded cwd..." | | 201 | @${ECHO} "Fixing recorded cwd..." |
202 | @${SED} -e 's|@cwd ${_CROSS_DESTDIR}|@cwd |' ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS > ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp | | 202 | @${SED} -e 's|@cwd ${_CROSS_DESTDIR}|@cwd |' ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS > ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp |
203 | @${MV} ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS | | 203 | @${MV} ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS |
204 | .else | | 204 | .else |
205 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D ${STAGE_PKGFILE} | | 205 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D ${STAGE_PKGFILE} |
206 | .endif | | 206 | .endif |
207 | ${RUN}${_REPLACE_OLDNAME_CMD}; \ | | 207 | ${RUN}${_REPLACE_OLDNAME_CMD}; \ |
208 | ${PKG_INFO} -qR ${PKGNAME:Q} | while read pkg; do \ | | 208 | ${PKG_INFO} -qR ${PKGNAME:Q} | while read pkg; do \ |
209 | [ -n "$$pkg" ] || continue; \ | | 209 | [ -n "$$pkg" ] || continue; \ |
210 | ${PKG_ADMIN} set unsafe_depends_strict=YES "$$pkg"; \ | | 210 | ${PKG_ADMIN} set unsafe_depends_strict=YES "$$pkg"; \ |
211 | if [ "$$oldname" != ${PKGNAME:Q} ]; then \ | | 211 | if [ "$$oldname" != ${PKGNAME:Q} ]; then \ |
212 | ${PKG_ADMIN} set unsafe_depends=YES "$$pkg"; \ | | 212 | ${PKG_ADMIN} set unsafe_depends=YES "$$pkg"; \ |
213 | fi; \ | | 213 | fi; \ |
214 | done | | 214 | done |
215 | ${RUN}for var in unsafe_depends unsafe_depends_strict rebuild mismatch; do \ | | 215 | ${RUN}for var in unsafe_depends unsafe_depends_strict rebuild mismatch; do \ |
216 | ${PKG_ADMIN} unset $$var ${PKGNAME:Q}; \ | | 216 | ${PKG_ADMIN} unset $$var ${PKGNAME:Q}; \ |
217 | done | | 217 | done |