Wed Nov 3 13:37:25 2021 UTC ()
pkg_install: Add an explicit dummy DEINSTALL script.

Even with DEINSTALL_SRC set empty, changes in the pkgsrc infrastructure over
the past few years will now create a dynamic +DEINSTALL script regardless,
and while only containing "exit 0", may have a #! using a shell from pkgsrc.

This can lead to upgrade issues if that shell happens to be unavailable
while pkg_install is being upgraded.  Creating our own dummy script that
explicitly uses /bin/sh avoids that problem.


(jperkin)
diff -r0 -r1.1 pkgsrc/pkgtools/pkg_install/DEINSTALL
diff -r1.235 -r1.236 pkgsrc/pkgtools/pkg_install/Makefile

File Added: pkgsrc/pkgtools/pkg_install/DEINSTALL
#!/bin/sh
#
# Dummy script to ensure pkgsrc never creates its own DEINSTALL script for
# this package that uses a pkgsrc shell, as that can cause upgrade issues.
#
exit 0

cvs diff -r1.235 -r1.236 pkgsrc/pkgtools/pkg_install/Makefile (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkg_install/Makefile 2021/06/05 14:17:32 1.235
+++ pkgsrc/pkgtools/pkg_install/Makefile 2021/11/03 13:37:25 1.236
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: Makefile,v 1.235 2021/06/05 14:17:32 nia Exp $ 1# $NetBSD: Makefile,v 1.236 2021/11/03 13:37:25 jperkin Exp $
2 2
3# Notes to package maintainers: 3# Notes to package maintainers:
4# 4#
5# Updating this package does not automatically necessitate bumping 5# Updating this package does not automatically necessitate bumping
6# PKGTOOLS_REQD in bsd.pkg.mk. Do so if and only if there is a critical 6# PKGTOOLS_REQD in bsd.pkg.mk. Do so if and only if there is a critical
7# change in the pkg_* tools that pkgsrc relies on for proper operation. 7# change in the pkg_* tools that pkgsrc relies on for proper operation.
8 8
9PKGNAME= pkg_install-${VERSION} 9PKGNAME= pkg_install-${VERSION}
10CATEGORIES= pkgtools 10CATEGORIES= pkgtools
11 11
12MAINTAINER= agc@NetBSD.org 12MAINTAINER= agc@NetBSD.org
13HOMEPAGE= https://www.pkgsrc.org/ 13HOMEPAGE= https://www.pkgsrc.org/
14COMMENT= Package management and administration tools for pkgsrc 14COMMENT= Package management and administration tools for pkgsrc
@@ -76,27 +76,27 @@ CPPFLAGS+= -D_FILE_OFFSET_BITS=64 @@ -76,27 +76,27 @@ CPPFLAGS+= -D_FILE_OFFSET_BITS=64
76 76
77CPPFLAGS+= -DDEF_UMASK=${DEF_UMASK} 77CPPFLAGS+= -DDEF_UMASK=${DEF_UMASK}
78 78
79MAKE_ENV+= PKGSRC_MACHINE_ARCH=${MACHINE_ARCH} 79MAKE_ENV+= PKGSRC_MACHINE_ARCH=${MACHINE_ARCH}
80MAKE_ENV+= OPSYS=${OPSYS} 80MAKE_ENV+= OPSYS=${OPSYS}
81MAKE_ENV+= CATMAN_SECTION_SUFFIX=${CATMAN_SECTION_SUFFIX:Q} 81MAKE_ENV+= CATMAN_SECTION_SUFFIX=${CATMAN_SECTION_SUFFIX:Q}
82MAKE_ENV+= MANINSTALL=${MANINSTALL:Q} 82MAKE_ENV+= MANINSTALL=${MANINSTALL:Q}
83 83
84PKG_DBDIR?= ${PREFIX}/pkgdb 84PKG_DBDIR?= ${PREFIX}/pkgdb
85EGDIR= ${PREFIX}/share/examples/pkg_install 85EGDIR= ${PREFIX}/share/examples/pkg_install
86 86
87PLIST_SUBST+= PKG_DBDIR=${PKG_DBDIR} 87PLIST_SUBST+= PKG_DBDIR=${PKG_DBDIR}
88 88
89DEINSTALL_SRC= # empty 89DEINSTALL_SRC= ${PKGDIR}/DEINSTALL
90INSTALL_SRC= ${PKGDIR}/INSTALL 90INSTALL_SRC= ${PKGDIR}/INSTALL
91FILES_SUBST+= PKG_DBDIR=${PKG_DBDIR} \ 91FILES_SUBST+= PKG_DBDIR=${PKG_DBDIR} \
92 PKG_TOOLS_BIN=${PKG_TOOLS_BIN:Q} \ 92 PKG_TOOLS_BIN=${PKG_TOOLS_BIN:Q} \
93 MKDIR=${MKDIR:Q} 93 MKDIR=${MKDIR:Q}
94 94
95.include "../../mk/compiler.mk" 95.include "../../mk/compiler.mk"
96 96
97.if !empty(CC_VERSION:Mclang*) 97.if !empty(CC_VERSION:Mclang*)
98MAKE_FLAGS+= ACTIVE_CC=clang 98MAKE_FLAGS+= ACTIVE_CC=clang
99.endif 99.endif
100 100
101VERSION!= ${AWK} '/PKGTOOLS_VERSION/ {print $$3}' \ 101VERSION!= ${AWK} '/PKGTOOLS_VERSION/ {print $$3}' \
102 ${FILESDIR}/lib/version.h 102 ${FILESDIR}/lib/version.h