Author: lluis
Date: 2007-10-18 12:38:30 -0400 (Thu, 18 Oct 2007)
New Revision: 87766

Modified:
   trunk/monodevelop/Extras/VersionControl/ChangeLog
   
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/Makefile.am
   
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.mdp
   
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibApr.cs
   
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SvnClient.cs
Log:
* MonoDevelop.VersionControl.Subversion/Makefile.am,
  
MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.mdp:
  Added reference to System.
* 
MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibApr.cs,
  
MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SvnClient.cs:
  libsvn_client may be linked to libapr-0 or libapr-1, and we need to
  bind the LibApr class the the same library. Added code that detects
  the required libapr version and loads it. Fixes bug #325391.

Modified: trunk/monodevelop/Extras/VersionControl/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/VersionControl/ChangeLog   2007-10-18 16:38:12 UTC 
(rev 87765)
+++ trunk/monodevelop/Extras/VersionControl/ChangeLog   2007-10-18 16:38:30 UTC 
(rev 87766)
@@ -1,5 +1,16 @@
 2007-10-18  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
 
+       * MonoDevelop.VersionControl.Subversion/Makefile.am,
+         
MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.mdp:
+         Added reference to System.
+       * 
MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibApr.cs,
+         
MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SvnClient.cs:
+         libsvn_client may be linked to libapr-0 or libapr-1, and we need to 
bind
+         the LibApr class the the same library. Added code that detects the
+         required libapr version and loads it. Fixes bug #325391.
+
+2007-10-18  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
+
        * Diff/Diff.mdp, DiffWidget/DiffWidget.mdp,
          MonoDevelop.VersionControl.Subversion/gtk-gui/gui.stetic,
          
MonoDevelop.VersionControl.Subversion/gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.SslServerTrustDialog.cs,

Modified: 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/Makefile.am
===================================================================
--- 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/Makefile.am
   2007-10-18 16:38:12 UTC (rev 87765)
+++ 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/Makefile.am
   2007-10-18 16:38:30 UTC (rev 87766)
@@ -9,7 +9,8 @@
        -r:$(top_builddir)/build/bin/MonoDevelop.Components.dll \
        -r:$(top_builddir)/build/bin/MonoDevelop.Core.dll \
        -r:$(top_builddir)/build/bin/MonoDevelop.Projects.dll \
-       -r:Mono.Posix
+       -r:Mono.Posix \
+       -r:System
 
 FILES =  \
        gtk-gui/generated.cs \

Modified: 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibApr.cs
===================================================================
--- 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibApr.cs
       2007-10-18 16:38:12 UTC (rev 87765)
+++ 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibApr.cs
       2007-10-18 16:38:30 UTC (rev 87766)
@@ -11,8 +11,13 @@
                public static readonly int APR_CREATE = 4;
                public static readonly int APR_TRUNCATE = 16;
                
