NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bin/54741: postinstall(8) fix no longer update /etc/rc.subr etc.
>Number: 54741
>Category: bin
>Synopsis: postinstall(8) fix no longer update /etc/rc.subr etc.
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Dec 06 13:40:00 +0000 2019
>Originator: Izumi Tsutsui
>Release: NetBSD 9.0_RC1
>Organization:
>Environment:
System: NetBSD mirage 9.0_RC1 (GENERIC) #0: Wed Nov 27 16:14:52 UTC 2019 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/i386/compile/GENERIC i386
Architecture: i386, but maybe all
Machine: i386
>Description:
postinstall fix no longer update /etc/rc.subr while it did in 8.1 and prior.
>How-To-Repeat:
Update NetBSD from 7.x (or prior) to 9.0_RC1.
/etc/rc complains
> eval: checkyesnox: not found
See also:
https://mail-index.netbsd.org/netbsd-bugs/2019/12/05/msg064842.html
Even after 9.0_RC1 is installed:
---
# ident /etc/rc.subr
/etc/rc.subr:
$NetBSD: rc.subr,v 1.100.4.1 2018/04/04 16:07:33 martin Exp $
# tar zxpf etc.tgz
# ident etc/rc.subr
etc/rc.subr:
$NetBSD: rc.subr,v 1.103 2018/09/23 23:02:39 kre Exp $
# postinstall -s etc.tgz fix > /dev/null 2>&1
# ident /etc/rc.subr
/etc/rc.subr:
$NetBSD: rc.subr,v 1.100.4.1 2018/04/04 16:07:33 martin Exp $
#
---
>Fix:
In postinstall(8) in 8.x, it had an explicit entry:
---
# XXX Generate these from ../../distrib/sets/lists
rc_644_files="
rc
rc.subr
rc.shutdown
"
:
compare_dir "${op}" "${SRC_DIR}/etc" "${DEST_DIR}/etc" 644 \
${rc_644_files}
---
In src/usr.sbin/postinstall/postinstall.in has a definition
of rc_444_files, but there no reference of it.
---
# rc* files in /etc/
local rc_444_files="$(select_set_files /etc/rc \
"/etc/\(rc[^[:space:]/]*\)" ${etcsets})"
:
compare_dir "${op}" "${SRC_DIR}/etc" "${DEST_DIR}/etc" 644 \
${rc_644_files}
failed=$(( ${failed} + $? ))
---
% grep rc_444_files /usr/src/usr.sbin/postinstall/postinstall.in
local rc_444_files="$(select_set_files /etc/rc \
% grep rc_644_files /usr/src/usr.sbin/postinstall/postinstall.in
${rc_644_files}
---
However, the above "rc_444_files" (or rc_644_files) by
select_set_files() includes rc.conf and rc.d which
should not be updated by the fix op:
---
rc fix:
Copied /tmp/_postinstall.6231.0/etc.tgz/etc/rc.conf to /etc/rc.conf
Copied /tmp/_postinstall.6231.0/etc.tgz/etc/rc.subr to /etc/rc.subr
rm: /etc/rc.d: is a directory
Can't copy /tmp/_postinstall.6231.0/etc.tgz/etc/rc.d to /etc/rc.d
(Checking for blacklistd from /tmp/_postinstall.6231.0/etc.tgz/etc/rc.d instead of /tmp/_postinstall.6231.0/etc.tgz/external/bsd/blacklist/etc/rc.d)
---
I'm afraid there is no proper way to extrace them from
set files and we should have an explicit list for them like 8.x one.
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index