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
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)
- 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.
- 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.)
- 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
- 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
- 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
- In apr-1.3.3 and apr-util-1.3.4 build and install with:
make install
- In subversion-1.6.0 edit the Makefile to change line 109:
- LT_LDFLAGS =
+ LT_LDFLAGS = /boot/system/lib/libnetwork.so
- In subversion-1.6.0 build and install with:
- make install
- 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.

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