void pkg_blank(struct pkginfo *pkg) { pkg->set = NULL; pkg->arch_next = NULL; pkg_set_status(pkg, stat_notinstalled); pkg_reset_eflags(pkg); pkg_set_want(pkg, want_unknown); pkg->priority = pri_unknown; pkg->otherpriority = NULL; pkg->section = NULL; blankversion(&pkg->configversion); pkg->files = NULL; pkg->clientdata = NULL; pkg->trigaw.head = NULL; pkg->trigaw.tail = NULL; pkg->othertrigaw_head = NULL; pkg->trigpend_head = NULL; pkgbin_blank(&pkg->installed); pkgbin_blank(&pkg->available); /* The architectures are reset here (instead of in pkgbin_blank), * because they are part of the package specification, and needed * for selections. */ pkg->installed.arch = dpkg_arch_get(arch_none); pkg->available.arch = dpkg_arch_get(arch_none); }
void pkg_blank(struct pkginfo *pkg) { pkg->status = stat_notinstalled; pkg->eflag = eflag_ok; pkg->want = want_unknown; pkg->priority = pri_unknown; pkg->otherpriority = NULL; pkg->section = NULL; dpkg_version_blank(&pkg->configversion); pkg->files = NULL; pkg->clientdata = NULL; pkg->trigaw.head = NULL; pkg->trigaw.tail = NULL; pkg->othertrigaw_head = NULL; pkg->trigpend_head = NULL; pkgbin_blank(&pkg->installed); pkgbin_blank(&pkg->available); /* The architectures are reset here (instead of in pkgbin_blank), * because they are part of the package specification, and needed * for selections. */ pkg->installed.arch = dpkg_arch_get(arch_none); pkg->installed.multiarch = multiarch_no; pkg->available.arch = dpkg_arch_get(arch_none); pkg->available.multiarch = multiarch_no; }
static void pkg_disappear(struct pkginfo *pkg, struct pkginfo *infavour) { printf(_("(Noting disappearance of %s, which has been completely replaced.)\n"), pkg_name(pkg, pnaw_nonambig)); log_action("disappear", pkg, &pkg->installed); debug(dbg_general, "pkg_disappear disappearing %s", pkg_name(pkg, pnaw_nonambig)); trig_activate_packageprocessing(pkg); maintainer_script_installed(pkg, POSTRMFILE, "post-removal script (for disappearance)", "disappear", infavour->set->name, versiondescribe(&infavour->available.version, vdew_nonambig), NULL); /* OK, now we delete all the stuff in the ‘info’ directory .. */ debug(dbg_general, "pkg_disappear cleaning info directory"); pkg_infodb_foreach(pkg, &pkg->installed, pkg_infodb_remove_file); dir_sync_path(pkgadmindir()); pkg_set_status(pkg, stat_notinstalled); pkg_set_want(pkg, want_unknown); pkg_reset_eflags(pkg); blankversion(&pkg->configversion); pkgbin_blank(&pkg->installed); pkg->clientdata->fileslistvalid = false; modstatdb_note(pkg); }
void cu_preinstverynew(int argc, void **argv) { struct pkginfo *pkg= (struct pkginfo*)argv[0]; char *cidir= (char*)argv[1]; char *cidirrest= (char*)argv[2]; if (cleanup_pkg_failed++) return; maintainer_script_new(pkg, POSTRMFILE, "post-removal", cidir, cidirrest, "abort-install", NULL); pkg_set_status(pkg, stat_notinstalled); pkg_clear_eflags(pkg, eflag_reinstreq); pkgbin_blank(&pkg->installed); modstatdb_note(pkg); cleanup_pkg_failed--; }