| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | # $NetBSD: replace.mk,v 1.7 2021/01/09 19:10:05 rhialto Exp $ | | 1 | # $NetBSD: replace.mk,v 1.8 2021/01/17 20:18:42 rhialto 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 \ |
| @@ -155,35 +155,32 @@ replace-fixup-required-by: .PHONY | | | @@ -155,35 +155,32 @@ replace-fixup-required-by: .PHONY |
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 | # XXX: pkg_admin should not complain on unset with no +INSTALLED_INFO. | | | |
169 | # | | | |
170 | replace-fixup-installed-info: .PHONY | | 168 | replace-fixup-installed-info: .PHONY |
171 | @${STEP_MSG} "Removing unsafe_depends and rebuild tags." | | 169 | @${STEP_MSG} "Removing unsafe_depends and rebuild tags." |
172 | ${RUN} ${_REPLACE_NEWNAME_CMD}; \ | | 170 | ${RUN} ${_REPLACE_NEWNAME_CMD}; \ |
173 | [ ! -f ${_INSTALLED_INFO_FILE} ] || \ | | 171 | [ ! -f ${_INSTALLED_INFO_FILE} ] || \ |
174 | ${MV} ${_INSTALLED_INFO_FILE} ${_PKG_DBDIR}/$$newname/+INSTALLED_INFO; \ | | 172 | ${MV} ${_INSTALLED_INFO_FILE} ${_PKG_DBDIR}/$$newname/+INSTALLED_INFO; \ |
175 | for var in unsafe_depends unsafe_depends_strict rebuild mismatch; do \ | | 173 | for var in unsafe_depends unsafe_depends_strict rebuild mismatch; do \ |
176 | ${TEST} ! -f ${_PKG_DBDIR}/$$newname/+INSTALLED_INFO || \ | | | |
177 | ${PKG_ADMIN} unset $$var $$newname; \ | | 174 | ${PKG_ADMIN} unset $$var $$newname; \ |
178 | done | | 175 | done |
179 | | | 176 | |
180 | # 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. |
181 | # | | 178 | # |
182 | replace-clean: .PHONY | | 179 | replace-clean: .PHONY |
183 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ | | 180 | ${RUN} ${_REPLACE_OLDNAME_CMD}; \ |
184 | ${_REPLACE_NEWNAME_CMD}; \ | | 181 | ${_REPLACE_NEWNAME_CMD}; \ |
185 | ${RM} -f ${WRKDIR}/$$oldname${PKG_SUFX}; \ | | 182 | ${RM} -f ${WRKDIR}/$$oldname${PKG_SUFX}; \ |
186 | ${RM} -f ${WRKDIR}/$$newname${PKG_SUFX}; \ | | 183 | ${RM} -f ${WRKDIR}/$$newname${PKG_SUFX}; \ |
187 | ${RM} -f ${_REPLACE_OLDNAME_FILE} ${_REPLACE_NEWNAME_FILE} \ | | 184 | ${RM} -f ${_REPLACE_OLDNAME_FILE} ${_REPLACE_NEWNAME_FILE} \ |
188 | ${_COOKIE.replace} | | 185 | ${_COOKIE.replace} |
189 | | | 186 | |
| @@ -205,16 +202,16 @@ replace-destdir: .PHONY | | | @@ -205,16 +202,16 @@ replace-destdir: .PHONY |
205 | @${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 |
206 | @${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 |
207 | .else | | 204 | .else |
208 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D ${STAGE_PKGFILE} | | 205 | ${SETENV} ${PKGTOOLS_ENV} ${PKG_ADD} -U -D ${STAGE_PKGFILE} |
209 | .endif | | 206 | .endif |
210 | ${RUN}${_REPLACE_OLDNAME_CMD}; \ | | 207 | ${RUN}${_REPLACE_OLDNAME_CMD}; \ |
211 | ${PKG_INFO} -qR ${PKGNAME:Q} | while read pkg; do \ | | 208 | ${PKG_INFO} -qR ${PKGNAME:Q} | while read pkg; do \ |
212 | [ -n "$$pkg" ] || continue; \ | | 209 | [ -n "$$pkg" ] || continue; \ |
213 | ${PKG_ADMIN} set unsafe_depends_strict=YES "$$pkg"; \ | | 210 | ${PKG_ADMIN} set unsafe_depends_strict=YES "$$pkg"; \ |
214 | if [ "$$oldname" != ${PKGNAME:Q} ]; then \ | | 211 | if [ "$$oldname" != ${PKGNAME:Q} ]; then \ |
215 | ${PKG_ADMIN} set unsafe_depends=YES "$$pkg"; \ | | 212 | ${PKG_ADMIN} set unsafe_depends=YES "$$pkg"; \ |
216 | fi; \ | | 213 | fi; \ |
217 | done | | 214 | done |
218 | ${RUN}${PKG_ADMIN} unset unsafe_depends ${PKGNAME:Q} | | 215 | ${RUN}for var in unsafe_depends unsafe_depends_strict rebuild mismatch; do \ |
219 | ${RUN}${PKG_ADMIN} unset unsafe_depends_strict ${PKGNAME:Q} | | 216 | ${PKG_ADMIN} unset $$var ${PKGNAME:Q}; \ |
220 | ${RUN}${PKG_ADMIN} unset rebuild ${PKGNAME:Q} | | 217 | done |