From owner-freebsd-ports Tue Oct 15 6:45:10 2002 Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 64E0B37B401 for ; Tue, 15 Oct 2002 06:45:08 -0700 (PDT) Received: from aaz.links.ru (aaz.links.ru [193.125.152.37]) by mx1.FreeBSD.org (Postfix) with ESMTP id 84B3F43EAF for ; Tue, 15 Oct 2002 06:44:49 -0700 (PDT) (envelope-from babolo@aaz.links.ru) Received: from aaz.links.ru (aaz.links.ru [193.125.152.37]) by aaz.links.ru (8.12.6/8.12.6) with ESMTP id g9FDibgd061124; Tue, 15 Oct 2002 17:44:42 +0400 (MSD) (envelope-from babolo@aaz.links.ru) Received: (from babolo@localhost) by aaz.links.ru (8.12.6/8.12.6/Submit) id g9FDiZv5061123; Tue, 15 Oct 2002 17:44:35 +0400 (MSD) Message-Id: <200210151344.g9FDiZv5061123@aaz.links.ru> Subject: Re: why is .install_done needed? It seems redundant. X-ELM-OSV: (Our standard violations) hdr-charset=KOI8-R; no-hdr-encoding=1 In-Reply-To: <20021015033313.GA37677@doublegemini.com> To: "Clark C. Evans" Date: Tue, 15 Oct 2002 17:44:35 +0400 (MSD) From: "."@babolo.ru Cc: ports@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL99b (25)] MIME-Version: 1.0 Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org > On Tue, Oct 15, 2002 at 03:52:18AM +0400, "."@babolo.ru wrote: > | > 2) Where are these ports storing the flag that says > | > they are already installed? Any good way to > | > reset this flag or have this flag be in the > | > /var partition (which is different for each install?) > | > | ${WRKDIR}/.STAGE_done.NAME-VERSION > | usually ${WRKDIR} is ./work > > Thanks. Is there a way to tell "make install" to use > pkg_info to deterimine if a port is installed rather > than keying from the .install_done.NAME-VERSION file? Remember, that all: - ports tree (usually /usr/ports) - distfiles (usually /usr/ports/distfiles) - WRKDIR (and WRKDIRPREFIX) - /var/db/pkg can be located on different hosts and shared, or in different roots on some hosts, so use "make reinstall" when you shure what you do. pkg_info's database used both install and reinstall, in addition to ${WRKDIR}/ marks. > Logic I'd like to see for "make install" --- > > grab the port name > check to see if it appears in pkg_info list > if so, check the version > if the versions match, do nothing > if the versions mis-match, complain loudly > check-dependencies using the same method > if not, > then install > > I don't see why "make install" should be using > .install_done at all, as installation is a > property of the system installed upon (/var) > and not a property of the package or its > current state of preparation. > > In short, I think the .install_done.NAME-VERSION is > not only useless, but perhaps even harmful? As a work-around > for this behavior, I've created to fill in the required > .install_done files from pkg_info... .... find ${WRKDIRPREFIX} -maxdepth 6 -name .install_done.\* -delete or cd ${WRKDIRPREFIX}; rm -f usr/ports/*/*/*/.install_done.* but remember make reinstall -- @BABOLO http://links.ru/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message