Comments (5)
I'd like to keep this issue focused narrowly on the fallback version in the current state of things. It could be relatively easy to gain a small improvement by updating the fallback to a more recent version. That's certainly not a wholesome solution to the overall problem, but it's managable and has a direct benefit.
We should have another discussion about the whole topic of library information. I'm collecting some talking points for that and will open a thread on the forum.
from crystal.
from crystal.
I still believe #7245 was the correct solution: get the information from C headers when pkg-config is missing. It would detect the actual version of libressl or openssl and fail when the headers are missing.
We can't guess what version or which of libressl or openssl is installed, and we shouldn't have to.
from crystal.
@ysbaddaden #7245 could be helpful, but it's not a proper solution. The whole problem is more complex and improving autodiscovery only get's us so far.
This issue is about the current fallback solution if autodiscovery of the library version doesn't work. #7245 wouldn't solve this problem because C headers could be missing as well. So we still need a default behaviour when autodiscovery doesn't work.
I don't think you should need C headers for building Crystal bindings just for figuring out the version. If it works, that's fine. But it must not be a requirement.
A solution could be a mechanism for explicitly configuring the library version.
from crystal.
There is no fallback in #7245: compilation will fail if the C headers aren't installed (or reachable).
from crystal.
Related Issues (20)
- Range#size returns an Union instead of an Int32 HOT 1
- Inconsistent behaviour regarding line break requirement in method definition HOT 1
- `Module validation failed` with proc in recursive def HOT 3
- Crystal REPL instantly executes statement with intertwined heredoc HOT 1
- FormData part.body.read does not fill buffer HOT 3
- `Hash#rehash` removes `@first` elements from hash
- Add API for `Base64.encode` / `Base64.decode` with an `IO` as the source HOT 3
- Add methods for filling a buffer from an IO greedily/lazily HOT 5
- Enable `ameba` in this repo HOT 19
- formatter cause syntax error. HOT 2
- `Crypto::Subtle.constant_time_compare` does not work with `StaticArray` / Cannot overwrite `StaticArray` variable HOT 2
- Parser failure on argument list with trailing comma HOT 6
- RFC: Tracing HOT 8
- `Crystal::System::User#from_*?` et al. don't work if required buffer size greater than initial buffer size HOT 1
- If any system user entry exceeds `GETPW_R_SIZE_MAX`, retreiving any user is impossible HOT 2
- `IO#same_content?` returns `true` if `stream1` is a prefix of `stream2` HOT 1
- `docs_main.cr` is a mess HOT 1
- Interpreter Error: can't cast Pointer(Void) to (Pointer(Void) | String)
- Parser considers empty argument list with trailing comma as invalid HOT 5
- Sockets are inherited by subprocesses HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crystal.