-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the ability to install multiple versions (2.*, 3.*, 4.* ...) on the system simultaneously #8723
Comments
Hi, I'm not familiar with the specifics of your situation , but would #8691 be relevant / solve this issue? |
@davidhorstmann-arm #8691 is relevant and pc-files should be tweaked in order to find libraries in custom locations. My proposal is install 2.* into mbedtls2 path while 3.* - into mbedtls3. It should look this:
Packages can compiles and links with |
Define additional INSTALL_MBEDTLS_HEADERS variable in CMake to allow installing headers to different location (like include/mbedtls2). See Mbed-TLS#8723 for rationale. Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
Use standard `CMAKE_INSTALL_INCLUDEDIR` and `CMAKE_INSTALL_LIBDIR` location to define headers and library installation. This variable can be redefined on configuration phase to allow install headers and libraries to different location (like `include/mbedtls2`). Additionally removing explicit permission rules as they may broke proper permissions for system installation (like remove executable bit from libraries). By default CMake sets permissions correctly on all files and directories. See Mbed-TLS#8723 for rationale. Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
Use standard `CMAKE_INSTALL_INCLUDEDIR` location to define headers installation. This variable can be redefined on configuration phase to allow install headers to different location (like `include/mbedtls3`). Additionally removing explicit permission rules as they may broke proper permissions for system installation (like remove executable bit from libraries). By default CMake sets permissions correctly on all files and directories. See Mbed-TLS#8723 for rationale. Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
Use standard `CMAKE_INSTALL_INCLUDEDIR` and `CMAKE_INSTALL_LIBDIR` location to define headers and library installation. This variable can be redefined on configuration phase to allow install headers and libraries to different location (like `include/mbedtls3`, Mbed-TLS#8723). Additionally removing explicit permission rules as they may broke proper permissions for system installation (like remove executable bit from libraries). By default CMake sets permissions correctly on all files and directories. See Mbed-TLS#8723 for rationale. Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
Same here for FreeBSD. |
Suggested enhancement
Hello, I'm maintaining the MbedTLS package on the Gentoo Linux system. We have multiple packages that still depend on MbedTLS 2, so in order to build them we need 2.* branches installed. Unfortunately, there are also a number of packages that already require newer version 3.*.
We need to enhance the CMake buildsystem in a way that will allow us to have both 2 and 3 versions. By default, 2 and 3 cannot be installed simultaneously due path conflicts in lib and include directories.
Justification
Mbed TLS needs this because many packages still stick or are unable to migrate to 3 versions. We need a way to install both versions and let packages decide what to choose between them.
See also https://bugs.gentoo.org/805011 for actual problem and rationale.
The text was updated successfully, but these errors were encountered: