svn commit: r357633 - in head/ports-mgmt/pkg-devel: . files
Bryan Drewery
bdrewery at FreeBSD.org
Thu Jun 12 20:15:11 UTC 2014
Author: bdrewery
Date: Thu Jun 12 20:15:10 2014
New Revision: 357633
URL: http://svnweb.freebsd.org/changeset/ports/357633
QAT: https://qat.redports.org/buildarchive/r357633/
Log:
Fix regex, which fixes portmaster/portupgrade integration
Reported by: kwm
Added:
head/ports-mgmt/pkg-devel/files/patch-fix-rdeps
- copied unchanged from r357632, head/ports-mgmt/pkg-devel/files/patch-libpkg__pkgdb.c
head/ports-mgmt/pkg-devel/files/patch-fix-regex (contents, props changed)
Deleted:
head/ports-mgmt/pkg-devel/files/patch-libpkg__pkgdb.c
Modified:
head/ports-mgmt/pkg-devel/Makefile
Modified: head/ports-mgmt/pkg-devel/Makefile
==============================================================================
--- head/ports-mgmt/pkg-devel/Makefile Thu Jun 12 19:41:00 2014 (r357632)
+++ head/ports-mgmt/pkg-devel/Makefile Thu Jun 12 20:15:10 2014 (r357633)
@@ -2,7 +2,7 @@
PORTNAME= pkg
DISTVERSION= 1.3.0.b3
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= ports-mgmt
MASTER_SITES= \
http://files.etoilebsd.net/pkg/ \
Copied: head/ports-mgmt/pkg-devel/files/patch-fix-rdeps (from r357632, head/ports-mgmt/pkg-devel/files/patch-libpkg__pkgdb.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/ports-mgmt/pkg-devel/files/patch-fix-rdeps Thu Jun 12 20:15:10 2014 (r357633, copy of r357632, head/ports-mgmt/pkg-devel/files/patch-libpkg__pkgdb.c)
@@ -0,0 +1,61 @@
+commit 4f3ce011ee1d0f00afc8d84ed9fd82cda9f02a08
+Author: Bryan Drewery <bryan at shatow.net>
+Date: Wed Jun 11 12:31:21 2014 -0500
+
+ Fix pkgdb_load_rdeps by reverting "Avoid deps full scan when loading dependencies."
+
+ This reverts commit cf47e2c24af23c8f278d9c502fe2923a42f23d33.
+
+ 1. deps should be joined on p.id=d.package_id rather than origin.
+ Otherwise no results are returned breaking pkg-query %r, pkg-autoremove,
+ etc.
+ 2. Restore uniqueid support [1]
+
+ Discussed with: bapt [1]
+
+ Fixes #833
+
+diff --git libpkg/pkgdb.c libpkg/pkgdb.c
+index e46ddeb..7e4500b 100644
+--- libpkg/pkgdb.c
++++ libpkg/pkgdb.c
+@@ -1923,23 +1923,19 @@ pkgdb_load_rdeps(struct pkgdb *db, struct pkg *pkg)
+ {
+ sqlite3_stmt *stmt = NULL;
+ int ret;
+- const char *origin;
++ const char *uniqueid;
+ const char *reponame = NULL;
+ char sql[BUFSIZ];
+ const char *mainsql = ""
+ "SELECT p.name, p.origin, p.version, p.locked "
+- "FROM main.deps AS d "
+- "LEFT JOIN main.packages AS p ON p.origin = d.origin "
++ "FROM main.packages AS p, main.deps AS d "
+ "WHERE p.id = d.package_id "
+- "AND p.name = d.name "
+- "AND d.origin = ?1;";
++ "AND d.name || '~' || d.origin = ?1;";
+ const char *reposql = ""
+ "SELECT p.name, p.origin, p.version, 0 "
+- "FROM %Q.deps AS d "
+- "LEFT JOIN %Q.packages AS p ON p.origin = d.origin "
++ "FROM %Q.packages AS p, %Q.deps AS d "
+ "WHERE p.id = d.package_id "
+- "AND p.name = d.name "
+- "AND d.origin = ?1;";
++ "AND d.name || '~' || d.origin = ?1;";
+
+ assert(db != NULL && pkg != NULL);
+
+@@ -1962,8 +1958,8 @@ pkgdb_load_rdeps(struct pkgdb *db, struct pkg *pkg)
+ return (EPKG_FATAL);
+ }
+
+- pkg_get(pkg, PKG_ORIGIN, &origin);
+- sqlite3_bind_text(stmt, 1, origin, -1, SQLITE_STATIC);
++ pkg_get(pkg, PKG_UNIQUEID, &uniqueid);
++ sqlite3_bind_text(stmt, 1, uniqueid, -1, SQLITE_STATIC);
+
+ while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) {
+ pkg_addrdep(pkg, sqlite3_column_text(stmt, 0),
Added: head/ports-mgmt/pkg-devel/files/patch-fix-regex
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/ports-mgmt/pkg-devel/files/patch-fix-regex Thu Jun 12 20:15:10 2014 (r357633)
@@ -0,0 +1,30 @@
+commit 8ccfa88c4bb211ebe421eb4beaa826fa03a1548b
+Author: Bryan Drewery <bryan at shatow.net>
+Date: Thu Jun 12 15:10:53 2014 -0500
+
+ pkgdb_get_pattern_query: Fix regex handling when '-' used by not using SPLIT_VERSION
+
+ Error:
+ # pkg info -x 'pkg(-devel)?$'
+ pkg: sqlite error while executing iterator in file pkgdb.c:1548: Invalid regex
+
+ Expected:
+ # pkg info -x 'pkg(-devel)?$'
+ pkg-devel-1.3.0.b2
+
+ Partial revert from fa815ff62
+
+diff --git libpkg/pkgdb.c libpkg/pkgdb.c
+index 008bb84..9e38631 100644
+--- libpkg/pkgdb.c
++++ libpkg/pkgdb.c
+@@ -1651,8 +1651,7 @@ pkgdb_get_pattern_query(const char *pattern, match_t match)
+ if (checkuid == NULL) {
+ if (checkorigin == NULL)
+ comp = " WHERE name REGEXP ?1 "
+- "OR (name REGEXP SPLIT_VERSION('name', ?1) AND "
+- " version REGEXP SPLIT_VERSION('version', ?1))";
++ "OR name || '-' || version REGEXP ?1";
+ else
+ comp = " WHERE origin REGEXP ?1";
+ } else {
More information about the svn-ports-all
mailing list