Subversion 1.4.6 Universal OS X Binaries Available

New Subversion 1.4.6 Universal binaries for Mac OS X are now available for download from openCollabNet.  Compared to my 1.4.4 release, there are some changes based on feedback from users worth mentioning:

Project Packaging

The package of the binary has changed. The 1.4.4 release installed everything in /usr/local which made the package difficult to uninstall. The 1.4.6+ package installs Subversion into /opt/subversion for easy management and coexistence with other installations. The 1.4.4 packaging also included unnecessary files like header files. While my intentions were good, the delivery wasn’t and I removed all developer-centric files from the binary. The reason for this is two fold: It makes life easier for Subversion developers and it makes the package smaller. These changes do not impact the functionality of the binary.

Previous Package Backups

When packaging a binary, many things come into play when it comes to installation.  Do I overwrite existing artifacts with my own?  Do I remove previous artifacts? Etc. The 1.4.6+ installer installs Subversion in a non-destructive fashion. The idea is to make the existing environment ideal for installation while allowing for easy rollback of the installation.  That said, the 1.4.6+ installer “backs up” any existing Subversion installations found in /usr/local and /opt/subversion to a documented location allowing for an easy way to keep old installations around for whatever the reason may be.

Other than these two items, the binary delivers the same great taste as before.  For those of you that didn’t install the previous package, here is a short summary of all features of this installer:

  • Installation is a fully-featured Subversion 1.4.6 installation
  • Installation is Universal so you can run on any OSX-supported architecture (Intel and PPC)
  • Installation includes both repository data stores (Berkeley DB and FSFS)
  • Installation includes all repository network access layers (DAV and SVN)
  • Installation includes all language bindings maintained by the Subversion project (Java, Perl, Python and Ruby)
  • Installation includes Apache server modules (2.2.x)

As with previous releases of this binary, the svnbinaries project on openCollabNet is the place for feedback, bugs and questions.

Special thanks go to pr3d4t0r for helping with testing and pakacging on an Intel-Mac.

P.S. – There are many of you requesting Subversion 1.5.0 beta builds for OSX.  Now that I have the 1.4.6 binary out of the way, I will work on getting 1.5.0 beta binaries out within the next week or so.

