Re: [PATCH v2] Makefile: use sha1collisiondetection by default on OSX and Darwin
From: Junio C Hamano <hidden>
Date: 2022-12-15 21:17:24
Ævar Arnfjörð Bjarmason [off-list ref] writes:
Let's also use sha1collisiondetection on OSX, to do so we'll need to split up the "APPLE_COMMON_CRYPTO" flag into that flag and a new "APPLE_COMMON_CRYPTO_SHA1".
That's well reasoned
This leaves these in Makefile:
# Define NO_APPLE_COMMON_CRYPTO if you are building on Darwin/Mac OS X
# and do not want to use Apple's CommonCrypto library. This allows you
# to provide your own OpenSSL library, for example from MacPorts.
ifndef NO_APPLE_COMMON_CRYPTO
NO_OPENSSL = YesPlease
APPLE_COMMON_CRYPTO = YesPlease
COMPAT_CFLAGS += -DAPPLE_COMMON_CRYPTO
endif
Because we only mention what it does to use NO_APPLE_COMMON_CRYPTO
here, without promising anything about what happens otherwise, we
can do this change without breaking any promises ;-)
However there is this bit:
ifdef APPLE_COMMON_CRYPTO
LIB_4_CRYPTO += -framework Security -framework CoreFoundation
endif
So, if one says
make NO_APPLE_COMMON_CRYPTO=NoThanks APPLE_COMMON_CRYPTO_SHA1=YesPlease
presumably the end result will fail to link? I _think_ that falls
into "if it hurts, don't do that", and
(1) automatically disabling the latter when the former is set would
be more confusing than helpful.
(2) explicitly detecting the situation and issue an error message
from the Makefile might appear nicer, but if the linker does
the failing with a messaage fine, that would be sufficient.
so in the end, the posted patch as-is should be fine, I think.