Lines Matching refs:pkg

69 pkg_get_parent_dir(pkgconf_pkg_t *pkg)  in pkg_get_parent_dir()  argument
73 pkgconf_strlcpy(buf, pkg->filename, sizeof buf); in pkg_get_parent_dir()
142 typedef void (*pkgconf_pkg_parser_keyword_func_t)(pkgconf_client_t *client, pkgconf_pkg_t *pkg, con…
156 pkgconf_pkg_parser_tuple_func(pkgconf_client_t *client, pkgconf_pkg_t *pkg, const char *keyword, co… in pkgconf_pkg_parser_tuple_func() argument
161 char **dest = (char **)((char *) pkg + offset); in pkgconf_pkg_parser_tuple_func()
162 *dest = pkgconf_tuple_parse(client, &pkg->vars, value, pkg->flags); in pkgconf_pkg_parser_tuple_func()
166 pkgconf_pkg_parser_version_func(pkgconf_client_t *client, pkgconf_pkg_t *pkg, const char *keyword, … in pkgconf_pkg_parser_version_func() argument
172 char **dest = (char **)((char *) pkg + offset); in pkgconf_pkg_parser_version_func()
175 p = pkgconf_tuple_parse(client, &pkg->vars, value, pkg->flags); in pkgconf_pkg_parser_version_func()
183 …_SPECIFIER ": warning: malformed version field with whitespace, trimming to [%s]\n", pkg->filename, in pkgconf_pkg_parser_version_func()
191 pkgconf_pkg_parser_fragment_func(pkgconf_client_t *client, pkgconf_pkg_t *pkg, const char *keyword,… in pkgconf_pkg_parser_fragment_func() argument
193 pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset); in pkgconf_pkg_parser_fragment_func()
197 char *pkg_sysroot_dir = pkgconf_tuple_find(client, &pkg->vars, "pc_sysrootdir"); in pkgconf_pkg_parser_fragment_func()
201 bool ret = pkgconf_fragment_parse(client, dest, &pkg->vars, value, pkg->flags); in pkgconf_pkg_parser_fragment_func()
206 …IFIER ": warning: unable to parse field '%s' into an argument vector, value [%s]\n", pkg->filename, in pkgconf_pkg_parser_fragment_func()
212 pkgconf_pkg_parser_dependency_func(pkgconf_client_t *client, pkgconf_pkg_t *pkg, const char *keywor… in pkgconf_pkg_parser_dependency_func() argument
217 pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset); in pkgconf_pkg_parser_dependency_func()
218 pkgconf_dependency_parse(client, pkg, dest, value, 0); in pkgconf_pkg_parser_dependency_func()
223 pkgconf_pkg_parser_internal_dependency_func(pkgconf_client_t *client, pkgconf_pkg_t *pkg, const cha… in pkgconf_pkg_parser_internal_dependency_func() argument
228 pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset); in pkgconf_pkg_parser_internal_dependency_func()
229 pkgconf_dependency_parse(client, pkg, dest, value, PKGCONF_PKG_DEPF_INTERNAL); in pkgconf_pkg_parser_internal_dependency_func()
234 pkgconf_pkg_parser_private_dependency_func(pkgconf_client_t *client, pkgconf_pkg_t *pkg, const char… in pkgconf_pkg_parser_private_dependency_func() argument
239 pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset); in pkgconf_pkg_parser_private_dependency_func()
240 pkgconf_dependency_parse(client, pkg, dest, value, PKGCONF_PKG_DEPF_PRIVATE); in pkgconf_pkg_parser_private_dependency_func()
266 pkgconf_pkg_t *pkg = opaque; in pkgconf_pkg_parser_keyword_set() local
275 pair->func(pkg->owner, pkg, keyword, lineno, pair->offset, value); in pkgconf_pkg_parser_keyword_set()
279 determine_prefix(const pkgconf_pkg_t *pkg, char *buf, size_t buflen) in determine_prefix() argument
283 pkgconf_strlcpy(buf, pkg->filename, buflen); in determine_prefix()
390 pkgconf_pkg_t *pkg = opaque; in pkgconf_pkg_parser_value_set() local
401 if (pkg->owner->flags & PKGCONF_PKG_PKGF_REDEFINE_PREFIX && pkg->orig_prefix in pkgconf_pkg_parser_value_set()
402 …&& is_path_prefix_equal(canonicalized_value, pkg->orig_prefix->value, strlen(pkg->orig_prefix->val… in pkgconf_pkg_parser_value_set()
406 pkgconf_strlcpy(newvalue, pkg->prefix->value, sizeof newvalue); in pkgconf_pkg_parser_value_set()
407 pkgconf_strlcat(newvalue, canonicalized_value + strlen(pkg->orig_prefix->value), sizeof newvalue); in pkgconf_pkg_parser_value_set()
408 pkgconf_tuple_add(pkg->owner, &pkg->vars, keyword, newvalue, false, pkg->flags); in pkgconf_pkg_parser_value_set()
410 …else if (strcmp(keyword, pkg->owner->prefix_varname) || !(pkg->owner->flags & PKGCONF_PKG_PKGF_RED… in pkgconf_pkg_parser_value_set()
411 pkgconf_tuple_add(pkg->owner, &pkg->vars, keyword, value, true, pkg->flags); in pkgconf_pkg_parser_value_set()
415 const char *relvalue = determine_prefix(pkg, pathbuf, sizeof pathbuf); in pkgconf_pkg_parser_value_set()
420pkg->orig_prefix = pkgconf_tuple_add(pkg->owner, &pkg->vars, "orig_prefix", canonicalized_value, t… in pkgconf_pkg_parser_value_set()
421pkg->prefix = pkgconf_tuple_add(pkg->owner, &pkg->vars, keyword, prefix_value, false, pkg->flags); in pkgconf_pkg_parser_value_set()
425 pkgconf_tuple_add(pkg->owner, &pkg->vars, keyword, value, true, pkg->flags); in pkgconf_pkg_parser_value_set()
445 static void pkg_warn_func(pkgconf_pkg_t *pkg, const char *fmt, ...) PRINTFLIKE(2, 3);
448 pkg_warn_func(pkgconf_pkg_t *pkg, const char *fmt, ...) in pkg_warn_func() argument
457 pkgconf_warn(pkg->owner, "%s", buf); in pkg_warn_func()
461 pkgconf_pkg_validate(const pkgconf_client_t *client, const pkgconf_pkg_t *pkg) in pkgconf_pkg_validate() argument
468 char **p = (char **)((char *) pkg + pkgconf_pkg_validations[i].offset); in pkgconf_pkg_validate()
473 …pkgconf_warn(client, "%s: warning: file does not declare a `%s' field\n", pkg->filename, pkgconf_p… in pkgconf_pkg_validate()
481 pkg_free_object(pkgconf_pkg_t *pkg) in pkg_free_object() argument
483 if (pkg->flags & PKGCONF_PKG_PROPF_PRELOADED) in pkg_free_object()
484 pkgconf_node_delete(&pkg->preload_node, &pkg->owner->preloaded_pkgs); in pkg_free_object()
486 if (pkg->id != NULL) in pkg_free_object()
487 free(pkg->id); in pkg_free_object()
489 if (pkg->filename != NULL) in pkg_free_object()
490 free(pkg->filename); in pkg_free_object()
492 if (pkg->realname != NULL) in pkg_free_object()
493 free(pkg->realname); in pkg_free_object()
495 if (pkg->version != NULL) in pkg_free_object()
496 free(pkg->version); in pkg_free_object()
498 if (pkg->description != NULL) in pkg_free_object()
499 free(pkg->description); in pkg_free_object()
501 if (pkg->url != NULL) in pkg_free_object()
502 free(pkg->url); in pkg_free_object()
504 if (pkg->pc_filedir != NULL) in pkg_free_object()
505 free(pkg->pc_filedir); in pkg_free_object()
507 if (pkg->license != NULL) in pkg_free_object()
508 free(pkg->license); in pkg_free_object()
510 if (pkg->maintainer != NULL) in pkg_free_object()
511 free(pkg->maintainer); in pkg_free_object()
513 if (pkg->copyright != NULL) in pkg_free_object()
514 free(pkg->copyright); in pkg_free_object()
516 if (pkg->why != NULL) in pkg_free_object()
517 free(pkg->why); in pkg_free_object()
519 free(pkg); in pkg_free_object()
523 pkg_free_lists(pkgconf_pkg_t *pkg) in pkg_free_lists() argument
525 pkgconf_dependency_free(&pkg->required); in pkg_free_lists()
526 pkgconf_dependency_free(&pkg->requires_private); in pkg_free_lists()
527 pkgconf_dependency_free(&pkg->conflicts); in pkg_free_lists()
528 pkgconf_dependency_free(&pkg->provides); in pkg_free_lists()
530 pkgconf_fragment_free(&pkg->cflags); in pkg_free_lists()
531 pkgconf_fragment_free(&pkg->cflags_private); in pkg_free_lists()
532 pkgconf_fragment_free(&pkg->libs); in pkg_free_lists()
533 pkgconf_fragment_free(&pkg->libs_private); in pkg_free_lists()
535 pkgconf_tuple_free(&pkg->vars); in pkg_free_lists()
555 pkgconf_pkg_t *pkg; in pkgconf_pkg_new_from_path() local
567 pkg = calloc(1, sizeof(pkgconf_pkg_t)); in pkgconf_pkg_new_from_path()
568 if (pkg == NULL) in pkgconf_pkg_new_from_path()
574 pkg->owner = client; in pkgconf_pkg_new_from_path()
575 pkg->flags = flags; in pkgconf_pkg_new_from_path()
577 pkg->filename = strdup(filename); in pkgconf_pkg_new_from_path()
578 if (pkg->filename == NULL) in pkgconf_pkg_new_from_path()
581 pkg_free_object(pkg); in pkgconf_pkg_new_from_path()
585 pkg->pc_filedir = pkg_get_parent_dir(pkg); in pkgconf_pkg_new_from_path()
586 if (pkg->pc_filedir == NULL) in pkgconf_pkg_new_from_path()
589 pkg_free_object(pkg); in pkgconf_pkg_new_from_path()
593 char *pc_filedir_value = convert_path_to_value(pkg->pc_filedir); in pkgconf_pkg_new_from_path()
594 pkgconf_tuple_add(client, &pkg->vars, "pcfiledir", pc_filedir_value, true, pkg->flags); in pkgconf_pkg_new_from_path()
601 …if (client->sysroot_dir && strncmp(pkg->pc_filedir, client->sysroot_dir, strlen(client->sysroot_di… in pkgconf_pkg_new_from_path()
602 pkgconf_tuple_add(client, &pkg->vars, "pc_sysrootdir", "", false, pkg->flags); in pkgconf_pkg_new_from_path()
605 if ((idptr = strrchr(pkg->filename, PKG_DIR_SEP_S)) != NULL) in pkgconf_pkg_new_from_path()
608 idptr = pkg->filename; in pkgconf_pkg_new_from_path()
620 pkg->id = strdup(idptr); in pkgconf_pkg_new_from_path()
621 if (pkg->id == NULL) in pkgconf_pkg_new_from_path()
624 pkg_free_lists(pkg); in pkgconf_pkg_new_from_path()
625 pkg_free_object(pkg); in pkgconf_pkg_new_from_path()
629 idptr = strrchr(pkg->id, '.'); in pkgconf_pkg_new_from_path()
633 if (pkg->flags & PKGCONF_PKG_PROPF_UNINSTALLED) in pkgconf_pkg_new_from_path()
635 idptr = strrchr(pkg->id, '-'); in pkgconf_pkg_new_from_path()
640 …pkgconf_parser_parse(f, pkg, pkg_parser_funcs, (pkgconf_parser_warn_func_t) pkg_warn_func, pkg->fi… in pkgconf_pkg_new_from_path()
643 if (!pkgconf_pkg_validate(client, pkg)) in pkgconf_pkg_new_from_path()
645 pkgconf_warn(client, "%s: warning: skipping invalid file\n", pkg->filename); in pkgconf_pkg_new_from_path()
646 pkgconf_pkg_free(client, pkg); in pkgconf_pkg_new_from_path()
650 …pkgconf_dependency_t *dep = pkgconf_dependency_add(client, &pkg->provides, pkg->id, pkg->version, … in pkgconf_pkg_new_from_path()
653 return pkgconf_pkg_ref(client, pkg); in pkgconf_pkg_new_from_path()
668 pkgconf_pkg_free(pkgconf_client_t *client, pkgconf_pkg_t *pkg) in pkgconf_pkg_free() argument
670 if (pkg == NULL) in pkgconf_pkg_free()
673 if (pkg->flags & PKGCONF_PKG_PROPF_STATIC && !(pkg->flags & PKGCONF_PKG_PROPF_VIRTUAL)) in pkgconf_pkg_free()
676 pkgconf_cache_remove(client, pkg); in pkgconf_pkg_free()
678 pkg_free_lists(pkg); in pkgconf_pkg_free()
680 if (pkg->flags & PKGCONF_PKG_PROPF_VIRTUAL) in pkgconf_pkg_free()
683 pkg_free_object(pkg); in pkgconf_pkg_free()
699 pkgconf_pkg_ref(pkgconf_client_t *client, pkgconf_pkg_t *pkg) in pkgconf_pkg_ref() argument
701 if (pkg->owner != NULL && pkg->owner != client) in pkgconf_pkg_ref()
702 …E(client, "WTF: client %p refers to package %p owned by other client %p", client, pkg, pkg->owner); in pkgconf_pkg_ref()
704 pkg->refcount++; in pkgconf_pkg_ref()
705 PKGCONF_TRACE(client, "%s refcount@%p: %d", pkg->id, pkg, pkg->refcount); in pkgconf_pkg_ref()
707 return pkg; in pkgconf_pkg_ref()
722 pkgconf_pkg_unref(pkgconf_client_t *client, pkgconf_pkg_t *pkg) in pkgconf_pkg_unref() argument
724 if (pkg == NULL) { in pkgconf_pkg_unref()
729 if (pkg->owner != NULL && pkg->owner != client) in pkgconf_pkg_unref()
730 …RACE(client, "WTF: client %p unrefs package %p owned by other client %p", client, pkg, pkg->owner); in pkgconf_pkg_unref()
732 pkg->refcount--; in pkgconf_pkg_unref()
733 PKGCONF_TRACE(pkg->owner, "%s refcount@%p: %d", pkg->id, pkg, pkg->refcount); in pkgconf_pkg_unref()
735 if (pkg->refcount <= 0) in pkgconf_pkg_unref()
736 pkgconf_pkg_free(pkg->owner, pkg); in pkgconf_pkg_unref()
742 pkgconf_pkg_t *pkg = NULL; in pkgconf_pkg_try_specific_path() local
752 pkg = pkgconf_pkg_new_from_path(client, uninst_locbuf, PKGCONF_PKG_PROPF_UNINSTALLED); in pkgconf_pkg_try_specific_path()
754 if (pkg == NULL) in pkgconf_pkg_try_specific_path()
755 pkg = pkgconf_pkg_new_from_path(client, locbuf, 0); in pkgconf_pkg_try_specific_path()
757 if (pkg != NULL) in pkgconf_pkg_try_specific_path()
758 …PKGCONF_TRACE(client, "found%s: %s", pkg->flags & PKGCONF_PKG_PROPF_UNINSTALLED ? " (uninstalled)"… in pkgconf_pkg_try_specific_path()
760 return pkg; in pkgconf_pkg_try_specific_path()
779 pkgconf_pkg_t *pkg; in pkgconf_pkg_scan_dir() local
790 pkg = pkgconf_pkg_new_from_path(client, filebuf, 0); in pkgconf_pkg_scan_dir()
791 if (pkg != NULL) in pkgconf_pkg_scan_dir()
793 if (func(pkg, data)) in pkgconf_pkg_scan_dir()
795 outpkg = pkg; in pkgconf_pkg_scan_dir()
799 pkgconf_pkg_unref(client, pkg); in pkgconf_pkg_scan_dir()
827 pkgconf_pkg_t *pkg; in pkgconf_scan_all() local
832 pkg = n->data; in pkgconf_scan_all()
837 pkgconf_pkg_ref(client, pkg); in pkgconf_scan_all()
839 if (func(pkg, data)) in pkgconf_scan_all()
840 return pkg; in pkgconf_scan_all()
842 pkgconf_pkg_unref(client, pkg); in pkgconf_scan_all()
851 if ((pkg = pkgconf_pkg_scan_dir(client, pnode->path, data, func)) != NULL) in pkgconf_scan_all()
852 return pkg; in pkgconf_scan_all()
865 pkgconf_pkg_t *pkg = n->data; in search_preload_list() local
867 if (!strcmp(pkg->id, name)) in search_preload_list()
869 pkgconf_pkg_ref(client, pkg); in search_preload_list()
870 return pkg; in search_preload_list()
892 pkgconf_pkg_t *pkg = NULL; in pkgconf_pkg_find() local
903 pkg = pkgconf_pkg_new_from_path(client, name, 0); in pkgconf_pkg_find()
904 if (pkg != NULL) in pkgconf_pkg_find()
909 client->unveil_handler(client, pkg->pc_filedir, "r"); in pkgconf_pkg_find()
911 pkgconf_path_add(pkg->pc_filedir, &client->dir_list, true); in pkgconf_pkg_find()
917 if ((pkg = pkgconf_builtin_pkg_get(name)) != NULL) in pkgconf_pkg_find()
920 return pkg; in pkgconf_pkg_find()
926 if ((pkg = pkgconf_cache_lookup(client, name)) != NULL) in pkgconf_pkg_find()
929 return pkg; in pkgconf_pkg_find()
934 if ((pkg = search_preload_list(client, name)) != NULL) in pkgconf_pkg_find()
937 return pkg; in pkgconf_pkg_find()
944 pkg = pkgconf_pkg_try_specific_path(client, pnode->path, name); in pkgconf_pkg_find()
945 if (pkg != NULL) in pkgconf_pkg_find()
950 pkgconf_cache_add(client, pkg); in pkgconf_pkg_find()
952 return pkg; in pkgconf_pkg_find()
1153 pkgconf_pkg_t *pkg; member
1186 return (pair != NULL) ? pair->pkg : NULL; in pkgconf_builtin_pkg_get()
1447 pkgconf_pkg_scan_provides_entry(const pkgconf_pkg_t *pkg, const pkgconf_pkg_scan_providers_ctx_t *c… in pkgconf_pkg_scan_provides_entry() argument
1452 PKGCONF_FOREACH_LIST_ENTRY(pkg->provides.head, node) in pkgconf_pkg_scan_provides_entry()
1470 pkgconf_pkg_t *pkg; in pkgconf_pkg_scan_providers() local
1475pkg = pkgconf_scan_all(client, &ctx, (pkgconf_pkg_iteration_func_t) pkgconf_pkg_scan_provides_entr… in pkgconf_pkg_scan_providers()
1476 if (pkg != NULL) in pkgconf_pkg_scan_providers()
1478 pkgdep->match = pkgconf_pkg_ref(client, pkg); in pkgconf_pkg_scan_providers()
1479 return pkg; in pkgconf_pkg_scan_providers()
1505 pkgconf_pkg_t *pkg = NULL; in pkgconf_pkg_verify_dependency() local
1518 pkg = pkgconf_pkg_find(client, pkgdep->package); in pkgconf_pkg_verify_dependency()
1519 if (pkg == NULL) in pkgconf_pkg_verify_dependency()
1529 pkg = pkgconf_pkg_scan_providers(client, pkgdep, eflags); in pkgconf_pkg_verify_dependency()
1533 if (pkg->id == NULL) in pkgconf_pkg_verify_dependency()
1534 pkg->id = strdup(pkgdep->package); in pkgconf_pkg_verify_dependency()
1536 if (pkgconf_pkg_comparator_impls[pkgdep->compare](pkg->version, pkgdep->version) != true) in pkgconf_pkg_verify_dependency()
1542 pkgdep->match = pkgconf_pkg_ref(client, pkg); in pkgconf_pkg_verify_dependency()
1545 if (pkg != NULL && pkg->why == NULL) in pkgconf_pkg_verify_dependency()
1546 pkg->why = strdup(pkgdep->package); in pkgconf_pkg_verify_dependency()
1548 return pkg; in pkgconf_pkg_verify_dependency()
1572 pkgconf_pkg_report_graph_error(pkgconf_client_t *client, pkgconf_pkg_t *parent, pkgconf_pkg_t *pkg,… in pkgconf_pkg_report_graph_error() argument
1596 if (pkg != NULL) in pkgconf_pkg_report_graph_error()
1598 node->package, pkg->version, pkgconf_pkg_get_comparator(node), node->version); in pkgconf_pkg_report_graph_error()
1601 if (pkg != NULL) in pkgconf_pkg_report_graph_error()
1602 pkgconf_pkg_unref(client, pkg); in pkgconf_pkg_report_graph_error()
1819 pkgconf_pkg_cflags_collect(pkgconf_client_t *client, pkgconf_pkg_t *pkg, void *data) in pkgconf_pkg_cflags_collect() argument
1824 PKGCONF_FOREACH_LIST_ENTRY(pkg->cflags.head, node) in pkgconf_pkg_cflags_collect()
1832 pkgconf_pkg_cflags_private_collect(pkgconf_client_t *client, pkgconf_pkg_t *pkg, void *data) in pkgconf_pkg_cflags_private_collect() argument
1837 PKGCONF_FOREACH_LIST_ENTRY(pkg->cflags_private.head, node) in pkgconf_pkg_cflags_private_collect()
1883 pkgconf_pkg_libs_collect(pkgconf_client_t *client, pkgconf_pkg_t *pkg, void *data) in pkgconf_pkg_libs_collect() argument
1888 …if (!(client->flags & PKGCONF_PKG_PKGF_SEARCH_PRIVATE) && pkg->flags & PKGCONF_PKG_PROPF_VISITED_P… in pkgconf_pkg_libs_collect()
1891 PKGCONF_FOREACH_LIST_ENTRY(pkg->libs.head, node) in pkgconf_pkg_libs_collect()
1899 PKGCONF_FOREACH_LIST_ENTRY(pkg->libs_private.head, node) in pkgconf_pkg_libs_collect()