M12. If a package imports software that is externally developed and maintained,8 then it must allow installing, building, and linking with an outside copy of that software. Acceptable ways to accomplish this include (1) forsaking the internal copied version and using an externally provided implementation or (2) changing the file names and namespaces of all global symbols to allow the internal copy and the external copy to coexist in the same downstream libraries and programs.
8 For example, some projects import source for some routines from BLAS and LAPACK. The Trilinos Teuchos package imported an early version of the boost::any class. Also, Trilinos has its own copy of an older version of SuiteSparse. In the latter two cases, new file names and namespaces were created for the imported software to allow coexistence with the (updated) external versions.