~ruther/guix-local

0058239ed3e3ea2ff752487bd15b9d21f6702a19 — Mark H Weaver 10 years ago 686b1ba
gnu: subversion: Update to 1.8.14.

* gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch: Delete file.
* gnu-system.am (dist_patch_DATA): Remove it.
* gnu/packages/version-control.scm (subversion): Update to 1.8.14.  Remove
  patch.
3 files changed, 2 insertions(+), 138 deletions(-)

M gnu-system.am
D gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch
M gnu/packages/version-control.scm
M gnu-system.am => gnu-system.am +0 -1
@@ 638,7 638,6 @@ dist_patch_DATA =						\
  gnu/packages/patches/slim-config.patch			\
  gnu/packages/patches/slim-sigusr1.patch			\
  gnu/packages/patches/soprano-find-clucene.patch		\
  gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch	\
  gnu/packages/patches/superlu-dist-scotchmetis.patch		\
  gnu/packages/patches/tar-d_ino_in_dirent-fix.patch		\
  gnu/packages/patches/tar-skip-unreliable-tests.patch		\

D gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch => gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch +0 -132
@@ 1,132 0,0 @@
Despite all the efforts below, the 'wc-queries-test.c' still fails,
both with SQLite 3.8.9 and 3.8.10.2.  We choose to just skip it
until a better solution arises.

--- subversion/tests/libsvn_wc/wc-queries-test.c	2015-07-16 23:24:03.458279053 +0200
+++ subversion/tests/libsvn_wc/wc-queries-test.c	2015-07-16 23:24:18.866423439 +0200
@@ -898,8 +898,6 @@ struct svn_test_descriptor_t test_funcs[
                    "sqlite up-to-date"),
     SVN_TEST_PASS2(test_parsable,
                    "queries are parsable"),
-    SVN_TEST_PASS2(test_query_expectations,
-                   "test query expectations"),
     SVN_TEST_PASS2(test_schema_statistics,
                    "test schema statistics"),
     SVN_TEST_NULL


This upstream patch (r1672295) is needed to fix a test failure when built
against sqlite 3.8.9.  See:

  https://mail-archives.apache.org/mod_mbox/subversion-dev/201504.mbox/%3C5526D197.6020808@gmx.de%3E
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785496


r1672295 | rhuijben | 2015-04-09 07:31:12 -0400 (Thu, 09 Apr 2015) | 15 lines

Optimize STMT_SELECT_EXTERNALS_DEFINED when using Sqlite 3.8.9, by
adding two more rows to the sqlite_stat1 table.

This fixes a test failure in wc-queries-test.c, but actual users most
likely don't notice a difference as a tablescan on an EXTERNALS tables
index is not that expensive, given that most working copies don't have
many externals.

* subversion/libsvn_wc/wc-metadata.sql
  (STMT_INSTALL_SCHEMA_STATISTICS): Add two rows.

* subversion/tests/libsvn_wc/wc-queries-test.c
  (test_schema_statistics): Add a dummy externals row to allow
    verifying schema.

Index: subversion/tests/libsvn_wc/wc-queries-test.c
===================================================================
--- subversion/tests/libsvn_wc/wc-queries-test.c	(revision 1672294)
+++ subversion/tests/libsvn_wc/wc-queries-test.c	(revision 1672295)
@@ -927,6 +927,15 @@
                    "VALUES (1, '', '')",
                    NULL, NULL, NULL));
 
+  SQLITE_ERR(
+      sqlite3_exec(sdb,
+                   "INSERT INTO EXTERNALS (wc_id, local_relpath,"
+                   "                       parent_relpath, repos_id,"
+                   "                       presence, kind, def_local_relpath,"
+                   "                       def_repos_relpath) "
+                   "VALUES (1, 'subdir', '', 1, 'normal', 'dir', '', '')",
+                   NULL, NULL, NULL));
+
   /* These are currently not necessary for query optimization, but it's better
      to tell Sqlite how we intend to use this table anyway */
   SQLITE_ERR(
Index: subversion/libsvn_wc/wc-metadata.sql
===================================================================
--- subversion/libsvn_wc/wc-metadata.sql	(revision 1672294)
+++ subversion/libsvn_wc/wc-metadata.sql	(revision 1672295)
@@ -619,6 +619,11 @@
 INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1',           '100 100 1');
 
+INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+    ('EXTERNALS','sqlite_autoindex_EXTERNALS_1',        '100 100 1');
+INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+    ('EXTERNALS','I_EXTERNALS_DEFINED',                 '100 100 3 1');
+
 /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is
    a INTEGER PRIMARY KEY AUTOINCREMENT table */
 

r1673691 | rhuijben | 2015-04-15 05:30:04 -0400 (Wed, 15 Apr 2015) | 5 lines

* subversion/libsvn_wc/wc-metadata.sql
  (STMT_INSTALL_SCHEMA_STATISTICS): Delete existing sqlite_stat1 rows for
    the externals table before installing new rows to avoid duplicate entries.
    Remove unneeded 'OR REPLACE' from all inserts.


Index: subversion/libsvn_wc/wc-metadata.sql
===================================================================
--- subversion/libsvn_wc/wc-metadata.sql	(revision 1673690)
+++ subversion/libsvn_wc/wc-metadata.sql	(revision 1673691)
@@ -598,30 +598,30 @@
 ANALYZE sqlite_master; /* Creates empty sqlite_stat1 if necessary */
 
 DELETE FROM sqlite_stat1
-WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK');
+WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS');
 
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('NODES', 'sqlite_autoindex_NODES_1',               '8000 8000 2 1');
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('NODES', 'I_NODES_PARENT',                         '8000 8000 10 2 1');
 /* Tell a lie: We ignore that 99.9% of all moved_to values are NULL */
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('NODES', 'I_NODES_MOVED',                          '8000 8000 1 1');
 
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1',   '8000 8000 1');
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('ACTUAL_NODE', 'I_ACTUAL_PARENT',                  '8000 8000 10 1');
 
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('LOCK', 'sqlite_autoindex_LOCK_1',                 '100 100 1');
 
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1',           '100 100 1');
 
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('EXTERNALS','sqlite_autoindex_EXTERNALS_1',        '100 100 1');
-INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('EXTERNALS','I_EXTERNALS_DEFINED',                 '100 100 3 1');
 
 /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is


M gnu/packages/version-control.scm => gnu/packages/version-control.scm +2 -5
@@ 582,17 582,14 @@ property manipulation.")
(define-public subversion
  (package
    (name "subversion")
    (version "1.8.13")
    (version "1.8.14")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://archive.apache.org/dist/subversion/"
                                 "subversion-" version ".tar.bz2"))
             (sha256
              (base32
               "0ybmc0yq83jhblp42wdqvn2cryra3sypx8mkxn5b8lq7hilcr68h"))
             (patches
              (list (search-patch "subversion-sqlite-3.8.9-fix.patch")))
             (patch-flags '("-p0"))))
               "07ws4bspdgi4r5hbxvk86a15c669iqz6wkfrdph78hddzk6q6f3z"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases (alist-cons-after