[pacman-dev] CVS update of pacman-lib (9 files)

Aaron Griffin aaron at archlinux.org
Wed Mar 7 02:45:31 EST 2007


    Date: Wednesday, March 7, 2007 @ 02:45:31
  Author: aaron
    Path: /home/cvs-pacman/pacman-lib

Modified: lib/libalpm/alpm.h (1.80 -> 1.81) lib/libalpm/deps.c (1.76 -> 1.77)
          lib/libalpm/deps.h (1.19 -> 1.20)
          lib/libalpm/package.c (1.84 -> 1.85)
          lib/libalpm/trans.c (1.43 -> 1.44)
          lib/libalpm/versioncmp.c (1.17 -> 1.18)
          lib/libalpm/versioncmp.h (1.9 -> 1.10)
          src/pacman/deptest.c (1.16 -> 1.17) src/pacman/log.c (1.32 -> 1.33)

* Bug fix for makepkg dependency testing.  This requires that we
  expose alpm_splitdep and alpm_depcmp as public symbols
* Removed a duplicate strtrim for question responses


--------------------------+
 lib/libalpm/alpm.h       |    3 ++
 lib/libalpm/deps.c       |   22 +++++++++----------
 lib/libalpm/deps.h       |    1 
 lib/libalpm/package.c    |    2 -
 lib/libalpm/trans.c      |    2 -
 lib/libalpm/versioncmp.c |    2 -
 lib/libalpm/versioncmp.h |    2 -
 src/pacman/deptest.c     |   51 ++++++++++++++++++++++++++++++---------------
 src/pacman/log.c         |   13 -----------
 9 files changed, 52 insertions(+), 46 deletions(-)


Index: pacman-lib/lib/libalpm/alpm.h
diff -u pacman-lib/lib/libalpm/alpm.h:1.80 pacman-lib/lib/libalpm/alpm.h:1.81
--- pacman-lib/lib/libalpm/alpm.h:1.80	Mon Mar  5 20:21:41 2007
+++ pacman-lib/lib/libalpm/alpm.h	Wed Mar  7 02:45:30 2007
@@ -375,6 +375,9 @@
 	PM_DEP_TYPE_CONFLICT
 } pmdeptype_t;
 
+pmdepend_t *alpm_splitdep(const char *depstring);
+int alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep);
+
 const char *alpm_dep_get_target(pmdepmissing_t *miss);
 pmdeptype_t alpm_dep_get_type(pmdepmissing_t *miss);
 pmdepmod_t alpm_dep_get_mod(pmdepmissing_t *miss);
