Modified: 
subversion/branches/revprop-packing/subversion/tests/cmdline/merge_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/revprop-packing/subversion/tests/cmdline/merge_tests.py?rev=1148773&r1=1148772&r2=1148773&view=diff
==============================================================================
--- subversion/branches/revprop-packing/subversion/tests/cmdline/merge_tests.py 
(original)
+++ subversion/branches/revprop-packing/subversion/tests/cmdline/merge_tests.py 
Wed Jul 20 13:52:06 2011
@@ -12023,7 +12023,7 @@ def subtree_source_missing_in_requested_
   sbox.build()
   wc_dir = sbox.wc_dir
 
-  # Make a branche to merge to.
+  # Make a branch to merge to.
   wc_disk, wc_status = set_up_branch(sbox, False, 1)
 
   # Some paths we'll care about.
@@ -12033,16 +12033,14 @@ def subtree_source_missing_in_requested_
   psi_COPY_path   = os.path.join(wc_dir, "A_COPY", "D", "H", "psi")
   omega_COPY_path = os.path.join(wc_dir, "A_COPY", "D", "H", "omega")
 
-  # r7 Delete a A/D/H/psi.
+  # r7 Delete A/D/H/psi.
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'delete', psi_path)
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'delete psi', wc_dir)
+  sbox.simple_commit(message='delete psi')
 
   # r8 - modify A/D/H/omega.
   svntest.main.file_write(os.path.join(omega_path), "Even newer content")
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'modify omega', wc_dir)
+  sbox.simple_commit(message='modify omega')
 
   # r9 - Merge r3 to A_COPY/D/H/psi
   expected_output = expected_merge_output(
@@ -12052,9 +12050,7 @@ def subtree_source_missing_in_requested_
                                      'merge', '-c', '3',
                                      sbox.repo_url + '/A/D/H/psi@3',
                                      psi_COPY_path)
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'merge r3 to A_COPY/D/H/psi',
-                                     wc_dir)
+  sbox.simple_commit(message='merge r3 to A_COPY/D/H/psi')
 
   # r10 - Merge r6 to A_COPY/D/H/omega.
   expected_output = expected_merge_output(
@@ -12064,9 +12060,7 @@ def subtree_source_missing_in_requested_
                                      'merge', '-c', '6',
                                      sbox.repo_url + '/A/D/H/omega',
                                      omega_COPY_path)
-  svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
-                                     'merge r6 to A_COPY',
-                                     wc_dir)
+  sbox.simple_commit(message='merge r6 to A_COPY')
   svntest.actions.run_and_verify_svn(None, exp_noop_up_out(10), [], 'up',
                                      wc_dir)
 
@@ -12093,17 +12087,14 @@ def subtree_source_missing_in_requested_
                                      'merge', '-c', '8',
                                      sbox.repo_url + '/A',
                                      A_COPY_path, '--record-only')
-  svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
-                                     'merge r8 to A_COPY/D/H/omega',
-                                     wc_dir)
+  sbox.simple_commit(message='merge r8 to A_COPY/D/H/omega')
   svntest.actions.run_and_verify_svn(None, exp_noop_up_out(11), [], 'up',
                                      wc_dir)
 
   # r12 - modify A/D/H/omega yet again.
   svntest.main.file_write(os.path.join(omega_path),
                           "Now with fabulous new content!")
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'modify omega', wc_dir)
+  sbox.simple_commit(message='modify omega')
 
   # r13 - Merge all available revs to A_COPY/D/H/omega.
   expected_output = expected_merge_output(
@@ -12113,9 +12104,7 @@ def subtree_source_missing_in_requested_
                                      'merge',
                                      sbox.repo_url + '/A/D/H/omega',
                                      omega_COPY_path)
-  svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
-                                     'cherry harvest to A_COPY/D/H/omega',
-                                     wc_dir)
+  sbox.simple_commit(message='cherry harvest to A_COPY/D/H/omega')
   svntest.actions.run_and_verify_svn(None, exp_noop_up_out(13), [], 'up',
                                      wc_dir)
 
@@ -12276,9 +12265,7 @@ def subtree_source_missing_in_requested_
                                      'merge', '-c', '12',
                                      sbox.repo_url + '/A',
                                      A_COPY_path, '--record-only')
