Comments (5)
What is lost, is the ability to update the OpenSSL DLLs independently from libcurl.dll
My gut feeling says that users that download these binaries would download them from the same place anyway and thus would still get them in sync, in one file or several. I don't think linking with it statically in this build will upset many users. And I don't think we will find out either until we try it and see if anyone complains...
and the increased traffic/download size for the curl.se servers.
I don't want to say that bandwidth is free for us, but it practice it basically is since we have a sponsor for whom our bandwidth use is like a drop in the ocean.
from curl-for-win.
Standalone libcurl*.dll
is now available, version 7.75.0_1+.
Size increase almost nothing (+5%) for the TAR package, +35-38% for ZIP:
pkg | 7.75.0 | 7.75.0_1 |
---|---|---|
curl-win32-mingw.tar.xz | 2116716 | 2223528 |
curl-win32-mingw.zip | 3271416 | 4448842 |
curl-win64-mingw.tar.xz | 2283028 | 2395164 |
curl-win64-mingw.zip | 3575937 | 4938635 |
from curl-for-win.
Ultimately it's a "personal"/arbitrary choice. Since there as in "infinite" number of dynamic/static linkage combinations, I had to choose one and that's the one I choose after weighing pros/cons. My observation is that if a project chooses to use DLLs in the first place, the goal is to have all libs as DLL. This also saves space for curl-for-win (by not having to distro all dependent code as part of libcurl.dll
as well, adding bloat). It's also the combination that can be built relatively cleanly because the libcurl.dll
build doesn't need to know about the complete static lib dependency-tree at build-time. It also means that DLL users are free to update the dependencies separately (one main goal of using DLLs as I reckon). But, I never personally used DLLs on Windows and found little if any advantage using them, so maybe I'm assuming some things wrong (and there is nothing even close to a standard for any of this on Windows). I must have said similar things over at #12.
If the goal is to avoid DLLs, libcurl.dll
included, it's possible to link everything statically. But, if the goal is to have libcurl.dll
, but no other DLLs; that particular combination (along with different potential mixed static-DLL lib combinations) just isn't covered by curl-for-win.
[ FWIW the README says that curl.exe
is offered as a standalone (aka static) binary. This wording is intentional to refer to the .exe
only. ]
from curl-for-win.
After digging in the build sources, I realized that the small DLL dependencies are already linked statically to libcurl.dll
(should have been obvious from the DLL deps output, yay). So, aside from potential technical difficulties resulting from linking OpenSSL statically as well (not sure I've ever tried doing that and there can be surprises), the only decision to make here is whether linking it statically would be the desired behaviour for most libcurl.dll
users. What is lost, is the ability to update the OpenSSL DLLs independently from libcurl.dll
, and the increased traffic/download size for the curl.se
servers.
from curl-for-win.
I'll make some tests with linking OpenSSL statically.
from curl-for-win.
Related Issues (20)
- WinGet HOT 2
- Add a way to download the latest version at all time HOT 7
- Where to download 'openssl-1.x.x-win64-mingw.zip' HOT 3
- Entry Point Not Found: AcquireSRWLockExclusive (KERNEL32.DLL) HOT 7
- Missing files HOT 1
- zstd support HOT 4
- Curl 7.85/32-bit not a valid Windows application HOT 1
- libcurl static linking instructions and/or pkg-config file HOT 31
- Text files are not viewable in notepad HOT 1
- Openssl 1.1.1s or q HOT 3
- enable Control Flow Guard HOT 19
- Url for specific version is down HOT 5
- What is the Unicode "feature"? HOT 1
- Non-latin symbols processing HOT 4
- LTO support HOT 7
- untangle dependencies from configuration HOT 2
- Build official curl binaries with PSL HOT 42
- Cannot build libpsl on Windows HOT 17
- effects of going nroffless HOT 2
- Installation instructions? HOT 3
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 curl-for-win.