Opened 7 years ago

Closed 6 years ago

#56229 closed defect (fixed)

subversion @1.9.7_1 can be compiled with db48 on PPC Mac OS X 10.5.8, Leopard

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: danielluke (Daniel J. Luke)
Priority: Normal Milestone:
Component: ports Version: 2.4.2
Keywords: leopard Cc: blair (Blair Zajac)
Port: subversion

Description

Hello!

I want to get rid of Berkeley DB 4.6, to have only one version installed, and tried to compile apr-util and subversion with Berkeley DB 4.8. make libsvn_test check produces few failures:

LIBRARY_PATH='/opt/local/lib'
MACOSX_DEPLOYMENT_TARGET='10.5'
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_subversion/subversion/work/subversion-1.9.7" && /usr/bin/make libsvn_test check 
DEBUG: system:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_subversion/subversion/work/subversion-1.9.7" && /usr/bin/make libsvn_test check 
make: Nothing to be done for `libsvn_test'.
[001/112] auth-testsuccess
[002/112] bit-array-testsuccess
[003/112] cache-testsuccess
[004/112] changes-testsuccess
[005/112] checksum-testsuccess
[006/112] client-testsuccess
[007/112] compat-testsuccess
[008/112] config-testsuccess
[009/112] conflict-data-testsuccess
[010/112] crypto-testsuccess
[011/112] db-testsuccess
[012/112] diff-diff3-testsuccess
[013/112] dirent_uri-testsuccess
[014/112] dump-load-testsuccess
[015/112] entries-compat-testsuccess
[016/112] error-code-testsuccess
[017/112] error-testsuccess
[018/112] fs-base-testsuccess
[019/112] fs-fs-pack-testsuccess
[020/112] fs-fs-private-testsuccess
[021/112] fs-testsuccess
[022/112] fs-x-pack-testsuccess
[023/112] hashdump-testsuccess
[024/112] io-testsuccess
[025/112] locks-testsuccess
[026/112] mergeinfo-testsuccess
[027/112] mtcc-testsuccess
[028/112] op-depth-testFAILURE
[029/112] opt-testsuccess
[030/112] packed-data-testsuccess
[031/112] parse-diff-testsuccess
[032/112] path-testsuccess
[033/112] prefix-string-testsuccess
[034/112] priority-queue-testsuccess
[035/112] pristine-store-testsuccess
[036/112] ra-local-testsuccess
[037/112] ra-testFAILURE
[038/112] random-testsuccess
[039/112] repos-testsuccess
[040/112] revision-testsuccess
[041/112] root-pools-testsuccess
[042/112] skel-testsuccess
[043/112] spillbuf-testsuccess
[044/112] sqlite-testsuccess
[045/112] stream-testsuccess
[046/112] string-table-testsuccess
[047/112] string-testsuccess
[048/112] strings-reps-testsuccess
[049/112] subst_translate-testsuccess
[050/112] time-testsuccess
[051/112] translate-testsuccess
[052/112] utf-testsuccess
[053/112] wc-queries-testsuccess
[054/112] wc-testsuccess
[055/112] window-testsuccess
[056/112] x509-testsuccess
[057/112] authz_tests.pysuccess
[058/112] autoprop_tests.pysuccess
[059/112] basic_tests.pysuccess
[060/112] blame_tests.pysuccess
[061/112] cat_tests.pysuccess
[062/112] changelist_tests.pysuccess
[063/112] checkout_tests.pysuccess
[064/112] commit_tests.pysuccess
[065/112] copy_tests.pyFAILURE
[066/112] depth_tests.pysuccess
[067/112] diff_tests.pysuccess
[068/112] entries_tests.pysuccess
[069/112] export_tests.pysuccess
[070/112] externals_tests.pysuccess
[071/112] getopt_tests.pysuccess
[072/112] history_tests.pysuccess
[073/112] import_tests.pysuccess
[074/112] info_tests.pysuccess
[075/112] input_validation_tests.pysuccess
[076/112] iprop_authz_tests.pysuccess
[077/112] iprop_tests.pysuccess
[078/112] lock_tests.pysuccess
[079/112] log_tests.pysuccess
[080/112] merge_authz_tests.pysuccess
[081/112] merge_automatic_tests.pysuccess
[082/112] merge_reintegrate_tests.pysuccess
[083/112] merge_tests.pysuccess
[084/112] merge_tree_conflict_tests.pysuccess
[085/112] mergeinfo_tests.pysuccess
[086/112] mod_authz_svn_tests.pysuccess
[087/112] move_tests.pysuccess
[088/112] patch_tests.pysuccess
[089/112] prop_tests.pysuccess
[090/112] redirect_tests.pysuccess
[091/112] relocate_tests.pysuccess
[092/112] resolve_tests.pysuccess
[093/112] revert_tests.pysuccess
[094/112] schedule_tests.pysuccess
[095/112] special_tests.pysuccess
[096/112] stat_tests.pysuccess
[097/112] svnadmin_tests.pysuccess
[098/112] svnauthz_tests.pyFAILURE
[099/112] svndumpfilter_tests.pysuccess
[100/112] svnfsfs_tests.pysuccess
[101/112] svnlook_tests.pyFAILURE
[102/112] svnmucc_tests.pysuccess
[103/112] svnrdump_tests.pysuccess
[104/112] svnsync_authz_tests.pysuccess
[105/112] svnsync_tests.pysuccess
[106/112] svnversion_tests.pysuccess
[107/112] switch_tests.pyFAILURE
[108/112] trans_tests.pyFAILURE
[109/112] tree_conflict_tests.pysuccess
[110/112] update_tests.pysuccess
[111/112] upgrade_tests.pysuccess
[112/112] wc_tests.pysuccess
At least one test was SKIPPED, checking /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_subversion/subversion/work/subversion-1.9.7/tests.log
SKIP:  cache-test 2: basic memcache svn_cache test
SKIP:  cache-test 3: memcache svn_cache with very long keys
SKIP:  crypto-test 1: basic password encryption/decryption test
SKIP:  crypto-test 2: password checktext generation/validation
SKIP:  fs-x-pack-test 1: pack a FSX filesystem
SKIP:  fs-x-pack-test 2: pack FSX where revs % shard = 0
SKIP:  fs-x-pack-test 3: read from a packed FSX filesystem
SKIP:  fs-x-pack-test 4: commit to a packed FSX filesystem
SKIP:  fs-x-pack-test 5: get/set revprop while packing FSX filesystem
SKIP:  fs-x-pack-test 6: get/set large packed revprops in FSX
SKIP:  fs-x-pack-test 7: get/set huge packed revprops in FSX
SKIP:  fs-x-pack-test 8: recover a fully packed filesystem
SKIP:  fs-x-pack-test 9: test file hint at shard boundary
SKIP:  fs-x-pack-test 10: test svn_fs_info
SKIP:  fs-x-pack-test 11: test representations container
SKIP:  fs-x-pack-test 12: test packing with shard size = 1
SKIP:  pristine-store-test 3: reject_mismatching_text
SKIP:  authz_tests.py 1: authz issue #2486 - open root
SKIP:  authz_tests.py 2: authz issue #2486 - open directory
SKIP:  authz_tests.py 3: broken authz files cause errors
SKIP:  authz_tests.py 4: test authz for read operations
SKIP:  authz_tests.py 5: test authz for write operations
SKIP:  authz_tests.py 6: test authz for checkout
SKIP:  authz_tests.py 7: test authz for log and tracing path changes
SKIP:  authz_tests.py 8: test authz for checkout and update
SKIP:  authz_tests.py 9: test authz for export with unreadable subfolder
SKIP:  authz_tests.py 10: test authz for aliases
SKIP:  authz_tests.py 11: test the authz validation rules
SKIP:  authz_tests.py 12: test authz for locking
SKIP:  authz_tests.py 13: authz issue #2712
SKIP:  authz_tests.py 14: switched to directory, no read access on parents
SKIP:  authz_tests.py 15: authz issue #3242 - access required at repo root
SKIP:  authz_tests.py 16: more authz issue #3242 - update to renamed file
SKIP:  authz_tests.py 17: multiple lines matching a user
SKIP:  authz_tests.py 18: wc-to-wc-copy with absent nodes and then revert
SKIP:  authz_tests.py 19: recursive ls with private subtrees
SKIP:  authz_tests.py 20: authz issue #3781, check case sensitivity
SKIP:  authz_tests.py 21: authz should notice a tree conflict
SKIP:  authz_tests.py 22: wc delete with absent nodes
SKIP:  authz_tests.py 23: verify commit error reporting
SKIP:  authz_tests.py 24: upgrade absent nodes to server-excluded
SKIP:  authz_tests.py 25: remove a subdir with authz file
SKIP:  authz_tests.py 26: authz with configured global groups
SKIP:  authz_tests.py 27: delete file without rights on the root
SKIP:  authz_tests.py 28: log --diff on dontdothat
SKIP:  authz_tests.py 29: replace file external with authz node
SKIP:  authz_tests.py 30: log censors revprops for partially visible revs
SKIP:  authz_tests.py 31: remove a subdir with authz file
SKIP:  basic_tests.py 52: verify that neon/serf are compiled if tested
SKIP:  checkout_tests.py 14: checkout from the root of a Windows drive
SKIP:  iprop_authz_tests.py 1: property inheritance and read restricted parents
SKIP:  lock_tests.py 54: create generic DAV lock with timeout
SKIP:  lock_tests.py 57: refresh timeout of DAV lock
SKIP:  lock_tests.py 58: lock and delete a file called 'a %( ) .txt'
SKIP:  merge_authz_tests.py 1: skipped paths get overriding mergeinfo
SKIP:  merge_authz_tests.py 3: reintegrate fails if no root access
SKIP:  mod_authz_svn_tests.py 1: test anonymous access
SKIP:  mod_authz_svn_tests.py 2: test mixed anonymous and authenticated access
SKIP:  mod_authz_svn_tests.py 3: test mixed with noauthwhenanon directive
SKIP:  mod_authz_svn_tests.py 4: test authenticated only access
SKIP:  mod_authz_svn_tests.py 5: test authenticated only access with anonoff
SKIP:  mod_authz_svn_tests.py 6: test authenticated only access with lcuser
SKIP:  mod_authz_svn_tests.py 7: test authenticated only access via groups
SKIP:  mod_authz_svn_tests.py 8: test satisfy all require any config
SKIP:  mod_authz_svn_tests.py 9: test satisfy all require all config
SKIP:  redirect_tests.py 1: temporary redirect should error out
SKIP:  redirect_tests.py 2: redirected checkout
SKIP:  redirect_tests.py 3: redirected update
SKIP:  redirect_tests.py 4: redirected update of non-repos-root wc
SKIP:  redirect_tests.py 5: redirected externals
SKIP:  redirect_tests.py 6: redirected copy
SKIP:  redirect_tests.py 7: redirected commands
SKIP:  svnadmin_tests.py 9: 'svnadmin hotcopy' checking db/format file
SKIP:  svnsync_authz_tests.py 1: verify that unreadable content is not synced
SKIP:  svnsync_authz_tests.py 2: verify that copies from unreadable dirs work
SKIP:  svnsync_authz_tests.py 3: verify copies with mods from unreadable dirs
SKIP:  svnsync_authz_tests.py 4: verify copies with mods from unreadable dirs +copy
SKIP:  svnsync_authz_tests.py 6: verify if specifically denied paths dont sync
SKIP:  svnsync_authz_tests.py 7: copy, then rm at-src-unreadable child
SKIP:  update_tests.py 31: update wc on the root of a Windows (virtual) drive
SKIP:  update_tests.py 57: access denied paths should be skipped
SKIP:  update_tests.py 76: test filename with backslashes inside
SKIP:  wc_tests.py 11: missing .svn/wc.db and .svn/entries
At least one test XFAILED, checking /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_subversion/subversion/work/subversion-1.9.7/tests.log
XFAIL: dirent_uri-test 46: test match with RFC 6125 s. 6.4.3 Rule 3
XFAIL: fs-test 44: test reopen and modify txn
XFAIL: op-depth-test 42: mixed_rev_move
       [[needs different libsvn_wc entry point]]
XFAIL: op-depth-test 56: commit_moved_away_descendant
XFAIL: op-depth-test 68: move retract (issue 4336)
XFAIL: op-depth-test 75: move more than once, revert intermediate
XFAIL: op-depth-test 79: del4: delete AAA
XFAIL: op-depth-test 80: del4: add AAA
XFAIL: op-depth-test 81: del4: replace AAA
XFAIL: op-depth-test 83: del4: replace self AAA
XFAIL: op-depth-test 85: move4: delete AAA
XFAIL: op-depth-test 86: move4: add AAA
XFAIL: op-depth-test 87: move4: replace AAA
XFAIL: op-depth-test 89: move4: replace self AAA
XFAIL: op-depth-test 95: move within mixed move
XFAIL: basic_tests.py 63: peg rev resolution on non-existent wc paths
XFAIL: blame_tests.py 15: blame -g handles changes from empty mergeinfo
XFAIL: commit_tests.py 66: last changed of copied subdir
XFAIL: copy_tests.py 103: copy and move conflicts
XFAIL: diff_tests.py 77: diff repo to wc of a copy
XFAIL: export_tests.py 11: export working copy at base revision
XFAIL: externals_tests.py 49: file externals versioned obstruction
XFAIL: merge_automatic_tests.py 16: cherry2_fwd
XFAIL: merge_automatic_tests.py 17: cherry3_fwd
XFAIL: merge_tests.py 49: avoid repeated merges for cyclic merging
XFAIL: merge_tests.py 64: merge target with non inheritable mergeinfo
XFAIL: merge_tests.py 114: don't inherit bogus mergeinfo
XFAIL: merge_tests.py 115: don't inherit bogus working mergeinfo
XFAIL: patch_tests.py 46: patch file lacking trailing eol on context
XFAIL: patch_tests.py 52: hunks that overlap
XFAIL: revert_tests.py 25: revert a copy with depth=files
XFAIL: revert_tests.py 26: revert a nested add with depth=immediates
XFAIL: special_tests.py 24: cat added symlink
XFAIL: special_tests.py 27: multiline link file with svn:special
XFAIL: stat_tests.py 37: modified before translation, unmodified after
XFAIL: svnrdump_tests.py 51: load: mergeinfo that contains r0
XFAIL: switch_tests.py 9: switch a file to a dir and back to the file
XFAIL: trans_tests.py 10: able to handle inconsistent eols on add
XFAIL: trans_tests.py 11: able to handle inconsistent mime on add
XFAIL: wc_tests.py 1: file status through unversioned symlink
XFAIL: wc_tests.py 2: file status through versioned symlink
XFAIL: wc_tests.py 3: file status with not-parent symlink
XFAIL: wc_tests.py 4: add file through unversioned symlink
XFAIL: wc_tests.py 5: add file through versioned symlink
XFAIL: wc_tests.py 6: add file with not-parent symlink
At least one test XPASSED, checking /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_subversion/subversion/work/subversion-1.9.7/tests.log
XPASS: op-depth-test 23: test_case_rename on case (in)sensitive system
XPASS: copy_tests.py 102: case-only rename
At least one test FAILED, checking /opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_devel_subversion/subversion/work/subversion-1.9.7/tests.log
FAIL:  ra-test: Unknown test failure; see tests.log.
FAIL:  svnauthz_tests.py 3: test 'svnauthz validate --transaction'
FAIL:  svnauthz_tests.py 10: test 'svnauthz accessof --transaction'
FAIL:  svnlook_tests.py 12: test 'svnlook * -t'
FAIL:  switch_tests.py 38: switch and svn:keywords
FAIL:  trans_tests.py 1: commit new files with keywords active from birth
Summary of test results:
  2219 tests PASSED
  83 tests SKIPPED
  45 tests XFAILED (1 WORK-IN-PROGRESS)
  2 tests XPASSED
  6 tests FAILED
SUMMARY: Some tests failed.

Is this good enough for a regular release?

Attachments (7)

main.2.log (454.6 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Main.log from PPC Leopard wih db46
tests.2.log (286.8 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Complete log from 'make test' with db46
fails.2.log (16.9 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Failures from 'make test' with db46
main.3.log (501.7 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Main.log from PPC Leopard with db46
fails.log (16.9 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Failures from 'make test' with db48
tests.log (286.8 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Complete log from 'make test' with db48
main.log (499.6 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
Main.log from PPC Leopard with db48

Change History (16)

comment:1 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attaching files fails with IndexError: pop from empty list and GET: /attachment/ticket/56229/.

comment:2 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

apr-util @1.6.1 with db48 builds fine, even all tests succeed:

{{{if test ! -d "./data"; then cp -r ./data data; fi teststatus=0; \

progfailed=""; \ for prog in dbd testall; do \

if test "$prog" = 'dbd'; then \

for driver in none sqlite3; do \

if test "$driver" != 'none'; then \

DYLD_LIBRARY_PATH="echo "../crypto/.libs:../dbm/.libs:../dbd/.libs:../ldap/.libs:$DYLD_LIBRARY_PATH" | sed -e 's/::*$//'" \ ./$prog $driver; \ status=$?; \ if test $status != 0; then \

teststatus=$status; \ progfailed="$progfailed '$prog $driver'"; \

fi; \

fi; \

done; \

else \

DYLD_LIBRARY_PATH="echo "../crypto/.libs:../dbm/.libs:../dbd/.libs:../ldap/.libs:$DYLD_LIBRARY_PATH" | sed -e 's/::*$//'" \ ./$prog; \ status=$?; \ if test $status != 0; then \

teststatus=$status; \ progfailed="$progfailed $prog"; \

fi; \

fi; \

done; \ if test $teststatus != 0; then \

echo "Programs failed:$progfailed"; \

fi; \ exit $teststatus

Loaded sqlite3 driver OK. Opened sqlite3[] OK ======== create table ======== create table test successful

======== insert rows ======== insert rows test successful

======== invalid op ======== invalid op returned 1 (should be nonzero). Error msg follows 'no such table: apr_dbd_test1' valid op returned 0 (should be zero; error shouldn't affect subsequent ops) invalid op test successful

======== select random ======== ROW 5: wibble nothing 5 ROW 1: asdfgh bar 1 select random test successful

======== select sequential ======== ROW 1: asdfgh bar 1 ROW 2: bar foo (null) ROW 3: foo (null) (null) ROW 4: qwerty foo 0 ROW 5: wibble nothing 5 ROW 6: wibble other 5 select sequential test successful

======== transactions ======== Transaction 1 6 rows updated Valid insert returned 1. Should be nonzero (fail) because transaction is bad Transaction ended (should be rollback) - viewing table A column of "failed" indicates transaction failed (no rollback) ROW 1: asdfgh bar 1 ROW 2: bar foo (null) ROW 3: foo (null) (null) ROW 4: qwerty foo 0 ROW 5: wibble nothing 5 ROW 6: wibble other 5 Transaction 2 6 rows updated Valid insert returned 0. Should be zero (OK) Transaction ended (should be commit) - viewing table ROW 1: aaa zzz 3 ROW 2: asdfgh success 1 ROW 3: bar success (null) ROW 4: foo success (null) ROW 5: qwerty success 0 ROW 6: wibble success 5 ROW 7: wibble success 5 transactions test successful

======== prepared select ======== Selecting rows where col3 <= 3 and bar row where it's unset. Should show four rows. ROW 1: qwerty success 0 ROW 2: asdfgh success 1 ROW 3: bar success (null) ROW 4: aaa zzz 3 prepared select test successful

======== prepared query ======== Showing table (should now contain row "prepared insert 2") ROW 1: aaa zzz 3 ROW 2: asdfgh success 1 ROW 3: bar success (null) ROW 4: foo success (null) ROW 5: prepared insert 2 ROW 6: qwerty success 0 ROW 7: wibble success 5 ROW 8: wibble success 5 prepared query test successful

======== drop table ======== drop table test successful

teststrmatch : SUCCESS testuri : SUCCESS testuuid : SUCCESS testbuckets : SUCCESS testpass : SUCCESS testmd4 : SUCCESS testmd5 : SUCCESS testcrypto : SUCCESS testdbd : SUCCESS testdate : SUCCESS testmemcache : SUCCESS testredis : SUCCESS testxml : SUCCESS testxlate : SUCCESS testrmm : SUCCESS testdbm : SUCCESS testqueue : SUCCESS testreslist : SUCCESS testsiphash : SUCCESS All tests passed. }}}

Version 0, edited 7 years ago by ballapete (Peter "Pete" Dyballa) (next)

comment:3 in reply to:  1 Changed 7 years ago by raimue (Rainer Müller)

Replying to ballapete:

Attaching files fails with IndexError: pop from empty list and GET: /attachment/ticket/56229/.

We are investigating this and it looks like it is related to using Trac in a different language. See also Trac upstream. Please try changing the language to English as an immediate workaround in the user preferences.

comment:4 Changed 7 years ago by mf2k (Frank Schima)

Cc: blair added; dluke@… blair@… removed
Owner: set to danielluke
Status: newassigned

comment:5 Changed 7 years ago by danielluke (Daniel J. Luke)

The reason why subversion (and a bunch of other ports) are stuck on bdb4.6 is that was the last release before Oracle changed the license. Originally, Oracle's license for later bdb releases was pretty incompatible with normal use - I think they fixed that. Someone needs to verify that the licensing is OK for newer bdb (I was going to do it, but I guess I've never gotten around to it, and it has been quite a while). We should move to the latest bdb release that is supported by subversion (and the other ports) that has a license that is reasonable.

As far as test failures, we don't want to commit any update that generates more failures than existed before our change - and ideally nothing that generates any failures that we can't explain away as problems with the test (and if there are problems with the test, we should report upstream and maybe help fix them).

comment:6 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Alright!

comment:7 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

I compared he main.log files of 'make test' – no difference. The fails.log files from both 'make test' are exactly the same. The tests.log files from both 'make test' are a bi differen – he duration of the tests. There seems to be one more difference in sequence of DB operations, I would say subversions functions with db46 and db48 equally.

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.2.log added

Main.log from PPC Leopard wih db46

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: tests.2.log added

Complete log from 'make test' with db46

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: fails.2.log added

Failures from 'make test' with db46

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.3.log added

Main.log from PPC Leopard with db46

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: fails.log added

Failures from 'make test' with db48

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: tests.log added

Complete log from 'make test' with db48

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Main.log from PPC Leopard with db48

comment:8 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

main.2.log is wrong, main.3.log is the build log from port test subversion with db46.

comment:9 Changed 6 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: assignedclosed

Updated to bdb48 in PR 3124

Note: See TracTickets for help on using tickets.