-               public static LibApr GetLib ()
+               public static LibApr GetLib (int ver)
                {
+                       if (ver == 0)
+                               return new LibApr0 ();
+                       else if (ver == 1)
+                               return new LibApr1 ();
+                       
                        try {
                                return new LibApr0 ();
                        } catch {}

Modified: 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SvnClient.cs
===================================================================
--- 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SvnClient.cs
    2007-10-18 16:38:12 UTC (rev 87765)
+++ 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SvnClient.cs
    2007-10-18 16:38:30 UTC (rev 87766)
@@ -26,10 +26,35 @@
                
                static SvnClient()
                {
-                       apr = LibApr.GetLib ();
+                       // Detect the libapr version required by libsvn_client. 
We need to bind to the same library.
+                       int aprver = GetLoadAprLib (-1);
                        svn = LibSvnClient.GetLib ();
+                       aprver = GetLoadAprLib (aprver);
+                       if (aprver != -1)
+                               Runtime.LoggingService.Info ("Subversion 
add-in: detected libapr-" + aprver);
+                       apr = LibApr.GetLib (aprver);
                }
                
+               static int GetLoadAprLib (int oldVersion)
+               {
+                       // Get the version of the loaded libapr
+                       string file = "/proc/" + 
System.Diagnostics.Process.GetCurrentProcess ().Id + "/maps";
+                       try {
+                               int newv = oldVersion;
+                               if (File.Exists (file)) {
+                                       string txt = File.ReadAllText (file);
+                                       if (txt.IndexOf ("libapr-0") != -1 && 
oldVersion != 0)
+                                               newv = 0;
+                                       if (txt.IndexOf ("libapr-1") != -1 && 
oldVersion != 1)
+                                               newv = 1;
+                               }
+                               return newv;
+                       } catch {
+                               // Ignore
+                               return oldVersion;
+                       }
+               }
+               
                private static IntPtr newpool (IntPtr parent)
                {
                        IntPtr p;

Modified: 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.mdp
===================================================================
--- 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.mdp
     2007-10-18 16:38:12 UTC (rev 87765)
+++ 
trunk/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.mdp
     2007-10-18 16:38:30 UTC (rev 87766)
@@ -4,7 +4,7 @@
       <Output directory="../../../build/AddIns/VersionControl" 
assembly="MonoDevelop.VersionControl.Subversion" />
       <Build debugmode="True" target="Library" />
       <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" 
clr-version="Net_2_0" />
-      <CodeGeneration compiler="Csc" warninglevel="4" optimize="False" 
unsafecodeallowed="True" generateoverflowchecks="True" mainclass="" 
generatexmldocumentation="False" win32Icon="./" 
ctype="CSharpCompilerParameters" />
+      <CodeGeneration compiler="Csc" warninglevel="3" optimize="False" 
unsafecodeallowed="True" generateoverflowchecks="True" mainclass="" 
generatexmldocumentation="False" win32Icon="." ctype="CSharpCompilerParameters" 
/>
     </Configuration>
     <Configuration name="Release" ctype="DotNetProjectConfiguration">
       <Output directory="../../../build/AddIns/VersionControl" 
assembly="MonoDevelop.VersionControl.Subversion" />
@@ -14,24 +14,24 @@
     </Configuration>
   </Configurations>
   <Contents>
-    <File name="./gtk-gui/generated.cs" subtype="Code" buildaction="Compile" />
-    <File 
name="./MonoDevelop.VersionControl.Subversion/SubversionRepository.cs" 
subtype="Code" buildaction="Compile" />
-    <File 
name="./MonoDevelop.VersionControl.Subversion/SubversionVersionControl.cs" 
subtype="Code" buildaction="Compile" />
-    <File name="./MonoDevelop.VersionControl.Subversion/SvnClient.cs" 
subtype="Code" buildaction="Compile" />
-    <File name="./MonoDevelop.VersionControl.Subversion/LibApr.cs" 
subtype="Code" buildaction="Compile" />
-    <File name="./Makefile.am" subtype="Code" buildaction="Nothing" />
-    <File name="./MonoDevelop.VersionControl.Subversion.addin.xml" 
subtype="Code" buildaction="EmbedAsResource" />
-    <File name="./gtk-gui/objects.xml" subtype="Code" 
buildaction="EmbedAsResource" />
-    <File name="./gtk-gui/gui.stetic" subtype="Code" 
buildaction="EmbedAsResource" />
-    <File 
name="./MonoDevelop.VersionControl.Subversion.Gui/ClientCertificateDialog.cs" 
subtype="Code" buildaction="Compile" />
-    <File 
name="./MonoDevelop.VersionControl.Subversion.Gui/ClientCertificatePasswordDialog.cs"
 subtype="Code" buildaction="Compile" />
-    <File 
name="./MonoDevelop.VersionControl.Subversion.Gui/SslServerTrustDialog.cs" 
subtype="Code" buildaction="Compile" />
-    <File 
name="./MonoDevelop.VersionControl.Subversion.Gui/UserPasswordDialog.cs" 
subtype="Code" buildaction="Compile" />
-    <File 
name="./gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.ClientCertificateDialog.cs"
 subtype="Code" buildaction="Compile" />
-    <File 
name="./gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.ClientCertificatePasswordDialog.cs"
 subtype="Code" buildaction="Compile" />
-    <File 
name="./gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.SslServerTrustDialog.cs"
 subtype="Code" buildaction="Compile" />
-    <File 
name="./gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.UserPasswordDialog.cs"
 subtype="Code" buildaction="Compile" />
-    <File name="./MonoDevelop.VersionControl.Subversion/LibSvnClient.cs" 
subtype="Code" buildaction="Compile" />
+    <File name="gtk-gui/generated.cs" subtype="Code" buildaction="Compile" />
+    <File name="MonoDevelop.VersionControl.Subversion/SubversionRepository.cs" 
subtype="Code" buildaction="Compile" />
+    <File 
name="MonoDevelop.VersionControl.Subversion/SubversionVersionControl.cs" 
subtype="Code" buildaction="Compile" />
+    <File name="MonoDevelop.VersionControl.Subversion/SvnClient.cs" 
subtype="Code" buildaction="Compile" />
+    <File name="MonoDevelop.VersionControl.Subversion/LibApr.cs" 
subtype="Code" buildaction="Compile" />
+    <File name="Makefile.am" subtype="Code" buildaction="Nothing" />
+    <File name="MonoDevelop.VersionControl.Subversion.addin.xml" 
subtype="Code" buildaction="EmbedAsResource" />
+    <File name="gtk-gui/objects.xml" subtype="Code" 
buildaction="EmbedAsResource" />
+    <File name="gtk-gui/gui.stetic" subtype="Code" 
buildaction="EmbedAsResource" />
+    <File 
name="MonoDevelop.VersionControl.Subversion.Gui/ClientCertificateDialog.cs" 
subtype="Code" buildaction="Compile" />
+    <File 
name="MonoDevelop.VersionControl.Subversion.Gui/ClientCertificatePasswordDialog.cs"
 subtype="Code" buildaction="Compile" />
+    <File 
name="MonoDevelop.VersionControl.Subversion.Gui/SslServerTrustDialog.cs" 
subtype="Code" buildaction="Compile" />
+    <File 
name="MonoDevelop.VersionControl.Subversion.Gui/UserPasswordDialog.cs" 
subtype="Code" buildaction="Compile" />
+    <File 
name="gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.ClientCertificateDialog.cs"
 subtype="Code" buildaction="Compile" />
+    <File 
name="gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.ClientCertificatePasswordDialog.cs"
 subtype="Code" buildaction="Compile" />
+    <File 
name="gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.SslServerTrustDialog.cs"
 subtype="Code" buildaction="Compile" />
+    <File 
name="gtk-gui/MonoDevelop.VersionControl.Subversion.Gui.UserPasswordDialog.cs" 
subtype="Code" buildaction="Compile" />
+    <File name="MonoDevelop.VersionControl.Subversion/LibSvnClient.cs" 
subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="False" 
refto="MonoDevelop.Core" />
@@ -44,6 +44,7 @@
     <ProjectReference type="Gac" localcopy="True" refto="atk-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
     <ProjectReference type="Gac" localcopy="True" refto="gdk-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
     <ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, 
Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="System, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   </References>
   <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" 
RelativeMakefileName="./Makefile.am" BuildTargetName="" CleanTargetName="" 
SyncReferences="True" IsAutotoolsProject="True" 
RelativeConfigureInPath="../../../">
     <BuildFilesVar Sync="True" Name="FILES" />

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to