[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: pysvn does not build against 1.9-alpha2 because of incomplete type 'const svn_sort__item_t'

From: Ben Reser <ben_at_reser.org>
Date: Wed, 05 Nov 2014 12:35:21 -0800

On 11/5/14 10:49 AM, Barry Scott wrote:
> I have been building pysvn against the latest svn kits. 1.7.18, 1.8.10 and 1.9.0-alpha2
> using the Mac OS X Xcode 6.1 command line tools, clang is the compiler not gcc.
>
> Compiling and testing pysvn against 1.7.18 and 1.8.10 works with no errors.
>
> But I get compile errors when compiling pysvn against 1.9.0-alpha2:
>
> pysvn_client_cmd_info.cpp:1383:39: error: use of undeclared identifier 'svn_sort__hash'
> apr_array_header_t *statusarray = svn_sort__hash( status_hash, svn_sort_compare_items_as_paths, pool );
> ^
> pysvn_client_cmd_info.cpp:1388:41: error: subscript of pointer to incomplete type 'const svn_sort__item_t'
> const svn_sort__item_t *item = &APR_ARRAY_IDX( statusarray, i, const svn_sort__item_t );
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/apr-1/apr_tables.h:141:57: note: expanded from macro 'APR_ARRAY_IDX'
> #define APR_ARRAY_IDX(ary,i,type) (((type *)(ary)->elts)[i])
> ~~~~~~~~~~~~~~~~~~~~~^
> svn_sort.h has been included.

First of all in general reports about pysvn should go to the pysvn devleopers
and not the SVN developers. It's a separate project which you can find here:
http://pysvn.tigris.org/

Looks like Bert moved this stuff into a private header in
http://svn.apache.org/r1555133 . While these have always been technically
private, they have been in public headers for a very long time (see
http://subversion.tigris.org/issues/show_bug.cgi?id=1644 ).

In general I agree with Bert's change since nobody should be using these
private APIs. In practice they have been being used.

Seems to me that we should rollback the long standing private symbols in
svn_sorts.h while not adding any new symbols.
Received on 2014-11-05 21:35:45 CET

This is an archived mail posted to the Subversion Dev mailing list.