31 #include "xbps_api_impl.h"
53 prop_object_iterator_t iter;
57 if ((rv = xbps_pkgdb_init(xhp)) != 0)
60 iter = prop_array_iterator(xhp->pkgdb);
62 while ((obj = prop_object_iterator_next(iter))) {
63 prop_dictionary_get_cstring_nocopy(obj,
"pkgname", &pkgname);
66 xbps_dbg_printf(xhp,
"%s: failed to configure %s: %s\n",
67 __func__, pkgname, strerror(rv));
71 prop_object_iterator_release(iter);
86 prop_dictionary_t pkgd, pkgmetad;
87 const char *version, *pkgver;
92 assert(pkgname != NULL);
98 prop_dictionary_get_cstring_nocopy(pkgd,
"version", &version);
99 prop_dictionary_get_cstring_nocopy(pkgd,
"pkgver", &pkgver);
102 xbps_dbg_printf(xhp,
"%s: state %d rv %d\n", pkgname, state, rv);
104 xbps_dbg_printf(xhp,
"%s: [configure] failed to get "
105 "pkg state: %s\n", pkgname, strerror(rv));
106 prop_object_release(pkgd);
111 if (state == XBPS_PKG_STATE_INSTALLED) {
112 if ((xhp->
flags & XBPS_FLAG_FORCE_CONFIGURE) == 0)
114 }
else if (state != XBPS_PKG_STATE_UNPACKED)
118 xbps_set_cb_state(xhp, XBPS_STATE_CONFIGURE, 0, pkgname, version, NULL);
122 pkgmetad = prop_dictionary_internalize_from_file(plist);
128 xbps_set_cb_state(xhp, XBPS_STATE_CONFIGURE_FAIL,
129 errno, pkgname, version,
130 "%s: [configure] INSTALL script failed to execute "
131 "the post ACTION: %s", pkgver, strerror(rv));
134 if (state == XBPS_PKG_STATE_INSTALLED) {
135 prop_object_release(pkgmetad);
141 xbps_set_cb_state(xhp, XBPS_STATE_CONFIGURE_FAIL, rv,
143 "%s: [configure] failed to set state to installed: %s",
144 pkgver, strerror(rv));
148 xbps_set_cb_state(xhp, XBPS_STATE_CONFIGURE_FAIL, rv,
150 "%s: [configure] failed to update pkgdb: %s\n",
151 pkgver, strerror(rv));
154 prop_object_release(pkgmetad);