Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Alien-SVN CPAN distribution.

Report information
The Basics
Id: 29971
Status: resolved
Priority: 0/
Queue: Alien-SVN

People
Owner: Nobody in particular
Requestors: karman [...] cpan.org
mschwern [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: (no value)
Fixed in: (no value)



Subject: more dependencies
This is a nice idea for a module. SVN::Core is not available through many rpms, while svn is often installed that way. However. To truly be self-contained, on my SuSE (SLED 10.1) install attempt anyway, apr, apr-util and swig are all required to be installed or available. swig needs to be installed. apr and apr-util can be in the subversion src dir, but then autogen.sh is required to be run in order to update all the autoconf stuff. I got as far as getting those dependencies installed. However 'Build install' still failed because it appears that the libaprutil and libapr paths were not compiled in with the LD_RUN_PATH magic. I'm still going to try and muddle through that, because I'd like to get SVN::Core installed, but thought as you appear to be actively developing this project, you'd like some immediate feedback.
Subject: Re: [rt.cpan.org #29624] more dependencies
Date: Wed, 26 Sep 2007 14:55:27 -0700
To: bug-Alien-SVN [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
Peter Karman via RT wrote: Show quoted text
> This is a nice idea for a module. SVN::Core is not available through > many rpms, while svn is often installed that way. > > However. > > To truly be self-contained, on my SuSE (SLED 10.1) install attempt > anyway, apr, apr-util and swig are all required to be installed or > available. swig needs to be installed. apr and apr-util can be in the > subversion src dir, but then autogen.sh is required to be run in order > to update all the autoconf stuff. > > I got as far as getting those dependencies installed. However 'Build > install' still failed because it appears that the libaprutil and libapr > paths were not compiled in with the LD_RUN_PATH magic. I'm still going > to try and muddle through that, because I'd like to get SVN::Core > installed, but thought as you appear to be actively developing this > project, you'd like some immediate feedback.
Thanks for the feedback. Yes, I'm actively working on this. How best to deal with the apr and swig dependencies are something I haven't yet worked out. Swig at least has a good chance of already being installed, but APR is nearly as big a roadblock as SVN::Core itself. If you have a way to bundle apr and apr-util I'd love to hear it, even if it doesn't quite work. -- There will be snacks.
Subject: Re: [rt.cpan.org #29624] more dependencies
Date: Wed, 26 Sep 2007 23:44:52 -0500
To: bug-Alien-SVN [...] rt.cpan.org
From: Peter Karman <peter [...] peknet.com>
Michael G Schwern via RT wrote on 9/26/07 4:58 PM: Show quoted text
> Yes, I'm actively working on this. How best to deal with the apr and swig > dependencies are something I haven't yet worked out. Swig at least has a good > chance of already being installed, but APR is nearly as big a roadblock as > SVN::Core itself. If you have a way to bundle apr and apr-util I'd love to > hear it, even if it doesn't quite work. > >
What I ended up doing was just installing apr and apr-util manually, and then, having finally wrestled the correct syntax from the Module::Build pod for how to install in a non-standard location, Alien::SVN built and installed ok. After chewing on this for awhile, I'm not sure that I would want to depend on the Alien::SVN approach for production rollouts, namely because by compiling against an included copy of the svn libs, there's always a good chance that the resulting SVN::* modules are using a different version of the libs than the svn binaries are. Which would eventually bite me in the ass. It's too bad that vendors don't just build rpms for all the swig bindings by default. Maybe there are too many gotchas with swig versions, etc. I'm actually leaning heavily at this point toward writing a SVN::Class package that subclasses Path::Class and implements the basic CRUD-like methods using IPC::Cmd and the 'svn' binary. It's not as "clean" as using the swig bindings, but will be more portable since it'll depend on the same svn command that normal interactive use would. Sort of the ol' "PurePerl vs XS" issue. And since it's a different API than the SVN::Core stuff has (which mirrors the svn C API so closely), SVN::Class could let you do: $file->commit('my message'); which appeals to my database-oriented aesthetic. In any case, that's way off topic for this RT ticket. :) -- Peter Karman . http://peknet.com/ . peter@peknet.com
Subject: Re: [rt.cpan.org #29624] more dependencies
Date: Thu, 27 Sep 2007 04:57:48 -0700
To: bug-Alien-SVN [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
peter@peknet.com via RT wrote: Show quoted text
> What I ended up doing was just installing apr and apr-util manually, and then, > having finally wrestled the correct syntax from the Module::Build pod for how to > install in a non-standard location, Alien::SVN built and installed ok.
Do you mean above and beyond just the normal Module::Build options or was Alien::SVN involved? Right now it's doing some guessing to translate between Module::Build's install options and configure's and perhaps that went wrong. I'm considering allowing the user to tweak the configure arguments. What was the non-standard location and why did you put it there? I ask because right now it installs the svn shared libraries into $install_base/lib. It could instead install them into the Perl architecture-specific library directory under $install_base just like an XS module. This would keep the SVN::Core installed shared libraries totally separate from any other svn libraries. Show quoted text
> After chewing on this for awhile, I'm not sure that I would want to depend on > the Alien::SVN approach for production rollouts, namely because by compiling > against an included copy of the svn libs, there's always a good chance that the > resulting SVN::* modules are using a different version of the libs than the svn > binaries are. Which would eventually bite me in the ass.
No, SVN is very good about maintaining cross-version compatibility. Show quoted text
> It's too bad that vendors don't just build rpms for all the swig bindings by > default. Maybe there are too many gotchas with swig versions, etc.
Most Linux vendors do. Most have swig and apr and apr-util and libsvn and libsvn-perl and even svk as packages. Of which vendors do you speak? Show quoted text
> I'm actually leaning heavily at this point toward writing a SVN::Class package > that subclasses Path::Class and implements the basic CRUD-like methods using > IPC::Cmd and the 'svn' binary. It's not as "clean" as using the swig bindings, > but will be more portable since it'll depend on the same svn command that normal > interactive use would. Sort of the ol' "PurePerl vs XS" issue. > > And since it's a different API than the SVN::Core stuff has (which mirrors the > svn C API so closely), SVN::Class could let you do: > > $file->commit('my message'); > > which appeals to my database-oriented aesthetic. > > In any case, that's way off topic for this RT ticket. :)
FWIW my purpose for SVN::Core is to make SVK easier to install. -- Hating the web since 1994.
Subject: Re: [rt.cpan.org #29624] more dependencies
Date: Thu, 27 Sep 2007 08:11:32 -0500
To: bug-Alien-SVN [...] rt.cpan.org
From: Peter Karman <peter [...] peknet.com>
On 09/27/2007 06:59 AM, Michael G Schwern via RT wrote: Show quoted text
> <URL: http://rt.cpan.org/Ticket/Display.html?id=29624 > > > peter@peknet.com via RT wrote:
>> What I ended up doing was just installing apr and apr-util manually, and then, >> having finally wrestled the correct syntax from the Module::Build pod for how to >> install in a non-standard location, Alien::SVN built and installed ok.
> > Do you mean above and beyond just the normal Module::Build options or was > Alien::SVN involved? Right now it's doing some guessing to translate between > Module::Build's install options and configure's and perhaps that went wrong. > I'm considering allowing the user to tweak the configure arguments. >
I don't think Alien::SVN was involved. What I had a hard time understanding, till I found Module::Build::Cookbook, was where/when I needed to add the --install_base option to my command. Turned out it was at the initial 'perl Build.PL' in order for it to be passed on to configure. (At least, that's what I remember from yesterday, and perhaps that's the "guessing" you were referring to.) Show quoted text
> What was the non-standard location and why did you put it there? I ask > because right now it installs the svn shared libraries into $install_base/lib. > It could instead install them into the Perl architecture-specific library > directory under $install_base just like an XS module. This would keep the > SVN::Core installed shared libraries totally separate from any other svn > libraries. >
I didn't have sudo/root on this machine, so I was trying to install stuff into ~/perl. Once I got the sytnax right, it did indeed put the svn libs into $install_base/lib. But I think I would prefer them into the Perl arch libs, as you say, in order to keep them separate. Then it would be obvious later what the svn libs were doing in the perl tree. In my case, they ended up in ~/perl/lib, which wasn't exactly where I would have expected them. Show quoted text
>
>> After chewing on this for awhile, I'm not sure that I would want to depend on >> the Alien::SVN approach for production rollouts, namely because by compiling >> against an included copy of the svn libs, there's always a good chance that the >> resulting SVN::* modules are using a different version of the libs than the svn >> binaries are. Which would eventually bite me in the ass.
> > No, SVN is very good about maintaining cross-version compatibility. >
Well, I've been bitten half-a-dozen times in the last month by the case where I have existing checked out files with svn 1.4.x but then try and manage them on a machine with 1.3.x and no 1.4.x binaries available. svn 1.3.x refuses to work with 1.4.x .svn layout. This happened when I had a shared file system where I co'd on one box and tried to commit on another. I had to re-checkout using 1.3, and then manually diff the 2 working areas and merge my local changes. Not the end of the world, but inconvenient at the times it happened because I was under deadline. Show quoted text
>
>> It's too bad that vendors don't just build rpms for all the swig bindings by >> default. Maybe there are too many gotchas with swig versions, etc.
> > Most Linux vendors do. Most have swig and apr and apr-util and libsvn and > libsvn-perl and even svk as packages. > > Of which vendors do you speak? >
In my case it was SLED 10.1. It could just be that this particular box had an insufficient yum set-up w.r.t. which repositories it was searching. But I found subversion bindings for python only. I did find apr and apr-util, but as I didn't have sudo.... Well, you get the picture. root has its privileges. :) Show quoted text
>
>> I'm actually leaning heavily at this point toward writing a SVN::Class package >> that subclasses Path::Class and implements the basic CRUD-like methods using >> IPC::Cmd and the 'svn' binary. It's not as "clean" as using the swig bindings, >> but will be more portable since it'll depend on the same svn command that normal >> interactive use would. Sort of the ol' "PurePerl vs XS" issue. >> >> And since it's a different API than the SVN::Core stuff has (which mirrors the >> svn C API so closely), SVN::Class could let you do: >> >> $file->commit('my message'); >> >> which appeals to my database-oriented aesthetic. >> >> In any case, that's way off topic for this RT ticket. :)
> > FWIW my purpose for SVN::Core is to make SVK easier to install. >
Sure. Makes total sense. Hope my comments are more help than distraction. cheers, pek -- Peter Karman . peter@peknet.com . http://peknet.com/
Subject: Re: [rt.cpan.org #29624] more dependencies
Date: Thu, 27 Sep 2007 16:16:26 -0700
To: bug-Alien-SVN [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
peter@peknet.com via RT wrote: Show quoted text
> I don't think Alien::SVN was involved. What I had a hard time understanding, > till I found Module::Build::Cookbook, was where/when I needed to add the > --install_base option to my command. Turned out it was at the initial 'perl > Build.PL' in order for it to be passed on to configure. (At least, that's what > I remember from yesterday, and perhaps that's the "guessing" you were referring > to.)
Ok, just standard Module::Build foo then. Show quoted text
>> What was the non-standard location and why did you put it there? I ask >> because right now it installs the svn shared libraries into $install_base/lib. >> It could instead install them into the Perl architecture-specific library >> directory under $install_base just like an XS module. This would keep the >> SVN::Core installed shared libraries totally separate from any other svn >> libraries.
> > I didn't have sudo/root on this machine, so I was trying to install stuff into > ~/perl. Once I got the sytnax right, it did indeed put the svn libs into > $install_base/lib. But I think I would prefer them into the Perl arch libs, as > you say, in order to keep them separate. Then it would be obvious later what > the svn libs were doing in the perl tree. In my case, they ended up in > ~/perl/lib, which wasn't exactly where I would have expected them.
"Works as expected". Module::Build is being smarter than you. It puts Perl modules into $install_base/lib/perl5 which is specifically designed for places like /usr or ~. Programs and man pages go in the usual places ($install_base/bin and $install_base/man). This means you don't need to isolate your perl stuff in ~/perl. Alien::SVN sends --prefix=$install_base to Subversion's ./configure which is why the libraries wound up in ~/perl/lib. Just use --install_base=~ and it'll all work out. Show quoted text
>>> After chewing on this for awhile, I'm not sure that I would want to depend on >>> the Alien::SVN approach for production rollouts, namely because by compiling >>> against an included copy of the svn libs, there's always a good chance that the >>> resulting SVN::* modules are using a different version of the libs than the svn >>> binaries are. Which would eventually bite me in the ass.
>> No, SVN is very good about maintaining cross-version compatibility.
> > Well, I've been bitten half-a-dozen times in the last month by the case where I > have existing checked out files with svn 1.4.x but then try and manage them on > a machine with 1.3.x and no 1.4.x binaries available. svn 1.3.x refuses to work > with 1.4.x .svn layout. This happened when I had a shared file system where I > co'd on one box and tried to commit on another. I had to re-checkout using 1.3, > and then manually diff the 2 working areas and merge my local changes. Not the > end of the world, but inconvenient at the times it happened because I was under > deadline.
Ahh, cross version checkouts with downgrades. Never had to deal with that myself. Anyhow, I'm convinced the libraries should go into the Perl arch lib directory. Yes, your feedback is quite useful. Keep it coming. -- The interface should be as clean as newly fallen snow and its behavior as explicit as Japanese eel porn.
Subject: Figure out apr and apr-util dependencies
Most users don't have apr or apr-util either. So it would be nice if Alien::SVN took care of that, too. Maybe in another Alien package.
I've amalgamated this discussion into https://github.com/schwern/alien-svn/issues/5
should this issue be moved to GitHub, marked as stalled or what?
On Tue Nov 21 11:27:12 2017, SHLOMIF wrote: Show quoted text
> should this issue be moved to GitHub, marked as stalled or what?
I am a decade removed from this, so fine with me to close since it sounds like it was aggregated already on github.
On Tue Nov 21 11:58:33 2017, KARMAN wrote: Show quoted text
> On Tue Nov 21 11:27:12 2017, SHLOMIF wrote:
> > should this issue be moved to GitHub, marked as stalled or what?
> > I am a decade removed from this, so fine with me to close since it > sounds like it was aggregated already on github.
closing then.