monero-project / monero

Monero: the secure, private, untraceable cryptocurrency
https://getmonero.org
Other
9.04k stars 3.12k forks source link

create cmake and make should fallback to system packages for projects in /external #9561

Closed solomoncyj closed 2 weeks ago

solomoncyj commented 2 weeks ago

In packaging, this will stop conflicts with system packages. moreover, some distrols, eg fedora, do not allow us to use static libs and or vendor 3rd party libs

hyc commented 2 weeks ago

None of the code in external/ is packaged or installed on its own, so that all seems irrelevant. liblmdb and randomx in external/ certainly cannot rely on a system package anyway.

solomoncyj commented 2 weeks ago

ye s, but for packages like trezor-common, rapid json, and other submodule execpt for supercop are already in package managers

solomoncyj commented 2 weeks ago

None of the code in external/ is packaged or installed on its own, so that all seems irrelevant. liblmdb and randomx in external/ certainly cannot rely on a system package anyway.

why cant they? randomx lmdb

solomoncyj commented 2 weeks ago

please prefer find_package (if it's a normally CMake installed package) and only conditionally add_subdirectory(external).

hyc commented 2 weeks ago

No. The issue you're reporting doesn't exist. There are no components of external/ that are installed, therefore there cannot be any conflicts with distro package managers. This ticket is invalid.

hyc commented 2 weeks ago

None of the code in external/ is packaged or installed on its own, so that all seems irrelevant. liblmdb and randomx in external/ certainly cannot rely on a system package anyway.

why cant they? randomx lmdb

Monero builds LMDB with non-default compile options. Distro packages are not compatible. RandomX is consensus-critical, you would have to be stupid or insane to trust someone else's build of it.

All of the components in external/ are at known specific versions. This is a requirement for both reliability and reproducibility.