-
Notifications
You must be signed in to change notification settings - Fork 10.3k
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
Document the required dependencies on Linux #64147
Comments
In that list zlib1g-dev and libz3-dev seem to be duplicates to me. From what I've been able to find, they seem to be ABI/API-compatible, so I hope we'd be able to use one and not the other. As for the rest, I think we can separate these into a few categories: Toolchain build time dependencies:
Foundation build dependencies
SwiftPM build dependency
SwiftPM/llbuild runtime dependencies
Swift runtime dependencies
Toolchain installation dependencies
LLDB runtime dependencies
|
🤔️The Windows port managed to reduce dependencies by statically linking Foundation/SwiftPM dependencies. I’m not sure if upstream Linux software repositories allow static linking, but it is a tempting way for reducing the number of dependencies, at least for Swift.org tarballs, despite the risk of increasing the toolchain size. The Windows guide also declares LLDB dependencies (Python) and SwiftPM external dependencies (Git) as recommended instead of required. On Linux where package management is more mature, I feel it’s reasonable to split the compiler, debugger and developer tools into different packages, to allow user skip some dependency if they really don’t need it.
|
@MaxDesiatov can you expand on your information about
From my research they seem to have very different purposes. |
@shahmishal what is the reason for trying to reduce the dependencies? |
@futurejones The goal is to understand the dependencies, and see if we can lower it. I wanted to explore an option in the future to limit OS and version specific distribution if possible. |
@shahmishal the simplest way to do that on ubuntu / debian OS's would be to use the build-essential
git
unzip
libcurl4-openssl-dev
libxml2-dev
libz3-dev
pkg-config
python3-lldb
tzdata
zlib1g-dev This will install the correct version of all the required dependencies on any ubuntu / debian distribution. |
The goal is not to reduce the number of lines in a |
@shahmishal @MaxDesiatov |
Document why each of these libraries are required on Linux, and also figure out alternative solution to reduce the dependences.
@MaxDesiatov has a pull request to reduce some of the dependences.
#61530
The text was updated successfully, but these errors were encountered: