Re: svn commit: r1697654 - /subversion/branches/1.9.x/STATUS

2015-08-26 Thread Branko Čibej
On 26.08.2015 07:34, Daniel Shahaf wrote:
 Branko Čibej wrote on Wed, Aug 26, 2015 at 07:26:47 +0200:
 On 25.08.2015 23:12, Stefan Fuhrmann wrote:
 On Tue, Aug 25, 2015 at 4:43 PM, Branko Čibej br...@wandisco.com wrote:
 Daniel suggested inserting a dummy handler if we don't have the GPG
 agent support. I think that may be the only reasonable solution for both
 trunk and 1.9.1 (or .x if we don't thing it's important enough for .1).

 The real effort here is double-checking that a dummy handler won't break
 credentials resolution.

 I think just starting with a full copying the GPG agent handler and
 making each call return failed should work. Didn't try it, though.
 I'll give this a go and hopefully come up with a test case, too.
 I think you might be able to get away with:

 static svn_auth_provider_t dummy = {
 .cred_kind = dummy, NULL, NULL, NULL
 };

I just added a private function to return a dummy simple provider; see
r1697824.

-- Brane


Re: svn commit: r1697654 - /subversion/branches/1.9.x/STATUS

2015-08-26 Thread Stefan Fuhrmann
On Wed, Aug 26, 2015 at 8:26 AM, Branko Čibej br...@wandisco.com wrote:

 On 26.08.2015 07:34, Daniel Shahaf wrote:
  Branko Čibej wrote on Wed, Aug 26, 2015 at 07:26:47 +0200:
  On 25.08.2015 23:12, Stefan Fuhrmann wrote:
  On Tue, Aug 25, 2015 at 4:43 PM, Branko Čibej br...@wandisco.com
 wrote:
  Daniel suggested inserting a dummy handler if we don't have the GPG
  agent support. I think that may be the only reasonable solution for
 both
  trunk and 1.9.1 (or .x if we don't thing it's important enough for
 .1).
 
  The real effort here is double-checking that a dummy handler won't
 break
  credentials resolution.
 
  I think just starting with a full copying the GPG agent handler and
  making each call return failed should work. Didn't try it, though.
  I'll give this a go and hopefully come up with a test case, too.
  I think you might be able to get away with:
 
  static svn_auth_provider_t dummy = {
  .cred_kind = dummy, NULL, NULL, NULL
  };

 I just added a private function to return a dummy simple provider; see
 r1697824.


Thanks for taking care of that! Reviewed and approved.

-- Stefan^2.


Re: svn commit: r1697654 - /subversion/branches/1.9.x/STATUS

2015-08-25 Thread Branko Čibej
On 25.08.2015 17:31, Stefan Fuhrmann wrote:
 On Tue, Aug 25, 2015 at 12:55 PM, Branko Čibej br...@wandisco.com wrote:

 On 25.08.2015 13:49, br...@apache.org wrote:
 Author: brane
 Date: Tue Aug 25 11:49:09 2015
 New Revision: 1697654

 URL: http://svn.apache.org/r1697654
 Log:
 * branches/1.9.x/STATUS:
- Approve r1693886.
- Temporarily veto r1694481; the change looks broken.
 [...]

 @@ -98,5 +84,22 @@ Candidate changes:
  Veto-blocked changes:
  =

 + * r1694481
 +   Fix Unix build on systems without GPG agent.
 +   Justification:
 + This is a user-reported issue.
 +   Votes:
 + +1: stefan2, philip
 + -1: brane (You can't just remove a public API implementation,
 +even if it is deprecated. And the prototyps is still
 +right there in svn_auth.h)
 +
  Approved changes:
  =
 r1694481 (conditionally) removes the implementation of a public API,
 whilst leaving the prototype in svn_auth.h untouched. This is a
 violation of our ABI compatibility rules, and also a linking error
 waiting to happen.

 Except that the very problem is that
 svn_auth__get_gpg_agent_simple_provider
 is not implemented either if SVN_HAVE_GPG_AGENT
 is not defined. And that linker problem is the one being
 already reported and fixed by the patch.

 You are still right that we introduce another linker problem
 further down the road for some people that stumbled
 across the first one in the past. And not implementing
 the public API is a bad thing.

 So, I think we need to do some coding to fix this on /trunk.
 Question is whether we want to skip r1694481 as a  stop-
 gap patch for 1.9.1 and enable people to build SVN again.


Daniel suggested inserting a dummy handler if we don't have the GPG
agent support. I think that may be the only reasonable solution for both
trunk and 1.9.1 (or .x if we don't thing it's important enough for .1).

The real effort here is double-checking that a dummy handler won't break
credentials resolution.

-- Brane


Re: svn commit: r1697654 - /subversion/branches/1.9.x/STATUS

2015-08-25 Thread Branko Čibej
On 25.08.2015 23:12, Stefan Fuhrmann wrote:
 On Tue, Aug 25, 2015 at 4:43 PM, Branko Čibej br...@wandisco.com wrote:

 On 25.08.2015 17:31, Stefan Fuhrmann wrote:
 On Tue, Aug 25, 2015 at 12:55 PM, Branko Čibej br...@wandisco.com
 wrote:
 On 25.08.2015 13:49, br...@apache.org wrote:
 Author: brane
 Date: Tue Aug 25 11:49:09 2015
 New Revision: 1697654

 URL: http://svn.apache.org/r1697654
 Log:
 * branches/1.9.x/STATUS:
- Approve r1693886.
- Temporarily veto r1694481; the change looks broken.
 [...]

 @@ -98,5 +84,22 @@ Candidate changes:
  Veto-blocked changes:
  =

 + * r1694481
 +   Fix Unix build on systems without GPG agent.
 +   Justification:
 + This is a user-reported issue.
 +   Votes:
 + +1: stefan2, philip
 + -1: brane (You can't just remove a public API implementation,
 +even if it is deprecated. And the prototyps is still
 +right there in svn_auth.h)
 +
  Approved changes:
  =
 r1694481 (conditionally) removes the implementation of a public API,
 whilst leaving the prototype in svn_auth.h untouched. This is a
 violation of our ABI compatibility rules, and also a linking error
 waiting to happen.

 Except that the very problem is that
 svn_auth__get_gpg_agent_simple_provider
 is not implemented either if SVN_HAVE_GPG_AGENT
 is not defined. And that linker problem is the one being
 already reported and fixed by the patch.

 You are still right that we introduce another linker problem
 further down the road for some people that stumbled
 across the first one in the past. And not implementing
 the public API is a bad thing.

 So, I think we need to do some coding to fix this on /trunk.
 Question is whether we want to skip r1694481 as a  stop-
 gap patch for 1.9.1 and enable people to build SVN again.

 Daniel suggested inserting a dummy handler if we don't have the GPG
 agent support. I think that may be the only reasonable solution for both
 trunk and 1.9.1 (or .x if we don't thing it's important enough for .1).

 The real effort here is double-checking that a dummy handler won't break
 credentials resolution.

 I think just starting with a full copying the GPG agent handler and
 making each call return failed should work. Didn't try it, though.

I'll give this a go and hopefully come up with a test case, too.

-- Brane


Re: svn commit: r1697654 - /subversion/branches/1.9.x/STATUS

2015-08-25 Thread Daniel Shahaf
Branko Čibej wrote on Wed, Aug 26, 2015 at 07:26:47 +0200:
 On 25.08.2015 23:12, Stefan Fuhrmann wrote:
  On Tue, Aug 25, 2015 at 4:43 PM, Branko Čibej br...@wandisco.com wrote:
  Daniel suggested inserting a dummy handler if we don't have the GPG
  agent support. I think that may be the only reasonable solution for both
  trunk and 1.9.1 (or .x if we don't thing it's important enough for .1).
 
  The real effort here is double-checking that a dummy handler won't break
  credentials resolution.
 
  I think just starting with a full copying the GPG agent handler and
  making each call return failed should work. Didn't try it, though.
 
 I'll give this a go and hopefully come up with a test case, too.

I think you might be able to get away with:

static svn_auth_provider_t dummy = {
.cred_kind = dummy, NULL, NULL, NULL
};


Re: svn commit: r1697654 - /subversion/branches/1.9.x/STATUS

2015-08-25 Thread Branko Čibej
On 25.08.2015 13:49, br...@apache.org wrote:
 Author: brane
 Date: Tue Aug 25 11:49:09 2015
 New Revision: 1697654

 URL: http://svn.apache.org/r1697654
 Log:
 * branches/1.9.x/STATUS:
- Approve r1693886.
- Temporarily veto r1694481; the change looks broken.

[...]

 @@ -98,5 +84,22 @@ Candidate changes:
  Veto-blocked changes:
  =
  
 + * r1694481
 +   Fix Unix build on systems without GPG agent.
 +   Justification:
 + This is a user-reported issue.
 +   Votes:
 + +1: stefan2, philip
 + -1: brane (You can't just remove a public API implementation,
 +even if it is deprecated. And the prototyps is still
 +right there in svn_auth.h)
 +
  Approved changes:
  =

r1694481 (conditionally) removes the implementation of a public API,
whilst leaving the prototype in svn_auth.h untouched. This is a
violation of our ABI compatibility rules, and also a linking error
waiting to happen.

I suggest the correct fix is for the function to just do nothing if GPG
support is not available. Ideally it would return an error, but the
prototype doesn't let us do that.

For example:

--- ../trunk/subversion/libsvn_subr/deprecated.c(revision 1697651)
+++ ../trunk/subversion/libsvn_subr/deprecated.c(working copy)
@@ -1497,14 +1497,14 @@
 #endif /* DARWIN */
 
 #if !defined(WIN32)
-#ifdef SVN_HAVE_GPG_AGENT
 void
 svn_auth_get_gpg_agent_simple_provider(svn_auth_provider_object_t **provider,
apr_pool_t *pool)
 {
+#ifdef SVN_HAVE_GPG_AGENT
   svn_auth__get_gpg_agent_simple_provider(provider, pool);
-}
 #endif /* SVN_HAVE_GPG_AGENT */
+}
 #endif /* !WIN32 */
 
 svn_error_t *


-- Brane



Re: svn commit: r1697654 - /subversion/branches/1.9.x/STATUS

2015-08-25 Thread Stefan Fuhrmann
On Tue, Aug 25, 2015 at 4:43 PM, Branko Čibej br...@wandisco.com wrote:

 On 25.08.2015 17:31, Stefan Fuhrmann wrote:
  On Tue, Aug 25, 2015 at 12:55 PM, Branko Čibej br...@wandisco.com
 wrote:
 
  On 25.08.2015 13:49, br...@apache.org wrote:
  Author: brane
  Date: Tue Aug 25 11:49:09 2015
  New Revision: 1697654
 
  URL: http://svn.apache.org/r1697654
  Log:
  * branches/1.9.x/STATUS:
 - Approve r1693886.
 - Temporarily veto r1694481; the change looks broken.
  [...]
 
  @@ -98,5 +84,22 @@ Candidate changes:
   Veto-blocked changes:
   =
 
  + * r1694481
  +   Fix Unix build on systems without GPG agent.
  +   Justification:
  + This is a user-reported issue.
  +   Votes:
  + +1: stefan2, philip
  + -1: brane (You can't just remove a public API implementation,
  +even if it is deprecated. And the prototyps is still
  +right there in svn_auth.h)
  +
   Approved changes:
   =
  r1694481 (conditionally) removes the implementation of a public API,
  whilst leaving the prototype in svn_auth.h untouched. This is a
  violation of our ABI compatibility rules, and also a linking error
  waiting to happen.
 
  Except that the very problem is that
  svn_auth__get_gpg_agent_simple_provider
  is not implemented either if SVN_HAVE_GPG_AGENT
  is not defined. And that linker problem is the one being
  already reported and fixed by the patch.
 
  You are still right that we introduce another linker problem
  further down the road for some people that stumbled
  across the first one in the past. And not implementing
  the public API is a bad thing.
 
  So, I think we need to do some coding to fix this on /trunk.
  Question is whether we want to skip r1694481 as a  stop-
  gap patch for 1.9.1 and enable people to build SVN again.


 Daniel suggested inserting a dummy handler if we don't have the GPG
 agent support. I think that may be the only reasonable solution for both
 trunk and 1.9.1 (or .x if we don't thing it's important enough for .1).

 The real effort here is double-checking that a dummy handler won't break
 credentials resolution.


I think just starting with a full copying the GPG agent handler and
making each call return failed should work. Didn't try it, though.

-- Stefan^2.