Date: Sun, 21 Jan 2007 17:10:52 +0100 (CET) From: Riccardo Torrini <riccardo@torrini.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: misc/108183: mergemaster doesn't install target if a file become a directory Message-ID: <20070121161052.567661A6B2@castle.torrini.org> Resent-Message-ID: <200701211640.l0LGeJKT027533@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 108183 >Category: misc >Synopsis: mergemaster doesn't install target if a file become a directory >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jan 21 16:40:19 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Riccardo Torrini >Release: FreeBSD 6.2-PRERELEASE i386 >Organization: >Environment: System: FreeBSD castle.torrini.org 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #69: Tue Nov 21 20:12:39 CET 2006 root@castle.torrini.org:/usr/obj/usr/src/sys/SILOS i386 >Description: When an object is used as a file in a version but become a directory in any later version mergemaster neither remove file nor create the new directory so the install target file under that directory fails (and mergemaster say "installed successfully"). >How-To-Repeat: First of all you need to have an "always upgraded installation :-)", than check if you already have /etc/security as a file: # ls -land /etc/security -r-x------ 1 0 0 214 Jan 21 16:22 /etc/security If this is your case start a mergemaster (i use -cvsi), at the end check log, scrolling back console or xterm, you'd have this lines: [...] *** Temp ./etc/rc.d/sshd and installed are the same, deleting *** There is no installed version of ./etc/security/audit_class install: /etc/security exists but is not a directory *** ./etc/security/audit_class installed successfully *** There is no installed version of ./etc/security/audit_event install: /etc/security exists but is not a directory *** ./etc/security/audit_event installed successfully *** There is no installed version of ./etc/security/audit_control install: /etc/security exists but is not a directory *** ./etc/security/audit_control installed successfully *** There is no installed version of ./etc/security/audit_user install: /etc/security exists but is not a directory *** ./etc/security/audit_user installed successfully *** There is no installed version of ./etc/security/audit_warn install: /etc/security exists but is not a directory *** ./etc/security/audit_warn installed successfully *** Temp ./etc/ssh/ssh_config and installed are the same, deleting [...] You can even simulate this situation: # rm -rf /etc/security # touch /etc/security and than run mergemaster as noted above. >Fix: Manually remove /etc/security than run mergemaster again, this time it create directory and correctly install files under /etc/security/ # ls -land /etc/security drwxr-xr-x 2 0 0 512 Jan 21 17:02 /etc/security # ls -lan /etc/security total 32 drwxr-xr-x 2 0 0 512 Jan 21 17:02 . drwxr-xr-x 21 0 0 2560 Jan 21 17:02 .. -r--r--r-- 1 0 0 689 Jan 21 17:02 audit_class -rw------- 1 0 0 229 Jan 21 17:02 audit_control -r--r--r-- 1 0 0 16831 Jan 21 17:02 audit_event -rw------- 1 0 0 168 Jan 21 17:02 audit_user -r-x------ 1 0 0 214 Jan 21 17:02 audit_warn >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070121161052.567661A6B2>