-  svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',
-                                     'Merge r12 to A_COPY',
-                                     wc_dir)
+  sbox.simple_commit(message='Merge r12 to A_COPY')
 
   # Update A_COPY/D/H/rho back to r13 so it's mergeinfo doesn't include
   # r12.  Then merge a range, -r6:12 which should delete a subtree
@@ -13759,14 +13746,12 @@ def subtree_gets_changes_even_if_ultimat
 
   # r7: Make an additional text mod to A/D/H/psi.
   svntest.main.file_write(psi_path, "Even newer content")
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'mod psi', wc_dir)
+  sbox.simple_commit(message='mod psi')
 
   # r8: Delete A/D/H/psi.
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'delete', psi_path)
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m', 'delete psi', wc_dir)
+  sbox.simple_commit(message='delete psi')
 
   # Update WC before merging so mergeinfo elision and inheritance
   # occur smoothly.
@@ -13812,11 +13797,8 @@ def subtree_gets_changes_even_if_ultimat
                           ['G    ' + psi_COPY_path + '\n',
                            ' G   ' + psi_COPY_path + '\n',]),
     [], 'merge', '-c-7', sbox.repo_url + '/A/D/H/psi@7', psi_COPY_path)
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'ci', '-m',
-                                     'merge -c3,7 from A/D/H,' \
-                                     'reverse merge -c-7 from A/D/H/psi',
-                                     wc_dir)
+  sbox.simple_commit(message='merge -c3,7 from A/D/H,' \
+                             'reverse merge -c-7 from A/D/H/psi')
 
   # Merge all available revisions from A/D/H to A_COPY/D/H.  This merge
   # ultimately tries to delete A_COPY/D/H/psi, but first it should merge

Modified: 
subversion/branches/revprop-packing/subversion/tests/cmdline/svntest/sandbox.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/revprop-packing/subversion/tests/cmdline/svntest/sandbox.py?rev=1148773&r1=1148772&r2=1148773&view=diff
==============================================================================
--- 
subversion/branches/revprop-packing/subversion/tests/cmdline/svntest/sandbox.py 
(original)
+++ 
subversion/branches/revprop-packing/subversion/tests/cmdline/svntest/sandbox.py 
Wed Jul 20 13:52:06 2011
@@ -204,16 +204,18 @@ class Sandbox:
       target = self.ospath(target)
     svntest.main.run_svn(False, 'switch', url, target, '--ignore-ancestry')
 
