Re: [PATCH 6/6] Makefile: add a INSTALL_FALLBACK_LN_CP mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ævar Arnfjörð Bjarmason  <avarab@xxxxxxxxx> writes:

> Change the default behavior on "make install" where we fallback
> through a chain of "ln || ln -s || cp" to instead error out when we
> can't symlink or hardlink, and not then fallback on a "cp" (or from a
> symlink to hardlink etc.).
>
> The fallback behavior was introduced in 3e073dc5611 (Makefile: always
> provide a fallback when hardlinks fail, 2008-08-25), since then we've
> gained the ability to specify e.g. that we'd like symlinks via the
> INSTALL_SYMLINKS setting.

Hmph, I am not so sure.  "Use hardlink if we can, as that would not
consume inode, but where hardlinks cannot be used, it is OK to use
symlink, and I do not want to waste disk blocks with cp" is probably
one of the sensible wishes, but at least without "ln || ln -s" fallback,
you cannot do that, no?

So I would understand if there are two orthogonal knobs

 - the order of preference (e.g. hardlink > symlink > copy)
 - which ones are allowed (e.g. "no symlinks please")

but I cannot quite imagine how a system without any fallback would
be useful.

> +main_no_fallbacks () {
> +	if test -n "$no_install_hardlinks" -a -z "$install_symlinks"

As the values of these variables are (presumably) tightly under our
control, the use of -a/-o with test may be safe in these examples,
but to avoid letting clueless shell script newbies to cargo cult
this code, let's use the safer "test -n A && test -z B" form.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux