NFS related include files and make delete-old

Hans Ottevanger hans at
Tue Jul 5 14:36:05 UTC 2011

On Mon, Jul 04, 2011 at 09:18:47AM -0400, Rick Macklem wrote:
> > Hi,
> > 
> > For a few months now, during the usual make delete-old after
> > make installworld the files
> > 
> > /usr/include/nfs/krpc.h
> > 
> > and
> > 
> > /usr/include/nfs/nfsdiskless.h
> > 
> > turn up time and again. I have them deleted, but they get reinstalled
> > during the next make installworld. This is a fairly old installation,
> > but running an up-to-date 8.2-STABLE and these header files are also
> > present in the directory /usr/include/nfsclient.
> > 
> I moved them from sys/nfsclient to sys/nfs, so that it would be more
> obvious that they are shared by both NFS clients (in sys/nfsclient and
> sys/fs/nfsclient). So the ones at the new location /usr/include/nfs would
> not be deleted, the entry in that removed them from
> /usr/include/nfs was deleted (by someone else, after discussing it with me).

At this moment make installworld only installs the headers in the new location,
on both 8/stable and head/current. On 8/stable they are immediately removed
again when running make delete-old, because they are in
On head/current they are left alone, they are not in
(i.e. not anymore).

If the files at the old location are still there, it is as a leftover from
previous installations. On a freshly installed /usr/include hierarchy they
will be missing.

> I felt that they should remain in the old location for backwards compatibility.
> (The "userland" contents of the two copies are identical, so it shouldn't matter
>  which copy any userland app includes. One problem here is that I have no idea
>  if any software outside of /usr/src includes these.)

I can confirm that the copies are identical (if they are present), apart from
version control information. I think that you have to install the copies explicitly
if you want them to be there, also on a fresh installs, for compatibility with
8.2-RELEASE and earlier. I would only do that for 8/stable, if at all.

> > Could it be that either the wrong files are specified in
> > /usr/src/ or the headers are installed in the wrong
> > directory during make installworld?
> > 
> > On my 9.0-CURRENT systems I also have the headers at both locations,
> > but there only those in /usr/include/nfsclient get reinstalled and
> > there is no entry in /usr/src/
> > 
> Actually, only the ones in /usr/include/nfs should get updated, because they
> now live in sys/nfs and not sys/nfsclient. I plan on adding an entry to
> in head/current for the /usr/include/nfsclient ones.
> (Thanks for the reminder w.r.t. this.)

Even as a relative outsider to the FreeBSD project I am all for it. I don't
know the schedule for 9.0, but if anything breaks (e.g. in ports, not in /usr/src)
it had better break now.

> Should I MFC this to stable/8? 
> (I had assumed that I should leave them in
> the old location for backwards compatibility and therefore wasn't going to
> MFC deletion of them in /usr/include/nfsclient. If I MFC that, the entries
> for them in for /usr/include/nfs need to be deleted, so
> they remain in the new location.)

It would save you the effort of finding a way to actually install the copies
at the old location. However, in a sense it would change the API, and I do not 
know how the keepers of the code tree think about that 8-)

And, as already explained above, there is already an antry in on
stable/8, but probably for the wrong directory.

Kind regards,

Hans Ottevanger

More information about the freebsd-stable mailing list