[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: Stefan Fuhrmann <stefan.fuhrmann_at_wandisco.com>
Date: Thu, 6 Nov 2014 22:49:57 +0100

On Thu, Nov 6, 2014 at 8:55 PM, Ben Reser <ben_at_reser.org> wrote:

> On 11/6/14 5:10 AM, Nico Kadel-Garcia wrote:
> > Out of curiosity, do the same issues occur with gcc on a modern box?
> > Ther'e's a lot to like about MacPorts, but I don't think it's the
> > primary build and testing platform for Subversion.
>
> Yes gcc is going to have the same issues because the declarations he needs
> have
> been removed from svn_sorts.h These declarations have been there since
> 1.0.
> Prior to 1.0 they had names in the APR namespace, since it was expected
> this
> functionality would be moved to APR. Before 1.0 we cleaned up that
> namespace
> problem and marked them private (by documentation and by using __ in the
> names). Of course since they were still in a public header they are
> effectively public APIs. Bert noticed that there were a lot of these
> private
> APIs added to the svn_sorts.h header since 1.8 on trunk and so he moved
> all of
> them into a private header that isn't installed. This meant he moved the
> ones
> that had been there since 1.0, thus breaking any 3rd party code that
> depended
> on them.
>
> Ideally we would have never exposed these. Ideally 3rd parties would have
> observed the private markers and not used them.
>
> I suggested that we resolve this by restoring the long standing private
> APIs
> that had been exposed. While not adding any new APIs. If nobody objects
> to
> that suggestion soon I'm going to just do it.
>

+1.

I've been scanning the public headers for more such instances
and found the following, including the sort API ones:

svn_cmdline.h
    svn_cmdline__getopt_init (1.4)

svn_error.h
    SVN_ERR__TRACED (1.7)

svn_sorts.h
    svn_sort__hash (1.0)
    svn_sort__bsearch_lower_bound (1.6)
    svn_sort__array_insert (1.6)
    svn_sort__array_delete (1.8)

svn_types.h
    svn__apr_hash_index_key (1.7)
    svn__apr_hash_index_klen (1.7)
    svn__apr_hash_index_val (1.7)

Only svn_sort__hash() seems to be critical. We might want to
restore the sorted array functions as well but I'm -0 on that.

I think we should list all these changes in our release notes,
also mentioning that the svn__apr_hash_index_* functions
have been removed entirely. SVN_ERR__TRACED doesn't
even have to be mentioned, IMO.

-- Stefan^2.
Received on 2014-11-06 22:50:27 CET

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