Summary: | fetch(1): parallel download from multiple servers by fetch | ||
---|---|---|---|
Product: | Base System | Reporter: | Mikhail T. <freebsd-2024> |
Component: | bin | Assignee: | Dag-Erling Smørgrav <des> |
Status: | Open --- | ||
Severity: | Affects Only Me | CC: | grahamperrin |
Priority: | --- | Keywords: | feature, needs-qa |
Version: | 6.3-PRERELEASE | ||
Hardware: | Any | ||
OS: | Any | ||
See Also: | https://github.com/freebsd/pkg/issues/1628 |
Description
Mikhail T.
2007-12-31 18:30:02 UTC
Responsible Changed From-To: freebsd-bugs->des Assign to fetch maintainer Unfortunately, this is not possible within the framework of libfetch as it stands today. Libfetch was designed and implemented with very specific requirements, namely that the API should provide a drop-in replacement for fopen(3) (fetchGetURL(3), which pkg_add(1) uses) and that it should cache server connections between invocations. As a consequence, libfetch must store a lot of state in global variables, and is not parallelizable. DES -- Dag-Erling Sm=C3=B8rgrav - des@des.no =D1=81=D0=B5=D1=80=D0=B5=D0=B4=D0=B0 02 =D1=81=D1=96=D1=87=D0=B5=D0=BD=D1= =8C 2008 01:28 =D0=BF=D0=BE, Dag-Erling Sm=C3=B8rgrav =D0=92=D0=B8 =D0=BD= =D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB=D0=B8: > Unfortunately, this is not possible within the framework of libfetch as > it stands today. Libfetch was designed and implemented with very > specific requirements, namely that the API should provide a drop-in > replacement for fopen(3) (fetchGetURL(3), which pkg_add(1) uses) and > that it should cache server connections between invocations. As a > consequence, libfetch must store a lot of state in global variables, and > is not parallelizable. Well, you wrote it -- can you try to reduce the number of places, where the global variables are used (implicitly) in favor of an explicitly passed context-pointer or some such? No necessarily to the full extent of implementing the wish, but to simply make some other would-be implementer's job easier... Or should we take libcurl as the basis instead? I don't know their API, but the license claims to be MIT/X-derivative: http://64.233.169.104/search?q=cache:GGdoH55jw08J:curl.haxx.se/docs/copyright.html so it may be Ok to include it into our tree some day... -mi State Changed From-To: open->suspended It does not sound as though this is being actively worked on. batch change: For bugs that match the following - Status Is In progress AND - Untouched since 2018-01-01. AND - Affects Base System OR Documentation DO: Reset to open status. Note: I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed. |