Skip site navigation (1)Skip section navigation (2)
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-current" 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>