Date: Fri, 19 Jul 2002 22:55:56 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Ruslan Ermilov <ru@FreeBSD.org> Cc: arch@FreeBSD.org, <current@FreeBSD.org> Subject: Re: install -d -C (was: Re: cvs commit: src/share/man/man5 make.conf.5 src/share/examples/etc make.conf) Message-ID: <20020719223359.W12927-100000@gamplex.bde.org> In-Reply-To: <20020719121826.GA83942@sunbay.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 19 Jul 2002, Ruslan Ermilov wrote:
> On Fri, Jul 19, 2002 at 03:05:37PM +0300, Ruslan Ermilov wrote:
> > ...
> > On Fri, Jul 19, 2002 at 09:21:14PM +1000, Bruce Evans wrote:
> > > On Thu, 18 Jul 2002, Ruslan Ermilov wrote:
> > >
> > > > ru 2002/07/18 05:07:49 PDT
> > > >
> > > > Modified files:
> > > > etc Makefile
> > [...]
> > > > usr.sbin/ypserv Makefile
> > > > Log:
> > > > s/${INSTALL} -c/${INSTALL} ${COPY}/
> > >
> > > Strongly unapproved by: bde.
> > >
> > > This change is to help work around the foot-shooting of making -d
> > > incompatible with -C and -p in install(1)'s flags. It abuses the old
> > > ...
> > Since its first revision (install.1,v 1.7 and install.c,v 1.16 they
> > were incompatible). Later on, in rev. 1.26, it was made a no-op,
I think this makes -c vs -d moot.
> > just to support "INSTALL=install -C" in /etc/make.conf.
-C is not really like -c. It really means "unbreak the default of !-c,
and preserve certain metadata". Preserving the metadata is the main
point of this option, but IIRC it was made as much like -c as possible
just as a first attempt to kill -c.
> > OpenBSD merged these changes and since then they still have them
> > incompatible.
That was probably a mistake. Certainly merging it all back was. -C
is our (half my) flag, so we should know its intended use :-).
> > There are two ways to proceed:
> >
> > 1. Rename COPY to INSTALL_COPY (that was my plan), optionally giving
> > it by default an empty value. This shouldn't harm third-party
> > makefiles as -c is now an effective no-op. But this would make
> > us even more compatible with OpenBSD that has:
> >
> > : INSTALL_COPY The old usage of this flag is obsolescent since install(1)
> > : now copies by default. However, it can also be used to
> > : specify that a file not be copied unless it is different
> > : (via the -p option). See install(1) for details. This
> > : is to be used when building our own install script so
> > : that the entire system can either be installed with copies,
> > : or copy-if-different using a single knob. [-c]
> >
> OTOH, if we go this way we can get rid of ugly ${COPY} completely.
I'd like to get rid of it too. But not in RELENG_4. -c has been the default
for long enough now in -current. As you know, there are various problems
in using the correctly named variable for install(1)'s flags (INSTALLFLAGS)
to actually hold install's flags in a general way (mainly, this variable
already exists and is used in a non-general way). However, the old hack
of putting the flags in the same variable as the command still works well
except for the -[Cp] vs -d conflict. This depends on the flags not being
order-dependent.
> > 2. Make again -C an allowed (ignored) option in the -d case. This would
> > make us again incompatible with OpenBSD.
> >
> > I do not have a technical problem doing either, I'd just like to know
> > what do others think about this.
>
> I'm not sure what's the better way, please help me out. :-)
I've complained to you before about this :-). Now I'm interested in getting
other ideas about it.
Bruce
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020719223359.W12927-100000>
