diff options
-rw-r--r-- | lib/libalpm/alpm.h | 1 | ||||
-rw-r--r-- | lib/libalpm/deps.c | 12 | ||||
-rw-r--r-- | scripts/makepkg.sh.in | 2 | ||||
-rw-r--r-- | src/pacman/deptest.c | 17 |
4 files changed, 21 insertions, 11 deletions
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index a7fcb5c2..268437ba 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -357,6 +357,7 @@ pmdeptype_t alpm_dep_get_type(pmdepmissing_t *miss); pmdepmod_t alpm_dep_get_mod(pmdepmissing_t *miss); const char *alpm_dep_get_name(pmdepmissing_t *miss); const char *alpm_dep_get_version(pmdepmissing_t *miss); +const char *alpm_depend_get_name(pmdepend_t *dep); /* * File conflicts diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index 524136bd..794fbdbc 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -766,4 +766,16 @@ const char SYMEXPORT *alpm_dep_get_version(pmdepmissing_t *miss) return miss->depend.version; } + +const char SYMEXPORT *alpm_depend_get_name(pmdepend_t *dep) +{ + ALPM_LOG_FUNC; + + /* Sanity checks */ + ASSERT(handle != NULL, return(NULL)); + ASSERT(dep != NULL, return(NULL)); + + return dep->name; +} + /* vim: set ts=2 sw=2 noet: */ diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 70b42a58..533822d2 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -294,7 +294,7 @@ get_downloadclient() { check_deps() { [ $# -gt 0 ] || return - pmout=$(pacman $PACMAN_OPTS -T $*) + pmout=$(pacman $PACMAN_OPTS -T "$@") ret=$? if [ $ret -eq 127 ]; then #unresolved deps echo "$pmout" diff --git a/src/pacman/deptest.c b/src/pacman/deptest.c index 5addfb32..0f149b28 100644 --- a/src/pacman/deptest.c +++ b/src/pacman/deptest.c @@ -35,6 +35,7 @@ extern config_t *config; +/* TODO: This should use _alpm_checkdeps() */ int pacman_deptest(alpm_list_t *targets) { int retval = 0; @@ -52,20 +53,16 @@ int pacman_deptest(alpm_list_t *targets) alpm_list_t *j, *provides; target = alpm_list_getdata(i); - - /* splitdep modifies the string... we'll compensate for now */ - char *saved_target = NULL; - saved_target = calloc(strlen(target)+1, sizeof(char)); - strncpy(saved_target, target, strlen(target)); - dep = alpm_splitdep(target); - pkg = alpm_db_get_pkg(alpm_option_get_localdb(), target); + pkg = alpm_db_get_pkg(alpm_option_get_localdb(), + alpm_depend_get_name(dep)); if(pkg && alpm_depcmp(pkg, dep)) { found = 1; } else { /* not found, can we find anything that provides this in the local DB? */ - provides = alpm_db_whatprovides(alpm_option_get_localdb(), target); + provides = alpm_db_whatprovides(alpm_option_get_localdb(), + alpm_depend_get_name(dep)); for(j = provides; j; j = alpm_list_next(j)) { pmpkg_t *pkg; pkg = alpm_list_getdata(j); @@ -78,10 +75,10 @@ int pacman_deptest(alpm_list_t *targets) } if(!found) { - printf("%s\n", saved_target); + printf("%s\n", target); retval = 127; } - free(saved_target); + free(dep); } return(retval); } |