Index: pacman-lib/lib/libalpm/deps.c
diff -u pacman-lib/lib/libalpm/deps.c:1.76 pacman-lib/lib/libalpm/deps.c:1.77
--- pacman-lib/lib/libalpm/deps.c:1.76	Mon Mar  5 17:13:34 2007
+++ pacman-lib/lib/libalpm/deps.c	Wed Mar  7 02:45:30 2007
@@ -142,7 +142,7 @@
 			pmpkg_t *p = i->data;
 			_alpm_log(PM_LOG_DEBUG, "   sorting %s", alpm_pkg_get_name(p));
 			for(j = alpm_pkg_get_depends(p); j; j = j->next) {
-				pmdepend_t *depend = _alpm_splitdep(j->data);
+				pmdepend_t *depend = alpm_splitdep(j->data);
 				pmpkg_t *q = NULL;
 				if(depend == NULL) {
 					continue;
@@ -244,20 +244,20 @@
 				}
 				for(k = alpm_pkg_get_depends(p); k; k = k->next) {
 					/* don't break any existing dependencies (possible provides) */
-					pmdepend_t *depend = _alpm_splitdep(k->data);
+					pmdepend_t *depend = alpm_splitdep(k->data);
 					if(depend == NULL) {
 						continue;
 					}
 
 					/* if oldpkg satisfied this dep, and newpkg doesn't */
-					if(_alpm_depcmp(oldpkg, depend) && !_alpm_depcmp(newpkg, depend)) {
+					if(alpm_depcmp(oldpkg, depend) && !alpm_depcmp(newpkg, depend)) {
 						/* we've found a dep that was removed... see if any other package
 						 * still contains/provides the dep */
 						int satisfied = 0;
 						for(l = packages; l; l = l->next) {
 							pmpkg_t *pkg = l->data;
 
-							if(_alpm_depcmp(pkg, depend)) {
+							if(alpm_depcmp(pkg, depend)) {
 								_alpm_log(PM_LOG_DEBUG, _("checkdeps: dependency '%s' has moved from '%s' to '%s'"),
 													depend->name, alpm_pkg_get_name(oldpkg), alpm_pkg_get_name(pkg));
 								satisfied = 1;
@@ -276,7 +276,7 @@
 									continue;
 								}
 
-								if(_alpm_depcmp(pkg, depend)) {
+								if(alpm_depcmp(pkg, depend)) {
 									_alpm_log(PM_LOG_DEBUG, _("checkdeps: dependency '%s' satisfied by installed package '%s'"),
 														depend->name, alpm_pkg_get_name(pkg));
 									satisfied = 1;
@@ -313,7 +313,7 @@
 
 			for(j = alpm_pkg_get_depends(tp); j; j = j->next) {
 				/* split into name/version pairs */
-				pmdepend_t *depend = _alpm_splitdep((char*)j->data);
+				pmdepend_t *depend = alpm_splitdep((char*)j->data);
 				if(depend == NULL) {
 					continue;
 				}
@@ -322,7 +322,7 @@
 				/* check database for literal packages */
 				for(k = _alpm_db_get_pkgcache(db); k && !found; k = k->next) {
 					pmpkg_t *p = (pmpkg_t *)k->data;
-					found = _alpm_depcmp(p, depend);
+					found = alpm_depcmp(p, depend);
 				}
  				/* check database for provides matches */
  				if(!found) {
@@ -345,14 +345,14 @@
  							continue;
  						}
 
-						found = _alpm_depcmp(p, depend);
+						found = alpm_depcmp(p, depend);
 					}
 					FREELISTPTR(k);
 				}
  				/* check other targets */
  				for(k = packages; k && !found; k = k->next) {
  					pmpkg_t *p = k->data;
-					found = _alpm_depcmp(p, depend);
+					found = alpm_depcmp(p, depend);
 				}
 				/* else if still not found... */
 				if(!found) {
@@ -424,7 +424,7 @@
 	return(baddeps);
 }
 
-pmdepend_t *_alpm_splitdep(const char *depstring)
+pmdepend_t *alpm_splitdep(const char *depstring)
 {
 	pmdepend_t *depend;
 	char *ptr = NULL;
@@ -517,7 +517,7 @@
 	for(i = targs; i; i = i->next) {
 		pmpkg_t *pkg = i->data;
 		for(j = alpm_pkg_get_depends(pkg); j; j = j->next) {
-			pmdepend_t *depend = _alpm_splitdep(j->data);
+			pmdepend_t *depend = alpm_splitdep(j->data);
 			pmpkg_t *deppkg;
 			if(depend == NULL) {
 				continue;
Index: pacman-lib/lib/libalpm/deps.h
diff -u pacman-lib/lib/libalpm/deps.h:1.19 pacman-lib/lib/libalpm/deps.h:1.20
--- pacman-lib/lib/libalpm/deps.h:1.19	Sat Mar  3 04:43:16 2007
+++ pacman-lib/lib/libalpm/deps.h	Wed Mar  7 02:45:30 2007
@@ -49,7 +49,6 @@
 alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, pmtranstype_t mode);
 alpm_list_t *_alpm_checkdeps(pmtrans_t *trans, pmdb_t *db, pmtranstype_t op,
                              alpm_list_t *packages);
-pmdepend_t *_alpm_splitdep(const char *depstring);
 alpm_list_t *_alpm_removedeps(pmdb_t *db, alpm_list_t *targs);
 int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *syncpkg,
                       alpm_list_t *list, alpm_list_t *trail, pmtrans_t *trans,
Index: pacman-lib/lib/libalpm/package.c
diff -u pacman-lib/lib/libalpm/package.c:1.84 pacman-lib/lib/libalpm/package.c:1.85
--- pacman-lib/lib/libalpm/package.c:1.84	Mon Mar  5 17:13:34 2007
+++ pacman-lib/lib/libalpm/package.c	Wed Mar  7 02:45:30 2007
@@ -552,7 +552,7 @@
 			if(!j->data) {
 				continue;
 			}
-			dep = _alpm_splitdep(j->data);
+			dep = alpm_splitdep(j->data);
 			if(dep == NULL) {
 					continue;
 			}
Index: pacman-lib/lib/libalpm/trans.c
diff -u pacman-lib/lib/libalpm/trans.c:1.43 pacman-lib/lib/libalpm/trans.c:1.44
--- pacman-lib/lib/libalpm/trans.c:1.43	Mon Mar  5 20:21:42 2007
+++ pacman-lib/lib/libalpm/trans.c	Wed Mar  7 02:45:30 2007
@@ -272,7 +272,7 @@
 
 	localdb = alpm_option_get_localdb();
 	for(i = depends; i; i = i->next) {
-		pmdepend_t* dep = _alpm_splitdep(i->data);
+		pmdepend_t* dep = alpm_splitdep(i->data);
 		if(dep == NULL) {
 			continue;
 		}
Index: pacman-lib/lib/libalpm/versioncmp.c
diff -u pacman-lib/lib/libalpm/versioncmp.c:1.17 pacman-lib/lib/libalpm/versioncmp.c:1.18
--- pacman-lib/lib/libalpm/versioncmp.c:1.17	Mon Mar  5 17:13:34 2007
+++ pacman-lib/lib/libalpm/versioncmp.c	Wed Mar  7 02:45:30 2007
@@ -247,7 +247,7 @@
 	return(*one ? 1 : -1);
 }
 
-int _alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep)
+int alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep)
 {
 	int equal = 0;
 
Index: pacman-lib/lib/libalpm/versioncmp.h
diff -u pacman-lib/lib/libalpm/versioncmp.h:1.9 pacman-lib/lib/libalpm/versioncmp.h:1.10
--- pacman-lib/lib/libalpm/versioncmp.h:1.9	Mon Mar  5 20:21:42 2007
+++ pacman-lib/lib/libalpm/versioncmp.h	Wed Mar  7 02:45:30 2007
@@ -26,10 +26,8 @@
 #include "deps.h"
 #include "package.h"
 
-int _alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep);
 int _alpm_versioncmp(const char *a, const char *b);
 
-
 #endif /* _ALPM_VERSIONCMP_H */
 
 /* vim: set ts=2 sw=2 noet: */
Index: pacman-lib/src/pacman/deptest.c
diff -u pacman-lib/src/pacman/deptest.c:1.16 pacman-lib/src/pacman/deptest.c:1.17
--- pacman-lib/src/pacman/deptest.c:1.16	Mon Mar  5 17:13:35 2007
+++ pacman-lib/src/pacman/deptest.c	Wed Mar  7 02:45:31 2007
@@ -38,35 +38,54 @@
 
 extern config_t *config;
 
+int chk_package(const char *pkgname, pmdepend_t *dep)
+{
+	pmpkg_t *pkg;
+	pkg = alpm_db_get_pkg(alpm_option_get_localdb(), pkgname);
+
+	if(!pkg || !alpm_depcmp(pkg, dep)) {
+		return(1);
+	}
+	return(0);
+}
+
 int pacman_deptest(alpm_list_t *targets)
 {
 	int retval = 0;
-	pmdb_t *local;
-	pmpkg_t *pkg;
-	alpm_list_t *i, *provides;
+	alpm_list_t *i;
 
 	if(targets == NULL) {
 		return(0);
 	}
 	
-	local = alpm_option_get_localdb();
-
 	for(i = targets; i; i = alpm_list_next(i)) {
-		const char *pkgname;
-	 
-		pkgname = alpm_list_getdata(i);
-		/* find this package in the local DB */
-		pkg = alpm_db_get_pkg(local, pkgname);
+		int found = 0;
+		pmdepend_t *dep;
+		const char *target;
+		alpm_list_t *j, *provides;
+
+		target = alpm_list_getdata(i);
+		dep = alpm_splitdep(target);
 
-		if(!pkg) {
+		if(chk_package(target, dep) == 0) {
+			found = 1;
+		} else {
 			/* not found, can we find anything that provides this in the local DB? */
-			provides = alpm_db_whatprovides(local, pkgname);
-			if(!provides) {
-				/* nope, must be missing */
-				MSG(NL, _("requires: %s"), pkgname);
-				retval = 1;
+			provides = alpm_db_whatprovides(alpm_option_get_localdb(), target);
+			for(j = provides; j; j = alpm_list_next(j)) {
+				const char *provide;
+				provide = alpm_list_getdata(j);
+
+				if(chk_package(provide, dep) == 0) {
+					found = 1;
+				}
 			}
 		}
+
+		if(!found) {
+			MSG(NL, _("requires: %s"), target);
+			retval = 1;
+		}
 	}
 	return(retval);
 }
Index: pacman-lib/src/pacman/log.c
diff -u pacman-lib/src/pacman/log.c:1.32 pacman-lib/src/pacman/log.c:1.33
--- pacman-lib/src/pacman/log.c:1.32	Mon Mar  5 17:13:35 2007
+++ pacman-lib/src/pacman/log.c	Wed Mar  7 02:45:31 2007
@@ -184,19 +184,6 @@
 	pm_fprintf(stderr, NL, str); \
 
 	if(fgets(response, 32, stdin)) {
-		/* trim whitespace and newlines */
-		char *pch = response;
-		while(isspace(*pch)) {
-			pch++;
-		}
-		if(pch != response) {
-			memmove(response, pch, strlen(pch) + 1);
-		}
-		pch = response + strlen(response) - 1;
-		while(isspace(*pch)) {
-			pch--;
-		}
-		*++pch = 0;
 		if(strlen(response) != 0) {
 			strtrim(response);
 		}




More information about the pacman-dev mailing list