-  def simple_commit(self, target=None):
-    """Commit the WC or TARGET with a default log message.
+  def simple_commit(self, target=None, message=None):
+    """Commit the WC or TARGET, with a default or supplied log message.
+       Raise if the exit code is non-zero or there is output on stderr.
        TARGET is a relpath relative to the WC."""
     assert not self.read_only
     if target is None:
       target = self.wc_dir
     else:
       target = self.ospath(target)
-    svntest.main.run_svn(False, 'commit',
-                         '-m', svntest.main.make_log_msg(),
+    if message is None:
+      message = svntest.main.make_log_msg()
+    svntest.main.run_svn(False, 'commit', '-m', message,
                          target)
 
   def simple_rm(self, *targets):

Modified: 
subversion/branches/revprop-packing/subversion/tests/cmdline/tree_conflict_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/revprop-packing/subversion/tests/cmdline/tree_conflict_tests.py?rev=1148773&r1=1148772&r2=1148773&view=diff
==============================================================================
--- 
subversion/branches/revprop-packing/subversion/tests/cmdline/tree_conflict_tests.py
 (original)
+++ 
subversion/branches/revprop-packing/subversion/tests/cmdline/tree_conflict_tests.py
 Wed Jul 20 13:52:06 2011
@@ -1224,8 +1224,6 @@ def actual_only_node_behaviour(sbox):
     'Name': 'foo',
     'Schedule': 'normal',
     'Node Kind': 'none',
-    'Depth': 'empty', ### is this right?
-    'Copied From Rev': '0',
     'Path': re.escape(sbox.ospath('A/foo')),
   }
   run_and_verify_info([expected_info], foo_path)

Modified: 
subversion/branches/revprop-packing/subversion/tests/cmdline/update_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/revprop-packing/subversion/tests/cmdline/update_tests.py?rev=1148773&r1=1148772&r2=1148773&view=diff
==============================================================================
--- 
subversion/branches/revprop-packing/subversion/tests/cmdline/update_tests.py 
(original)
+++ 
subversion/branches/revprop-packing/subversion/tests/cmdline/update_tests.py 
Wed Jul 20 13:52:06 2011
@@ -5392,6 +5392,17 @@ def skip_access_denied(sbox):
 
   f.close()
 
+def update_to_HEAD_plus_1(sbox):
+  "updating to HEAD+1 should fail"
+
+  sbox.build(read_only = True)
+  wc_dir = sbox.wc_dir
+
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        None, None, None,
+                                        ".*No such revision",
+                                        None, None,
+                                        None, None, None, wc_dir, '-r', '2')
 
 
 #######################################################################
@@ -5459,6 +5470,7 @@ test_list = [ None,
               update_nonexistent_child_of_copy,
               revive_children_of_copy,
               skip_access_denied,
+              update_to_HEAD_plus_1,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/revprop-packing/tools/dev/unix-build/Makefile.svn
URL: 
http://svn.apache.org/viewvc/subversion/branches/revprop-packing/tools/dev/unix-build/Makefile.svn?rev=1148773&r1=1148772&r2=1148773&view=diff
==============================================================================
--- subversion/branches/revprop-packing/tools/dev/unix-build/Makefile.svn 
(original)
+++ subversion/branches/revprop-packing/tools/dev/unix-build/Makefile.svn Wed 
Jul 20 13:52:06 2011
@@ -29,7 +29,6 @@
 #   | the bot's health after making changes to this file.          |
 #   |______________________________________________________________|
 
-ENABLE_PYTHON_BINDINGS ?= yes
 ENABLE_PERL_BINDINGS ?= yes
 ENABLE_JAVA_BINDINGS ?= no # they don't build with thread-less APR...
 USE_APR_ICONV ?= no # set to yes to use APR iconv instead of GNU iconv
@@ -67,12 +66,14 @@ GNU_ICONV_VER       = 1.13.1
 APR_UTIL_VER   = 1.3.12
 HTTPD_VER      = 2.2.19
 NEON_VER       = 0.29.6
-SERF_VER       = 0.7.x
+SERF_VER       = 1.0.0
 SERF_OLD_VER   = 0.3.1
 CYRUS_SASL_VER = 2.1.23
 SQLITE_VER     = 3070603
 LIBMAGIC_VER   = 5.07
 RUBY_VER       = 1.8.7-p334
+BZ2_VER        = 1.0.6
+PYTHON_VER     = 2.7.2
 
 BDB_DIST       = db-$(BDB_VER).tar.gz
 APR_ICONV_DIST = apr-iconv-$(APR_ICONV_VER).tar.gz
@@ -83,6 +84,8 @@ CYRUS_SASL_DIST       = cyrus-sasl-$(CYRUS_SAS
 HTTPD_DIST     = httpd-$(HTTPD_VER).tar.bz2
 LIBMAGIC_DIST  = file-$(LIBMAGIC_VER).tar.gz
 RUBY_DIST      = ruby-$(RUBY_VER).tar.gz
+BZ2_DIST       = bzip2-$(BZ2_VER).tar.gz
+PYTHON_DIST    = Python-$(PYTHON_VER).tgz
 
 DISTFILES      = $(DISTDIR)/$(NEON_DIST) \
                $(DISTDIR)/$(SERF_DIST) \
@@ -92,7 +95,9 @@ DISTFILES     = $(DISTDIR)/$(NEON_DIST) \
                $(DISTDIR)/$(GNU_ICONV_DIST) \
                $(DISTDIR)/$(CYRUS_SASL_DIST) \
                $(DISTDIR)/$(LIBMAGIC_DIST) \
-               $(DISTDIR)/$(RUBY_DIST)
+               $(DISTDIR)/$(RUBY_DIST) \
+               $(DISTDIR)/$(BZ2_DIST) \
+               $(DISTDIR)/$(PYTHON_DIST)
 
 FETCH_CMD      = wget -c
 
@@ -105,12 +110,14 @@ APR_UTIL_URL      = http://svn.apache.org/rep
 HTTPD_URL      = http://archive.apache.org/dist/httpd/$(HTTPD_DIST)
 NEON_URL       = http://webdav.org/neon/$(NEON_DIST)
 #SERF_URL      = http://serf.googlecode.com/files/$(SERF_DIST)
-SERF_URL       = http://serf.googlecode.com/svn/branches/$(SERF_VER)
+SERF_URL       = http://serf.googlecode.com/svn/tags/$(SERF_VER)
 SERF_OLD_URL   = http://serf.googlecode.com/svn/tags/$(SERF_OLD_VER)
 SQLITE_URL     = http://www.sqlite.org/$(SQLITE_DIST)
 CYRUS_SASL_URL = ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/$(CYRUS_SASL_DIST)
 LIBMAGIC_URL   = ftp://ftp.astron.com/pub/file/$(LIBMAGIC_DIST)
 RUBY_URL       = http://ftp.ruby-lang.org/pub/ruby/1.8/$(RUBY_DIST)
+BZ2_URL                = http://bzip.org/$(BZ2_VER)/$(BZ2_DIST)
+PYTHON_URL     = http://python.org/ftp/python/2.7.2/$(PYTHON_DIST)
 
 BDB_SRCDIR     = $(SRCDIR)/db-$(BDB_VER)
 APR_SRCDIR     = $(SRCDIR)/apr-$(APR_VER)
@@ -125,6 +132,8 @@ SQLITE_SRCDIR       = $(SRCDIR)/sqlite-autocon
 CYRUS_SASL_SRCDIR      = $(SRCDIR)/cyrus-sasl-$(CYRUS_SASL_VER)
 LIBMAGIC_SRCDIR        = $(SRCDIR)/file-$(LIBMAGIC_VER)
 RUBY_SRCDIR    = $(SRCDIR)/ruby-$(RUBY_VER)
+BZ2_SRCDIR     = $(SRCDIR)/bzip2-$(BZ2_VER)
+PYTHON_SRCDIR  = $(SRCDIR)/Python-$(PYTHON_VER)
 SVN_SRCDIR     = $(SVN_WC)
 
 BDB_OBJDIR     = $(OBJDIR)/db-$(BDB_VER)
@@ -140,6 +149,8 @@ SQLITE_OBJDIR       = $(OBJDIR)/sqlite-$(SQLIT
 CYRUS_SASL_OBJDIR      = $(OBJDIR)/cyrus-sasl-$(CYRUS_SASL_VER)
 LIBMAGIC_OBJDIR        = $(OBJDIR)/file-$(LIBMAGIC_VER)
 RUBY_OBJDIR    = $(OBJDIR)/ruby-$(RUBY_VER)
+BZ2_OBJDIR     = $(OBJDIR)/bzip2-$(BZ2_VER)
+PYTHON_OBJDIR  = $(OBJDIR)/python-$(PYTHON_VER)
 SVN_OBJDIR     = $(OBJDIR)/$(SVN_REL_WC)
 
 # Tweak this for out-of-tree builds. Note that running individual
@@ -151,6 +162,9 @@ ifdef PROFILE
 PROFILE_CFLAGS=-pg
 endif
 
+# We need this to make sure some targets below pick up the right libraries
+LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/cyrus-sasl/lib:$(PREFIX)/iconv/lib:$(PREFIX)/libmagic/lib:$(PREFIX)/ruby/lib:$(PREFIX)/python/lib:$(PREFIX)/svn-$(WC)/lib
+
 #######################################################################
 # Main targets.
 #######################################################################
@@ -160,17 +174,19 @@ endif
 all: dirs-create bdb-install apr-install iconv-install apr-util-install \
        httpd-install neon-install serf-install serf-old-install \
        sqlite-install cyrus-sasl-install libmagic-install \
-       ruby-install svn-install svn-bindings-install
+       ruby-install bz2-install python-install \
+       svn-install svn-bindings-install
 
 # Use these to start a build from the beginning.
 reset: dirs-reset bdb-reset apr-reset iconv-reset apr-util-reset \
        httpd-reset neon-reset serf-reset serf-old-reset sqlite-reset \
-       cyrus-sasl-reset libmagic-reset ruby-reset svn-reset
+       cyrus-sasl-reset libmagic-reset ruby-reset python-reset \
+       bz2-reset svn-reset
 
 # Use to save disk space.
 clean: bdb-clean apr-clean iconv-clean apr-util-clean httpd-clean \
        neon-clean serf-clean serf-old-clean sqlite-clean cyrus-sasl-clean \
-       libmagic-clean ruby-clean svn-clean
+       libmagic-clean ruby-clean bz2-clean python-clean svn-clean
 
 # Nukes everything (including installed binaries!)
 # Use this to start ALL OVER AGAIN! Use with caution!
@@ -820,6 +836,12 @@ ifeq ($(UNAME),OpenBSD)
        done
        chmod +x $(CYRUS_SASL_SRCDIR)/configure
 endif
+       # Fixes excessive auth log spam from sasl if broken .la files exist
+       sed 's/SASL_LOG_WARN/SASL_LOG_DEBUG/' \
+               < $(CYRUS_SASL_SRCDIR)/lib/dlopen.c \
+               > $(CYRUS_SASL_SRCDIR)/lib/dlopen.c.patched
+       mv $(CYRUS_SASL_SRCDIR)/lib/dlopen.c.patched \
+               $(CYRUS_SASL_SRCDIR)/lib/dlopen.c
        touch $@
 
 # configure cyrus-sasl
@@ -934,12 +956,118 @@ $(RUBY_OBJDIR)/.compiled: $(RUBY_OBJDIR)
        (cd $(RUBY_OBJDIR) && make)
        touch $@
 
-# install ruby and the test-unit gem needed to run SVN bindings tests
+# install ruby
 $(RUBY_OBJDIR)/.installed: $(RUBY_OBJDIR)/.compiled
        (cd $(RUBY_OBJDIR) && make install)
        touch $@
 
 #######################################################################
+# bz2
+#######################################################################
+
+bz2-retrieve:  $(BZ2_OBJDIR)/.retrieved
+bz2-compile:   $(BZ2_OBJDIR)/.compiled
+bz2-install:   $(BZ2_OBJDIR)/.installed
+bz2-reset:
+       $(foreach f, .retrieved .configured .compiled .installed, \
+               rm -f $(BZ2_OBJDIR)/$(f);)
+
+bz2-clean:
+       -(cd $(BZ2_SRCDIR) && make distclean)
+
+# fetch distfile for bz2
+$(DISTDIR)/$(BZ2_DIST):
+       cd $(DISTDIR) && $(FETCH_CMD) $(BZ2_URL)
+
+# retrieve bz2
+$(BZ2_OBJDIR)/.retrieved: $(DISTDIR)/$(BZ2_DIST)
+       [ -d $(BZ2_OBJDIR) ] || mkdir -p $(BZ2_OBJDIR)
+       tar -C $(SRCDIR) -zxf $(DISTDIR)/$(BZ2_DIST)
+       touch $@
+
+# compile bz2
+$(BZ2_OBJDIR)/.compiled: $(BZ2_OBJDIR)/.retrieved
+       (cd $(BZ2_SRCDIR) && make CFLAGS="-g $(PROFILE_CFLAGS) -fPIC")
+       touch $@
+
+# install bz2
+$(BZ2_OBJDIR)/.installed: $(BZ2_OBJDIR)/.compiled
+       (cd $(BZ2_SRCDIR) && make install PREFIX=$(PREFIX)/bz2)
+       touch $@
+
+
+#######################################################################
+# python
+#######################################################################
+
+python-retrieve:       $(PYTHON_OBJDIR)/.retrieved
+python-configure:      $(PYTHON_OBJDIR)/.configured
+python-compile:        $(PYTHON_OBJDIR)/.compiled
+python-install:        $(PYTHON_OBJDIR)/.installed
+python-reset:
+       $(foreach f, .retrieved .configured .compiled .installed, \
+               rm -f $(PYTHON_OBJDIR)/$(f);)
+
+python-clean:
+       -(cd $(PYTHON_OBJDIR) && make distclean)
+
+# fetch distfile for python
+$(DISTDIR)/$(PYTHON_DIST):
+       cd $(DISTDIR) && $(FETCH_CMD) $(PYTHON_URL)
+
+# retrieve python
+#
+$(PYTHON_OBJDIR)/.retrieved: $(DISTDIR)/$(PYTHON_DIST)
+       [ -d $(PYTHON_OBJDIR) ] || mkdir -p $(PYTHON_OBJDIR)
+       tar -C $(SRCDIR) -zxf $(DISTDIR)/$(PYTHON_DIST)
+       # Make setup.py use our own dependencies instead of system ones
+       sed -e "s#sqlite_inc_paths = \[ '/usr/include',#sqlite_inc_paths = [ 
'$(PREFIX)/sqlite/include',#" \
+               -e "s#'/usr/include/db4'#'$(PREFIX)/bdb/include'#" \
+               -e "s|\(add_dir_to_list(self.compiler.library_dirs, 
'/usr/local/lib')\)|#\1|" \
+               -e "s|\(add_dir_to_list(self.compiler.include_dirs, 
'/usr/local/include')\)|#\1|" \
+               -e "s#find_library_file(lib_dirs, 
'bz2'#find_library_file(['$(PREFIX)/bz2/lib'] + lib_dirs, 'bz2'#" \
+               < $(PYTHON_SRCDIR)/setup.py \
+               > $(PYTHON_SRCDIR)/setup.py.patched
+       mv $(PYTHON_SRCDIR)/setup.py.patched $(PYTHON_SRCDIR)/setup.py
+       chmod +x $(PYTHON_SRCDIR)/setup.py
+       # Fixes shared library linking on OpenBSD
+       # http://bugs.python.org/issue12560
+       sed -e '4930s#NetBSD\*|#NetBSD*|OpenBSD*|#' \
+               < $(PYTHON_SRCDIR)/configure \
+               > $(PYTHON_SRCDIR)/configure.patched
+       mv $(PYTHON_SRCDIR)/configure.patched $(PYTHON_SRCDIR)/configure
+       chmod +x $(PYTHON_SRCDIR)/configure
+       touch $@
+
+# configure python
+ifdef PROFILE
+PYTHON_PROFILING=--enable-profiling
+endif
+$(PYTHON_OBJDIR)/.configured: $(PYTHON_OBJDIR)/.retrieved
+       cd $(PYTHON_OBJDIR) \
+               && env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+               CPPFLAGS="-I$(PREFIX)/bz2/include" \
+               LDFLAGS="-Wl,-rpath=$(PREFIX)/python/lib -L$(PREFIX)/bz2/lib" \
+               $(PYTHON_SRCDIR)/configure \
+               --prefix=$(PREFIX)/python \
+               --enable-shared \
+               --with-system-expat \
+               --with-dbmliborder=bdb \
+               $(PYTHON_PROFILING)
+       touch $@
+
+# compile python
+$(PYTHON_OBJDIR)/.compiled: $(PYTHON_OBJDIR)/.configured
+       (cd $(PYTHON_OBJDIR) && make)
+       touch $@
+
+# install python
+$(PYTHON_OBJDIR)/.installed: $(PYTHON_OBJDIR)/.compiled
+       (cd $(PYTHON_OBJDIR) && make install)
+       touch $@
+
+
+#######################################################################
 # svn
 #######################################################################
 
@@ -1060,9 +1188,9 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)
        cd $(SVN_SRCDIR) && ./autogen.sh
        cd $(svn_builddir) && \
                env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib" \
-                       
LD_LIBRARY_PATH="$(PREFIX)/bdb/lib:$(PREFIX)/iconv/lib:$$LD_LIBRARY_PATH" \
+                       LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
                        GREP="`which grep`" \
-                       PATH=$(PREFIX)/ruby/bin:$$PATH \
+                       PATH=$(PREFIX)/ruby/bin:$(PREFIX)/python/bin:$$PATH \
                        $(SVN_SRCDIR)/configure \
                        --enable-maintainer-mode \
                        --with-ssl \
@@ -1096,15 +1224,16 @@ $(SVN_OBJDIR)/.installed: $(SVN_OBJDIR)/
        touch $@
 
 $(SVN_OBJDIR)/.bindings-compiled: $(SVN_OBJDIR)/.installed
-       if [ $(ENABLE_PYTHON_BINDINGS) = yes ]; then \
-               cd $(svn_builddir) \
-                       && make swig-py; \
-       fi
+       cd $(svn_builddir) \
+               && env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+                       make swig-py
        cd $(svn_builddir) && \
-               PATH=$(PREFIX)/ruby/bin:$$PATH make swig-rb
+               env PATH=$(PREFIX)/ruby/bin:$$PATH \
+               LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) make swig-rb
        if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
                cd $(svn_builddir) \
-                       && make swig-pl; \
+                       && env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+                               make swig-pl; \
        fi
        if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
                cd $(svn_builddir) \
@@ -1113,12 +1242,12 @@ $(SVN_OBJDIR)/.bindings-compiled: $(SVN_
        touch $@
 
 $(SVN_OBJDIR)/.bindings-installed: $(SVN_OBJDIR)/.bindings-compiled
-       if [ $(ENABLE_PYTHON_BINDINGS) = yes ]; then \
-               cd $(svn_builddir) \
-                 && make install-swig-py; \
-       fi
+       cd $(svn_builddir) \
+         && env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+               make install-swig-py
        cd $(svn_builddir) && \
-               PATH=$(PREFIX)/ruby/bin:$$PATH make install-swig-rb
+               env PATH=$(PREFIX)/ruby/bin:$$PATH \
+               LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) make install-swig-rb
        if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
                cd $(svn_builddir) \
            && make install-swig-pl-lib; \
@@ -1203,9 +1332,6 @@ endif
        echo >>[email protected] 'RedirectMatch 
^/svn-test-work/repositories/REDIRECT-TEMP-(.*)$$ 
/svn-test-work/repositories/$$1'
        mv -f [email protected] $@
 
-# We need this to make sure some targets below pick up the right libraries
-LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/cyrus-sasl/lib:$(PREFIX)/iconv/lib:$(PREFIX)/libmagic/lib:$(PREFIX)/ruby/lib:$(PREFIX)/svn-$(WC)/lib
-
 .PHONY: libpath
 libpath:
        @echo export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH
@@ -1259,7 +1385,8 @@ define do_check
 -cd $(svn_builddir) && for fs in fsfs bdb; do \
     echo "Begin test: $(subst svn-check-,,$@) x $$fs"; \
     test -d "$(RAMDISK)/tmp" && export TMPDIR="$(RAMDISK)/tmp"; \
-    make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) $1 FS_TYPE=$$fs; \
+    env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+        make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) $1 FS_TYPE=$$fs; \
     for log in tests.log fails.log; do \
         test -f $$log && mv -f $$log $$log.$@-$$fs; \
     done; \
@@ -1313,12 +1440,10 @@ svn-check-swig-pl:
        fi
 
 svn-check-swig-py:
-       -if [ $(ENABLE_PYTHON_BINDINGS) = yes ]; then \
-               (cd $(svn_builddir) && \
-                       env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
-                       make check-swig-py 2>&1) | \
-                               tee $(svn_builddir)/tests.log.bindings.py; \
-       fi
+       -(cd $(svn_builddir) && \
+               env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+               make check-swig-py 2>&1) | \
+                       tee $(svn_builddir)/tests.log.bindings.py
 
 # We add the svn prefix to PATH here because the ruby tests
 # attempt to start an svnserve binary found in PATH.
@@ -1372,7 +1497,7 @@ endif
        @echo "sqlite:     $(SQLITE_VER)"
        @echo "openssl:    `openssl version | cut -d' ' -f2`"
        @echo "swig:       `swig -version | grep Version | cut -d' ' -f3`"
-       @echo "python:     `python --version 2>&1 | cut -d' ' -f2`"
+       @echo "python:     $(PYTHON_VER)"
        @echo "perl:       `eval \`perl -V:version\`; echo $$version`"
        @echo "ruby:       $(RUBY_VER)"
 ifeq ($(ENABLE_JAVA_BINDINGS),yes)

Modified: subversion/branches/revprop-packing/tools/dist/collect_sigs.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/revprop-packing/tools/dist/collect_sigs.py?rev=1148773&r1=1148772&r2=1148773&view=diff
==============================================================================
--- subversion/branches/revprop-packing/tools/dist/collect_sigs.py (original)
+++ subversion/branches/revprop-packing/tools/dist/collect_sigs.py Wed Jul 20 
13:52:06 2011
@@ -78,7 +78,7 @@ def generate_asc_files(target_dir='.'):
   curs.execute('SELECT filename, signature FROM signatures;')
   for filename, signature in curs:
     fd = _open(filename)
-    fd.write(signature + "\n")
+    fd.write(signature)
 
   for fd in fds.values():
     fd.flush()
@@ -181,8 +181,11 @@ def list_signatures():
 
   lines = ""
   curs = db.cursor()
+  like_filename = 'subversion-%s%%' % config.version
   curs.execute('''SELECT filename, COUNT(*) FROM signatures
-                  GROUP BY filename ORDER BY filename''')
+                  WHERE filename LIKE ?
+                  GROUP BY filename ORDER BY filename''',
+               (like_filename, ) )
   for filename, count in curs:
     lines += '<a href="%s/%s.asc">%s.asc</a>: %d signature%s<br/>\n' \
              % (os.getenv('SCRIPT_NAME'), filename, filename,
@@ -196,6 +199,24 @@ def save_valid_sig(db, filename, keyid, 
 
   generate_asc_files(config.sigdir)
 
+  # Attempt to copy the results to a remote location
+  try:
+    import paramiko
+
+    client = paramiko.SSHClient()
+    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+    client.connect(config.ssh['host'], username = config.ssh['user'],
+                   key_filename = config.ssh['key'])
+    sftp = client.open_sftp()
+
+    sftp.put(os.path.join(config.sigdir, filename + '.asc'),
+             os.path.join(config.ssh['dir'], config.version, 'deploy',
+                          filename + '.asc'))
+    client.close()
+  except:
+    # Ignore any errors
+    pass
+
 def verify_sig_for_file(signature, filename):
   args = ['gpg', '--logger-fd', '1', '--no-tty',
           '--status-fd', '2', '--verify', '-',

Modified: subversion/branches/revprop-packing/tools/dist/release.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/revprop-packing/tools/dist/release.py?rev=1148773&r1=1148772&r2=1148773&view=diff
==============================================================================
--- subversion/branches/revprop-packing/tools/dist/release.py (original)
+++ subversion/branches/revprop-packing/tools/dist/release.py Wed Jul 20 
13:52:06 2011
@@ -79,6 +79,16 @@ class Version(object):
     regex = re.compile('(\d+).(\d+).(\d+)(?:-(?:(rc|alpha|beta)(\d+)))?')
 
     def __init__(self, ver_str):
+        # Special case the 'trunk-nightly' version
+        if ver_str == 'trunk-nightly':
+            self.major = None
+            self.minor = None
+            self.patch = None
+            self.pre = 'nightly'
+            self.pre_num = None
+            self.base = 'nightly'
+            return
+
         match = self.regex.search(ver_str)
 
         if not match:
@@ -122,7 +132,10 @@ class Version(object):
 
     def __str(self):
         if self.pre:
-            extra = '-%s%d' % (self.pre, self.pre_num)
+            if self.pre == 'nightly':
+                return 'nightly'
+            else:
+                extra = '-%s%d' % (self.pre, self.pre_num)
         else:
             extra = ''
 
@@ -371,7 +384,10 @@ def roll_tarballs(args):
     # For now, just delegate to dist.sh to create the actual artifacts
     extra_args = ''
     if args.version.is_prerelease():
-        extra_args = '-%s %d' % (args.version.pre, args.version.pre_num)
+        if args.version.pre == 'nightly':
+            extra_args = '-nightly'
+        else:
+            extra_args = '-%s %d' % (args.version.pre, args.version.pre_num)
     logging.info('Building UNIX tarballs')
     run_script(args.verbose, '%s/dist.sh -v %s -pr %s -r %d %s'
                      % (sys.path[0], args.version.base, branch, args.revnum,
@@ -409,7 +425,7 @@ def post_candidates(args):
         target = args.target
     else:
         target = os.path.join(os.getenv('HOME'), 'public_html', 'svn',
-                              args.version)
+                              str(args.version))
 
     if args.code_name:
         dirname = args.code_name
@@ -419,7 +435,7 @@ def post_candidates(args):
     if not os.path.exists(target):
         os.makedirs(target)
 
-    data = { 'version'      : args.version,
+    data = { 'version'      : str(args.version),
              'revnum'       : args.revnum,
              'dirname'      : dirname,
            }
@@ -516,7 +532,7 @@ def write_announcement(args):
     'Write the release announcement.'
     sha1info = get_sha1info(args)
 
-    data = { 'version'              : args.version,
+    data = { 'version'              : str(args.version),
              'sha1info'             : sha1info,
              'siginfo'              : open('getsigs-output', 'r').read(),
              'major-minor'          : args.version.base[:3],


Reply via email to