tcpdump mailing list archives

Re: Hard links and absolute paths


From: Guy Harris <guy () alum mit edu>
Date: Fri, 12 Apr 2013 12:23:24 -0700


On Apr 12, 2013, at 9:45 AM, "Flemming H. Sørensen" <flemming.sorensen () pyro-os org> wrote:

While building libpcap and tcpdump on Pyro, I noticed something in libpcap/Makefile.in; You're using hard links, and 
absolute paths.

Hardlinks: This may work well on most systems, but our native filesystem doesn't support hardlinks, so it would 
really be appreciated, if it was changed to symlinks.

You might have to ask this of other packages as well, if they're being ported to your OS, as that's what at least some 
do:

        $ cd /usr/share/man/man3
        $ ls -li rpc.3 auth_destroy.3
        17677220 -r--r--r--  64 root  wheel  30305 Mar  1 13:01 auth_destroy.3
        17677220 -r--r--r--  64 root  wheel  30305 Mar  1 13:01 rpc.3

However, whilst the OS on which I typed that and its native file system support hardlinks (albeit with a somewhat 
greasy implementation hack on the native file system in question, which was not created as a UN*X file system but was 
hammered into acting as one), the man page for at least one of its APIs uses symlinks for alias names:

        $ ls -l acl_create_entry*.3
        -rw-r--r--  1 root  wheel  3288 Mar  1 13:01 acl_create_entry.3
        lrwxr-xr-x  1 root  wheel    18 Mar  1 13:01 acl_create_entry_np.3 -> acl_create_entry.3

and, these days, I'm not sure any UN*X we would have a reason to care about these days supports only hard links, and we 
use symlinks elsewhere, so using symlinks is probably OK here.

Absolute paths: This may work well, if every individual users builds it, and installs directly to the location in 
which they want it. I do, however, feel it would be nice to have relative paths, so the package can be moved around. 
You already use relative paths in other places.

Umm, the reason why we're using absolute paths is that we're using hard links; we have to link $MANDIR/man3/foo.3pcap 
to $MANDIR/man3/bar.3pcap - linking foo.3pcap to $MANDIR/man3/bar.3pcap won't work (it will either plant foo.3pcap in 
the build directory rather than $MANDIR/man3 or will fail with EXDEV).

If we were to use *symbolic* links, *then* relative paths would be the right thing to use.

_______________________________________________
tcpdump-workers mailing list
tcpdump-workers () lists tcpdump org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Current thread: