Re: Minimum libCurl version for git

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mike Ralphson <mike.ralphson@xxxxxxxxx> writes:

> Going forward there are various options:
>
> 1. Do nothing - go with the status quo.
>
> 2. Correct the #ifdefs for CURLOPT_SSLKEY
>
> 3. Drop the #ifdefs for CURLOPT_SSLKEY entirely and make 7.9.3 our
> minimum supported version. I feel slightly embarrassed about that, as
> that's exactly the version I have here on AIX (unless I wrest it back
> from being sysadmin-installed to being user-supported). Add a check to
> the Makefile and error if libCurl is too old.
>
> 4. Drop all current #ifdefs and one of the deprecated symbol names.
> Our minimum supported libCurl version would be 7.9.8 from Jun 2002.
>
> 5. Drop all current #ifdefs and both of the deprecated symbol names.
> Our minimum supported libCurl version would be 7.10.8 from Nov 2003.
>
> 6. Warn (not error) if libCurl is older than say the 3 years suggested
> by Daniel. This would seem to require periodic updates to the Makefile
> check.
>
> I'm happy to whip up a patch if required, but I thought a series of
> mutually-exclusive alternative patches would be confusing without
> prior agreement on the approach.
>
> Mike
>
> [1]  http://cool.haxx.se/cvs.cgi/curl/docs/libcurl/symbols-in-versions?rev=HEAD&content-type=text/vnd.viewcvs-markup

Thanks for a detailed analysis.

My gut feeling is we should be able to do 3 safely.

I am not sure if you are reading the "deprecated" column correctly,
though:

 Name                           Introduced  Deprecated  Removed
CURLINFO_HTTP_CODE              7.4.1         7.10.8
CURLOPT_INFILE                  7.1           7.9.7

These two symbols are what we do use in our code, so the
deprecated/removed column would give us the upper bound of the versions,
not the lower bound.

We can have these two macro definitions on our side

	#if curl older than 7.10.8
        #define CURLINFO_RESPONSE_CODE CURLINFO_HTTP_CODE
	#endif

	#if curl older than 7.9.7
        #define CURLOPT_READDATA CURLOPT_INFILE
	#endif

for backward compatibility, while writing our code to the recent API by
using CURLINFO_RESPONSE_CODE and CURLOPT_READDATA, and people with older
curl would not have to suffer a bit.

So I think your 4 and 5 are non issues.

But this is without having a handy tally of what releases of various
distros shipped their libcurl with.  If we had a table like this...

Distro			Last update		libcurl version
----------------------------------------------------------------
Debian 3.1 sarge	2005-06-06		???
Debian 4.0 etch		2009-02-10 (4.0r7)	7.15.5
Debian 5.0 lenny	2009-02-14		7.18.2

... then we could say "This is git, a tool primarily for developers to
keep track of sources; nobody would be running on a box that was updated
the last time four years ago, so we can safely assume libcurl more recent
than version ???".

It would also be valid to argue that "4.0 etch may have been updated last
month, but libcurl 7.15.5 has been available on the release a lot before
that, as of 200X-XX-XX, which is more than N years ago, which makes it
safe to assume that assuming 7.15.5 or later is fine for Debian folks; do
not get fooled by the date of last update," in which case it would be good
to have entry for the original release date.

For non-commercial Linux folks I think it should be Ok to assume not too
ancient libcurl, but I have no clue on how the table like the above would
look like for things like AIX, IRIX, HPUX etc.  ... Oh, and SCO.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux