make upgrade REMOVE_OPENSSL_FILES=yes incompatible with make buildworld
On DragonFly master, for a previous recent build, if one does
make upgrade REMOVE_OPENSSL_FILES=yes
then updates to the latest master source, then
mv usr usr.old
there seems a good chance one will encounter an error, really fast, such as:
===> bin/cpdup (bootstrap-tools)
/usr/obj/usr/src/btools_x86_64/usr/src/bin/cpdup created for /usr/src/bin/cpdup
rm -f .depend
mkdep -f .depend -a -std=gnu99 /usr/src/bin/cpdup/cpdup.c /usr/src/bin/cpdup/hcproto.c /usr/src/bin/cpdup/hclink.c /usr/src/bin/cpdup/misc.c /usr/src/bin/cpdup/fsmid.c /usr/src/bin/cpdup/md5.c
In file included from /usr/include/md5.h:41:0,
/usr/include/sys/md5.h:45:25: fatal error: openssl/md5.h: No such file or directory
It seems to me that cpdup.c includes "cpdup.h" which in turn includes <md5.h> if NOMD5 is undefined,
which in turn includes <sys/md5.h>, which in turn includes <openssl/md5.h>,
which after make upgrade REMOVE_OPENSSL_FILES doesn't exist anymore.
Updated by zrj over 2 years ago
buildworld should be fixed by a78dfe84fb.
Temporary solution (if previous checkout is needed) is to just create symlink from /usr/include/priv/openssl -> /usr/include/openssl, it will be overwritten by next installworld because we accidentally started to create copy of private LibreSSL headers back to previous public OpenSSL dir.
This will be addressed later after deeper inspection of NO_CRYPT paths in makefiles, following with unconditional removal of /usr/include/openssl/ to prevent this happening again.