Tagged with: , , , ,
Posted in Subversion
18 comments on “Subversion 1.4.6 Universal OS X Binaries Available
  1. Shrop says:

    Thanks for doing this. It is a a huge help for Mac users. I really appreciate your time.
    Mark Shropshire

  2. Mark,
    Glad to hear. It’s feedback like this that makes all of the work required to deliver the binary much easier to deal with.
    Take care,
    Jeremy

  3. Shrop says:

    Jeremy,
    I am getting an error at the very end of the install. See the screenshot at http://www.flickr.com/photos/13725625@N08/2262064391/
    Also, It doesn’t look like the installer backed up my old install in usr/local. Let me know if you think it is cool to just delete the old 1.4.4 install files.
    Thanks for putting the new install in /opt. That is what I do for all of my custom builds in OSX. Keeps Apple from stepping on my files.
    Thanks!
    Mark

  4. Mark,
    postflight just creates symlinks in /usr/local/bin to the executables in /opt/subversion/bin. postflight also creates a synlink in /Library/Java/Extensions to install the Java bindings. Do you mind running doing the following to help me diagnose this:
    Mount the dmg.
    Run the postflight in /Volumes/Subversion 1.4.6 Universal/Contents/Resources
    Post the output into the svnbinaries forum: http://svnbinaries.open.collab.net/servlets/ForumMessageList?forumID=65.
    Take care,
    Jeremy

  5. Mark,
    I figured this out with some help from our users. Basically, my preflight script attempts to use a date string that apparently is invalid before 10:00 am. This causes the files in /usr/local/bin to still be present when postflight runs. Since postflight cannot convert the executables in /usr/local/bin to symlinks, postflight fails. I’m repackaging the binary now with a modified date string for use in preflight. That should resolve your problem. I’ll announce here when the binary is available.
    Take care,
    Jeremy

  6. Gavin Eadie says:

    I’ve emailed Jeremy. There’s an error in the preflight which puts a space character into the name of the backup directory. If the backup fails, the later creation of symlinks may also fail, because a symlink won’t replace an existing file.
    Jeremy will post an installer with a fixed preflight. If there’s other errors, I’ll find them tonight when I’m next in ‘developer time’ and not ‘domestic time’ .. Gavin

  7. Gavin Eadie says:

    PS: That space character only appears between midnight and 10:00am.
    It’s the first digit of a two digit hour, so you get ” 9″ instead of “09”

  8. Gavin,
    Thanks for helping me find this so quickly. I was parsing through the date man pages and used the first thing I saw. I usually am more thorough but I was up late finishing it and I guess my fatigue got the best of me.
    Take care,
    Jeremy

  9. Hi All,
    Thanks to Gavin, I have been able to quickly fix the issue where preflight fails and might cause postflight to fail. I have uploaded my binary and you should be able to download the new version. (The new version’s name should be ‘Subversion 1.4.6 Universal-1.dmg’.)
    Take care,
    Jeremy

  10. Shrop says:

    Wow.. that was fast Jeremy. I have been busy today and had it in my GTD list to check back. Thanks to you and others for fixing the issue.
    Thanks!
    Mark

  11. Giannis says:

    Hi Jeremy,
    Many thanks for making 1.4.6 quickly available!
    The dav_svn_module that comes with the 1.4.6 installer makes apache return the error below.
    Could it be that httpd being a 64-bit app needs a 64-bit module in the Universal Binary?
    I am running 10.5.2 on a 2008 MacPro
    Many thanks again,
    Giannis
    PS: I had a working instance of 1.4.4 and apache before.
    FROM THE CONSOLE MESSAGES:
    19/03/2008 22:36:57 org.apache.httpd[12091] httpd:
    Syntax error on line 119 of /private/etc/apache2/httpd.conf:
    Cannot load /usr/libexec/apache2/mod_dav_svn.so into server: dlopen(/usr/libexec/apache2/mod_dav_svn.so, 10):
    no suitable image found.
    Did find:nt/usr/libexec/apache2/mod_dav_svn.so:
    no matching architecture in universal wrapper

  12. Giannis,
    Thanks for the feedback. This is probably an oversight on my part. I have never built in 64-bit support into the universal binary and I guess now is the time to do so. 🙂 I’ll start working on a new release adding 64-bit support.
    Take care,
    Jeremy

  13. Abdul-Gafoor says:

    Hello Jeremy,
    Do you anticipate the 64 bit support being built into Subversion 1.5?
    I was specifically interested in Redhat Enterprise linux 64 bit support for subversion.
    Thanks!

  14. The plan is to add 64-bit support to the OSX binaries with the next release. I’ve dropped the ball on the 1.5 release candidate builds due to time constraints but I should get something out shortly. If I come across more time within the next few days, I might release a 1.4.6 updated binary with 64-bit. Keep an eye out for an announcement.

  15. Hi All,
    There is a new binary for Subversion 1.4.6 on OSX. It is a 4-way universal binary supporting Tiger, Leopard and all combinations of the two. (PPC and x86 supporting both 32-bit and 64-bit instruction sets.) This fixes the problem with the previous release where 64-bit Leopard version’s of Apache were not loading the Subversion Apache modules. To download, just go to the previous download page and make sure the file you download is named “Subversion 1.4.6 Universal-2.dmg”. (If you attempt to download this and you are directed toward “Subversion 1.4.6 Universal-1.dmg”, it just means you need to wait a little longer while we update the site. Thank you for your patience.
    Take care,
    Jeremy

  16. Stephen R says:

    Hi —
    I had previously installed SVN 1.4.4, and not I would like to just plain remove it before installing the latest (1.5.2).
    Could you please give me a list of what was installed by 1.4.4? What files I specifically have to remove?
    As it is, I ran the 1.5.2 installer, but in Terminal I’m still getting 1.4.4….
    I’m basically just learning SVN. I have no direct need for the older version, and truthfully having both can only just confuse me… :p
    Thanks for these packages. 🙂

  17. This is a very common “issue” on Leopard systems, which I will assume you’re on. Basically, when you install any binary of mine, I will never overwrite or uninstall any Subversion binary from Apple or not maintained by me. That being said, you have both 1.4.4 and 1.5.2 installed. To make the newer 1.5.2 installation be used instead of the Leopard default of 1.4.4, you have to update your PATH environment variable. This is documented in the Installer’s README, and presented to you in the installation process. Just in case you didn’t see it, add the following to either /etc/profile (System wide) or ~/.profile:
    export PATH=/opt/subversion/bin:$PATH
    That should put the 1.5.2 binary before the system default in the PATH, thus making 1.5.2 the default. I hope this helps.
    Take care,
    Jeremy

  18. Adding that to ~/.profile didn’t work for me. I had to instead add this line to ~/.tcshrc
    setenv PATH /opt/subversion/bin:$PATH
    Not sure why the other didn’t work, but it’s going now. Thanks for the help. (And sorry I didn’t catch the readme!) 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

*