HaikuPorts
  • Login
  • Preferences
  • Help/Guide
  • Wiki
  • Timeline
  • Roadmap
  • View Tickets
  • Search
  • Port Log
  • Blog

Context Navigation

  • ← Previous Ticket
  • Next Ticket →

Ticket #14 (closed task: fixed)

Opened 8 years ago

Last modified 6 years ago

[subversion] add

Reported by: brecht Owned by: haiqu
Priority: high Milestone: Haiku Alpha 1
Component: dev-vcs/subversion Version:
Severity: normal Keywords:
Cc: haiqu@…

Description

Port the current version of subversion

Change History

comment:1 Changed 7 years ago by andreasf

  • Milestone changed from BePorts M1 to Haiku self-hosting
  • Owner set to andreasf
  • Priority changed from normal to highest
  • Status changed from new to assigned

Subversion 1.4.x SVN branch appears to work. Not all test suites could be run, neon's hangs.

comment:2 Changed 7 years ago by bonefish

  • Owner changed from andreasf to bonefish
  • Status changed from assigned to new

comment:3 Changed 7 years ago by bonefish

  • Status changed from new to assigned

comment:4 Changed 7 years ago by scottmc

  • Component changed from BePorts/dev-util to dev-util/subversion
  • Milestone changed from Haiku self-hosting to Haiku Alpha 1
  • Priority changed from highest to high

comment:5 Changed 6 years ago by haiqu

  • Cc haiqu@… added

BUILD INSTRUCTIONS FOR SVN-1.6.0 (reposted from the Haiku-Development list)

  1. Download and unpack apr-1.3.3, apr-util-1.3.4 and svn-1.6.0 into a working directory. The build can optionally include the neon package but unless you want to use DAV it isn't worth the effort, and personally I couldn't get it to build easily, so it is ignored from here on out.
  1. Under subversion-1.6.0 directory, create a new subdirectory called sqlite-amalgamation and into that insert sqlite3.c from this package. (NOTE: This refers to an update package I created, containing config.sub, config.guess and sqlite3.c - the package is >256Kb so I can't upload it here. Request this by email.)
  1. Into the following directories, insert the latest copies of config.guess and config.sub from GNU:
  • apr-1.3.3/build
  • apr-util-1.3.4/build
  • apr-util-1.3.4/xml/expat/conftools
  • subversion-1.6.0/build
  1. The native gcc2 compiler isn't looking in /boot/system/lib so ensure that links exist from /boot/system/lib to /boot/develop/lib/x86 for the following files:
  • libbe.so
  • libroot.so
  • lz.so
  1. In each of apr-1.3.3, apr-util-1.3.4 and subversion-1.6.0 directories, run the following configure command:
  • CFLAGS="-O2" CXXFLAGS="-O2" ./configure --prefix=/boot/common --disable-nls --enable-shared=yes
  1. In apr-1.3.3 and apr-util-1.3.4 build and install with:

make install

  1. In subversion-1.6.0 edit the Makefile to change line 109:
  • LT_LDFLAGS =

+ LT_LDFLAGS = /boot/system/lib/libnetwork.so

  1. In subversion-1.6.0 build and install with:
  • make install
  1. Delete ~/config/bin/svn*

Any problems? Email me: Rob Judd <haiqu@…>

Further notes: Running the tests reveals failures in the following:

Running all tests in utf-test [28/67]...FAILURE
Running all tests in window-test [29/67]...success
Running all tests in getopt_tests.py [30/67]...success
Running all tests in basic_tests.py [31/67]...success
Running all tests in checkout_tests.py [32/67]...success
Running all tests in commit_tests.py [33/67]...FAILURE
Running all tests in update_tests.py [34/67]...FAILURE

and as yet I haven't completed the test run. Running tests requires Python2.4 from BeBits?.

comment:6 Changed 6 years ago by haiqu

  • Owner changed from bonefish to haiqu
  • Status changed from assigned to new

Reason for failures in tests has been located, and was caused by the Python test scripts calling /usr/bin/env for environmental data. Since thgis directory does not exist in Haiku, the tests failed. Workaround was to create a symlink from /boot/system/bin -> /usr/bin and I have requested this to be added to the build until multi-user capability is completed.

Final results for the tests:

svn_tests: commit conflicted at '/A/D/H', but no conflict expected
XFAIL: fs-test 18: merging commit

svn_tests: Path '/A/D/G2/blooga' doesn't exist in HEAD revision
XFAIL: locks-test 9: able to reserve a name (lock non-existent path)

svn_tests: Path '/A/D/G2/blooga' doesn't exist in HEAD revision
XFAIL: locks-test 9: able to reserve a name (lock non-existent path)
svn_tests: Path '/Program Files/Tigris.org/Subversion' doesn't exist in HEAD revision
XFAIL: locks-test 10: directory locks (kinda)

svn_tests: Error in broken tree conflict data was not detected:
  Foo.c:file:update:deleted:edited::::::::|
XFAIL: tree-conflict-data-test 3: detect broken tree conflict data

svn_tests: Safe data 'Edelwei' was followed by non-ASCII byte 223: unable to convert to/from UTF-8
FAIL:  utf-test 3: test svn_utf_cstring_to_utf8_ex2
svn_tests: Safe data 'Edelwei' was followed by non-ASCII byte 195: unable to convert to/from UTF-8
FAIL:  utf-test 4: test svn_utf_cstring_from_utf8_ex2

Failure
XFAIL: basic_tests.py 38: remotely remove directories from two repositories

SVNTreeUnequal
XFAIL: update_tests.py 50: tree conflicts 2.3: skip on 2nd update

Failure
XFAIL: switch_tests.py 10: switch a file to a dir and back to the file

SVNUnmatchedError
FAIL:  prop_tests.py 22: test prop* handle invalid property names

Failure
XFAIL: log_tests.py 21: test log -c on range of changes

Failure
XFAIL: diff_tests.py 28: diff a renamed directory

Failure
XFAIL: diff_tests.py 50: diff -r1 of removed file to its local addition

Failure
XFAIL: merge_tests.py 33: merge a replacement of a directory

Failure
XFAIL: merge_tests.py 34: replace both dir and one of its children

SVNTreeUnequal
XFAIL: merge_tests.py 55: avoid repeated merges for cyclic merging

SVNTreeUnequal
XFAIL: merge_tests.py 72: merge target with non inheritable mergeinfo

SVNTreeUnequal
XFAIL: merge_tests.py 91: merge added subtree

SVNTreeUnequal
XFAIL: merge_tests.py 115: tree conflicts 5.1: leaf edit, tree del

SVNTreeUnequal
XFAIL: merge_tests.py 116: tree conflicts 5.2: leaf del, tree del

SVNTreeUnequal
XFAIL: merge_tests.py 120: tree conflicts 5.1: leaf edit (no ci), tree del

SVNTreeUnequal
XFAIL: merge_tests.py 121: tree conflicts 5.2: leaf del (no ci), tree del

SVNTreeUnequal
XFAIL: merge_tests.py 125: merge prior to rename src existence still dels src

SVNLineUnequal
XFAIL: revert_tests.py 4: revert a moved file

Exception: Unexpected 'svn mergeinfo' output:
  expected but not found: 2
  found but not expected: 
XFAIL: mergeinfo_tests.py 4: 'mergeinfo' with uninteresting source selection

SVNLineUnequal
XFAIL: special_tests.py 10: diff a symlink to a directory

SVNLineUnequal: Expected key 'Repository UUID' (with value '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}') not found
XFAIL: info_tests.py 2: info on added file

So what does it all mean? Well, an XFAIL is a subtest fail that isn't a "deal breaker" for that test, and the overall test actually passes.

The only results we have that are a solid FAILURE are in tests 28 (utf test) and 36 (prop test). IN BOTH CASES THIS RELATES TO A KNOWN BUG EXISTING IN SVN-1.4.6 in that conversion to/from utf8 fails.

So, I'm declaring this a usable package. Running it for the last week to download source updates for Haiku and have had no problems. It is also significantly faster on my system than svn-1.4.6

comment:7 Changed 6 years ago by haiqu

  • Resolution set to fixed
  • Status changed from new to closed

comment:8 Changed 6 years ago by scottmc

  • Resolution fixed deleted
  • Status changed from closed to reopened

Without using the autotools and without patching apr I doubt that you have a truly native build apr. Also when building apr-util to need to run the autotools on expat as well. Subversion itself may be ok, I haven't checked it over yet. Reopening this ticket until your build can be independently verified.

comment:9 Changed 6 years ago by scottmc

I have now managed to build subversion with apr-1.3.3, apr-util-1.3.4, sqlite-3.6.14, libiconv-1.12, python-2.5.4, neon-0.28.4, libxml2-2.7.3 and gettext-0.17 installed.
Need to run the tests and post a portlog.
Not sure that sqlite3 was even used, so need to investigate that, or retry building with berkley db installed instead.
Here's my configure line so far:
~/subversion-1.6.1> ./configure --prefix=/boot/common --with-apr=/big --with-apr-util=/boot/common/bin/apu-1-config --with-neon=/boot/common --with-editor=lpe --with-zlib=/boot/common

comment:10 Changed 6 years ago by scottmc

  • Resolution set to fixed
  • Status changed from reopened to closed

portlog updated, closing this ticket but opening ticket(s) to cover test failures.

Note: See TracTickets for help on using tickets.

Download in other formats:

  • Comma-delimited Text
  • Tab-delimited Text
  • RSS Feed

Trac Powered

Powered by Trac 0.13dev-r10686
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/