Date: Fri, 1 Dec 2017 14:10:54 +0000 (UTC) From: Baptiste Daroussin <bapt@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r455294 - in head/ports-mgmt/pkg: . files Message-ID: <201712011410.vB1EAs3p080645@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bapt Date: Fri Dec 1 14:10:54 2017 New Revision: 455294 URL: https://svnweb.freebsd.org/changeset/ports/455294 Log: Add patches from git to handle pkg version with newly flavoured ports tree Added: head/ports-mgmt/pkg/files/0001-Do-not-use-the-origin-at-all-anymore-when-looking-fo.patch (contents, props changed) head/ports-mgmt/pkg/files/0002-Fix-finding-ports-updates-with-flavors.patch (contents, props changed) Modified: head/ports-mgmt/pkg/Makefile Modified: head/ports-mgmt/pkg/Makefile ============================================================================== --- head/ports-mgmt/pkg/Makefile Fri Dec 1 13:59:16 2017 (r455293) +++ head/ports-mgmt/pkg/Makefile Fri Dec 1 14:10:54 2017 (r455294) @@ -2,6 +2,7 @@ PORTNAME= pkg DISTVERSION= 1.10.2 +PORTREVISION= 1 _PKG_VERSION= ${DISTVERSION} CATEGORIES= ports-mgmt MASTER_SITES= \ @@ -30,6 +31,8 @@ CFLAGS+= -Wno-error .if !exists(/usr/include/jail.h) EXTRA_PATCHES= ${FILESDIR}/extra-patch-docs_pkg.8 .endif +EXTRA_PATCHES+= ${FILESDIR}/0001-Do-not-use-the-origin-at-all-anymore-when-looking-fo.patch:-p1 \ + ${FILESDIR}/0002-Fix-finding-ports-updates-with-flavors.patch:-p1 .include <bsd.port.pre.mk> Added: head/ports-mgmt/pkg/files/0001-Do-not-use-the-origin-at-all-anymore-when-looking-fo.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/ports-mgmt/pkg/files/0001-Do-not-use-the-origin-at-all-anymore-when-looking-fo.patch Fri Dec 1 14:10:54 2017 (r455294) @@ -0,0 +1,114 @@ +From 7242a137ae73ad0da08d57c09901219179b19b14 Mon Sep 17 00:00:00 2001 +From: Baptiste Daroussin <bapt@FreeBSD.org> +Date: Fri, 1 Dec 2017 14:26:59 +0100 +Subject: [PATCH 1/2] Do not use the origin at all anymore when looking for new + version from the INDEX files, this makes finding new version of flavoured + ports working again + +--- + src/version.c | 33 +++++++++++---------------------- + 1 file changed, 11 insertions(+), 22 deletions(-) + +diff --git a/src/version.c b/src/version.c +index ee955bef..75d9e922 100644 +--- a/src/version.c ++++ b/src/version.c +@@ -56,7 +56,7 @@ + extern char **environ; + + struct index_entry { +- char *origin; ++ char *name; + char *version; + }; + +@@ -286,10 +286,10 @@ hash_indexfile(const char *indexfilename) + FILE *indexfile; + kh_index_t *index = NULL; + struct index_entry *entry; +- char *version, *origin; +- char *line = NULL, *l, *p; ++ char *version, *name; ++ char *line = NULL, *l; + size_t linecap = 0; +- int dirs, ret; ++ int ret; + khint_t k; + + +@@ -306,40 +306,30 @@ hash_indexfile(const char *indexfilename) + l = line; + + version = strsep(&l, "|"); ++ name = version; + version = strrchr(version, '-'); + version[0] = '\0'; + version++; + +- origin = strsep(&l, "|"); +- for (dirs = 0, p = l; p > origin; p--) { +- if ( p[-1] == '/' ) { +- dirs++; +- if (dirs == 2) { +- origin = p; +- break; +- } +- } +- } +- + entry = malloc(sizeof(struct index_entry)); + if (entry != NULL) { ++ entry->name = strdup(name); + entry->version = strdup(version); +- entry->origin = strdup(origin); + } + + if (entry == NULL || entry->version == NULL || +- entry->origin == NULL) ++ entry->name == NULL) + err(EX_SOFTWARE, "Out of memory while reading %s", + indexfilename); + + if (index == NULL) + index = kh_init_index(); +- k = kh_put_index(index, entry->origin, &ret); ++ k = kh_put_index(index, entry->name, &ret); + if (ret != 0) { + kh_value(index, k) = entry; + } else { +- free(entry->origin); + free(entry->version); ++ free(entry->name); + free(entry); + } + } +@@ -381,8 +371,8 @@ free_index(kh_index_t *index) + return; + + kh_foreach_value(index, entry, { +- free(entry->origin); + free(entry->version); ++ free(entry->name); + free(entry); + }); + kh_destroy_index(index); +@@ -460,7 +450,7 @@ do_source_index(unsigned int opt, char limchar, char *pattern, match_t match, + strcmp(name, matchname) != 0) + continue; + +- k = kh_get_index(index, origin); ++ k = kh_get_index(index, name); + print_version(pkg, "index", + k != kh_end(index) ? (kh_value(index, k))->version : NULL, limchar, opt); + } +@@ -751,7 +741,6 @@ do_source_ports(unsigned int opt, char limchar, char *pattern, match_t match, + return (EX_USAGE); + } + +- + if (chdir(portsdir) != 0) + err(EX_SOFTWARE, "Cannot chdir to %s\n", portsdir); + +-- +2.15.1 + Added: head/ports-mgmt/pkg/files/0002-Fix-finding-ports-updates-with-flavors.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/ports-mgmt/pkg/files/0002-Fix-finding-ports-updates-with-flavors.patch Fri Dec 1 14:10:54 2017 (r455294) @@ -0,0 +1,64 @@ +From ab5d49c07944d6a9f3a61de4c830a0130feccbd7 Mon Sep 17 00:00:00 2001 +From: Baptiste Daroussin <bapt@FreeBSD.org> +Date: Fri, 1 Dec 2017 14:53:41 +0100 +Subject: [PATCH 2/2] Fix finding ports updates with flavors + +Use the new target from flavors to list all potential packages and we +match against them +--- + src/version.c | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +diff --git a/src/version.c b/src/version.c +index 75d9e922..f2a24186 100644 +--- a/src/version.c ++++ b/src/version.c +@@ -696,9 +696,10 @@ validate_origin(const char *portsdir, const char *origin) + } + + static const char * +-port_version(UT_string *cmd, const char *portsdir, const char *origin) ++port_version(UT_string *cmd, const char *portsdir, const char *origin, ++ const char *pkgname) + { +- char *output; ++ char *output, *walk, *name; + char *version = NULL; + char *argv[5]; + +@@ -712,12 +713,21 @@ port_version(UT_string *cmd, const char *portsdir, const char *origin) + argv[0] = "make"; + argv[1] = "-C"; + argv[2] = utstring_body(cmd); +- argv[3] = "-VPKGVERSION"; ++ argv[3] = "flavors-package-names"; + argv[4] = NULL; + + if (exec_buf(cmd, argv) != 0) { + output = utstring_body(cmd); +- version = strsep(&output, "\n"); ++ while ((walk = strsep(&output, "\n")) != NULL) { ++ name = walk; ++ walk = strrchr(walk, '-'); ++ walk[0] = '\0'; ++ walk++; ++ if (strcmp(name, pkgname) == 0) { ++ version = walk; ++ break; ++ } ++ } + } + } + +@@ -772,7 +782,7 @@ do_source_ports(unsigned int opt, char limchar, char *pattern, match_t match, + strcmp(name, matchname) != 0) + continue; + +- version = port_version(cmd, portsdir, origin); ++ version = port_version(cmd, portsdir, origin, name); + print_version(pkg, "port", version, limchar, opt); + utstring_clear(cmd); + } +-- +2.15.1 +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712011410.vB1EAs3p080645>