Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Aug 2012 21:59: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: r302969 - in head/devel/pkgconf: . files
Message-ID:  <201208222159.q7MLxs2D004920@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Wed Aug 22 21:59:54 2012
New Revision: 302969
URL: http://svn.freebsd.org/changeset/ports/302969

Log:
  - fix compatibility with pkg-config when the .pc files have an empty or non
    existent Libs or Cflags entry
  
  Reported by:	avg, mezz, Luca Pizzamiglio <luca.pizzamiglio@gmail.com>
  Tested by:	avg, mezz, Luca Pizzamiglio <luca.pizzamiglio@gmail.com>
  Obtain from: 	pkgconf git

Added:
  head/devel/pkgconf/files/
  head/devel/pkgconf/files/patch-fix-empy-libs-and-cflags   (contents, props changed)
Modified:
  head/devel/pkgconf/Makefile

Modified: head/devel/pkgconf/Makefile
==============================================================================
--- head/devel/pkgconf/Makefile	Wed Aug 22 21:55:54 2012	(r302968)
+++ head/devel/pkgconf/Makefile	Wed Aug 22 21:59:54 2012	(r302969)
@@ -7,6 +7,7 @@
 
 PORTNAME=	pkgconf
 PORTVERSION=	0.8.7
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://tortois.es/~nenolod/distfiles/ \
 		http://files.etoilebsd.net/pkgconf/

Added: head/devel/pkgconf/files/patch-fix-empy-libs-and-cflags
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/pkgconf/files/patch-fix-empy-libs-and-cflags	Wed Aug 22 21:59:54 2012	(r302969)
@@ -0,0 +1,125 @@
+diff --git main.c main.c
+index dcde276..d807bf3 100644
+--- main.c
++++ main.c
+@@ -306,15 +306,19 @@ static bool
+ apply_cflags(pkg_t *world, void *list_head, int maxdepth, unsigned int flags)
+ {
+ 	pkg_fragment_t **head = list_head;
+-	pkg_fragment_t *list;
++	int eflag;
+ 
+-	list = pkg_cflags(world, head, maxdepth, flags | PKGF_SEARCH_PRIVATE);
+-	if (list == NULL)
++	eflag = pkg_cflags(world, head, maxdepth, flags | PKGF_SEARCH_PRIVATE);
++	if (eflag != PKG_ERRF_OK)
+ 		return false;
+ 
+-	print_cflags(list);
++	if (*head == NULL)
++		return true;
++
++	print_cflags(*head);
++
++	pkg_fragment_free(*head);
+ 
+-	pkg_fragment_free(list);
+ 	return true;
+ }
+ 
+@@ -322,14 +326,18 @@ static bool
+ apply_libs(pkg_t *world, void *list_head, int maxdepth, unsigned int flags)
+ {
+ 	pkg_fragment_t **head = list_head;
+-	pkg_fragment_t *list;
++	int eflag;
+ 
+-	list = pkg_libs(world, head, maxdepth, flags);
+-	if (list == NULL)
++	eflag = pkg_libs(world, head, maxdepth, flags);
++	if (eflag != PKG_ERRF_OK)
+ 		return false;
+-	print_libs(list);
+ 
+-	pkg_fragment_free(list);
++	if (*head == NULL)
++		return true;
++
++	print_libs(*head);
++
++	pkg_fragment_free(*head);
+ 	return true;
+ }
+ 
+diff --git pkg.c pkg.c
+index 8f0688d..c1667c3 100644
+--- pkg.c
++++ pkg.c
+@@ -853,7 +853,7 @@ pkg_cflags_collect(pkg_t *pkg, void *data, unsigned int flags)
+ 		*list = pkg_fragment_copy(*list, frag);
+ }
+ 
+-pkg_fragment_t *
++int
+ pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
+ {
+ 	int eflag;
+@@ -863,10 +863,10 @@ pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
+ 	if (eflag != PKG_ERRF_OK)
+ 	{
+ 		pkg_fragment_free(*list);
+-		return NULL;
++		*list = NULL;
+ 	}
+ 
+-	return *list;
++	return eflag;
+ }
+ 
+ static void
+@@ -891,7 +891,7 @@ pkg_libs_private_collect(pkg_t *pkg, void *data, unsigned int flags)
+ 		*list = pkg_fragment_copy(*list, frag);
+ }
+ 
+-pkg_fragment_t *
++int
+ pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
+ {
+ 	int eflag;
+@@ -901,7 +901,8 @@ pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
+ 	if (eflag != PKG_ERRF_OK)
+ 	{
+ 		pkg_fragment_free(*list);
+-		return NULL;
++		*list = NULL;
++		return eflag;
+ 	}
+ 
+ 	if (flags & PKGF_MERGE_PRIVATE_FRAGMENTS)
+@@ -910,9 +911,9 @@ pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
+ 		if (eflag != PKG_ERRF_OK)
+ 		{
+ 			pkg_fragment_free(*list);
+-			return NULL;
++			*list = NULL;
+ 		}
+ 	}
+ 
+-	return *list;
++	return eflag;
+ }
+diff --git pkg.h pkg.h
+index 3ddb2d1..1a3bf37 100644
+--- pkg.h
++++ pkg.h
+@@ -134,8 +134,8 @@ unsigned int pkg_verify_graph(pkg_t *root, int depth, unsigned int flags);
+ int pkg_compare_version(const char *a, const char *b);
+ pkg_t *pkg_verify_dependency(pkg_dependency_t *pkgdep, unsigned int flags, unsigned int *eflags);
+ const char *pkg_get_comparator(pkg_dependency_t *pkgdep);
+-pkg_fragment_t *pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
+-pkg_fragment_t *pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
++int pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
++int pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
+ 
+ /* parse.c */
+ pkg_t *pkg_new_from_file(const char *path, FILE *f);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208222159.q7MLxs2D004920>