summaryrefslogtreecommitdiffstats
path: root/src/main/unpack.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/unpack.c42
1 files changed, 18 insertions, 24 deletions
diff --git a/src/main/unpack.c b/src/main/unpack.c
index 02c2681..e57a6e3 100644
--- a/src/main/unpack.c
+++ b/src/main/unpack.c
@@ -244,10 +244,9 @@ pkg_check_depcon(struct pkginfo *pkg, const char *pfilename)
while (fixbytrigaw->trigaw.head)
trigproc(fixbytrigaw->trigaw.head->pend, TRIGPROC_REQUIRED);
} else {
- varbuf_end_str(&depprobwhy);
notice(_("regarding %s containing %s, pre-dependency problem:\n%s"),
pfilename, pkgbin_name(pkg, &pkg->available, pnaw_nonambig),
- depprobwhy.buf);
+ varbuf_str(&depprobwhy));
if (!force_depends(dsearch->list))
ohshit(_("pre-dependency problem - not installing %.250s"),
pkgbin_name(pkg, &pkg->available, pnaw_nonambig));
@@ -608,7 +607,7 @@ pkg_remove_conffile_on_upgrade(struct pkginfo *pkg, struct fsys_namenode *nameno
usenode = namenodetouse(namenode, pkg, &pkg->installed);
rc = conffderef(pkg, &cdr, usenode->name);
- if (rc == -1) {
+ if (rc < 0) {
debug(dbg_conffdetail, "%s: '%s' conffile dereference error: %s", __func__,
namenode->name, strerror(errno));
namenode->oldhash = EMPTYHASHFLAG;
@@ -636,7 +635,6 @@ pkg_remove_conffile_on_upgrade(struct pkginfo *pkg, struct fsys_namenode *nameno
/* Remove DPKGDISTEXT variant if still present. */
varbuf_rollback(&cdrext_state);
varbuf_add_str(&cdrext, DPKGDISTEXT);
- varbuf_end_str(&cdrext);
if (unlink(cdrext.buf) < 0 && errno != ENOENT)
warning(_("%s: failed to remove '%.250s': %s"),
@@ -661,7 +659,6 @@ pkg_remove_conffile_on_upgrade(struct pkginfo *pkg, struct fsys_namenode *nameno
/* Otherwise, preserve the modified conffile. */
varbuf_rollback(&cdrext_state);
varbuf_add_str(&cdrext, DPKGOLDEXT);
- varbuf_end_str(&cdrext);
printf(_("Obsolete conffile '%s' has been modified by you.\n"), cdr.buf);
printf(_("Saving as %s ...\n"), cdrext.buf);
@@ -710,7 +707,6 @@ pkg_remove_old_files(struct pkginfo *pkg,
varbuf_rollback(&fname_state);
varbuf_add_str(&fnamevb, usenode->name);
- varbuf_end_str(&fnamevb);
if (!stat(fnamevb.buf, &stab) && S_ISDIR(stab.st_mode)) {
debug(dbg_eachfiledetail, "process_archive: %s is a directory",
@@ -719,10 +715,10 @@ pkg_remove_old_files(struct pkginfo *pkg,
continue;
}
- if (lstat(fnamevb.buf, &oldfs)) {
+ if (lstat(varbuf_str(&fnamevb), &oldfs)) {
if (!(errno == ENOENT || errno == ELOOP || errno == ENOTDIR))
warning(_("could not stat old file '%.250s' so not deleting it: %s"),
- fnamevb.buf, strerror(errno));
+ varbuf_str(&fnamevb), strerror(errno));
continue;
}
if (S_ISDIR(oldfs.st_mode)) {
@@ -732,7 +728,7 @@ pkg_remove_old_files(struct pkginfo *pkg,
if (strcmp(usenode->name, "/.") == 0)
continue;
- if (rmdir(fnamevb.buf)) {
+ if (rmdir(varbuf_str(&fnamevb))) {
warning(_("unable to delete old directory '%.250s': %s"),
namenode->name, strerror(errno));
} else if ((namenode->flags & FNNF_OLD_CONFF)) {
@@ -762,7 +758,7 @@ pkg_remove_old_files(struct pkginfo *pkg,
/* If we can't stat the old or new file, or it's a directory,
* we leave it up to the normal code. */
debug(dbg_eachfile, "process_archive: checking %s for same files on "
- "upgrade/downgrade", fnamevb.buf);
+ "upgrade/downgrade", varbuf_str(&fnamevb));
for (cfile = newfiles_queue->head; cfile; cfile = cfile->next) {
/* If the file has been filtered then treat it as if it didn't exist
@@ -775,9 +771,8 @@ pkg_remove_old_files(struct pkginfo *pkg,
varbuf_set_str(&cfilename, dpkg_fsys_get_dir());
varbuf_add_str(&cfilename, cfile->namenode->name);
- varbuf_end_str(&cfilename);
- if (lstat(cfilename.buf, &tmp_stat) == 0) {
+ if (lstat(varbuf_str(&cfilename), &tmp_stat) == 0) {
struct file_ondisk_id *file_ondisk_id;
file_ondisk_id = nfmalloc(sizeof(*file_ondisk_id));
@@ -800,11 +795,11 @@ pkg_remove_old_files(struct pkginfo *pkg,
oldfs.st_ino == cfile->namenode->file_ondisk_id->id_ino) {
if (sameas)
warning(_("old file '%.250s' is the same as several new files! "
- "(both '%.250s' and '%.250s')"), fnamevb.buf,
+ "(both '%.250s' and '%.250s')"), varbuf_str(&fnamevb),
sameas->namenode->name, cfile->namenode->name);
sameas = cfile;
debug(dbg_eachfile, "process_archive: not removing %s, "
- "since it matches %s", fnamevb.buf, cfile->namenode->name);
+ "since it matches %s", varbuf_str(&fnamevb), cfile->namenode->name);
}
}
@@ -839,7 +834,7 @@ pkg_remove_old_files(struct pkginfo *pkg,
trig_path_activate(usenode, pkg);
- if (secure_unlink_statted(fnamevb.buf, &oldfs)) {
+ if (secure_unlink_statted(varbuf_str(&fnamevb), &oldfs)) {
warning(_("unable to securely remove old file '%.250s': %s"),
namenode->name, strerror(errno));
}
@@ -924,9 +919,11 @@ pkg_update_fields(struct pkginfo *pkg, struct fsys_namenode_queue *newconffiles)
newiconff->next = NULL;
newiconff->name = nfstrsave(cfile->namenode->name);
newiconff->hash = nfstrsave(cfile->namenode->oldhash);
- newiconff->obsolete = !!(cfile->namenode->flags & FNNF_OBS_CONFF);
- newiconff->remove_on_upgrade = !!(
- cfile->namenode->flags & FNNF_RM_CONFF_ON_UPGRADE);
+ newiconff->flags = CONFFILE_NONE;
+ if (cfile->namenode->flags & FNNF_OBS_CONFF)
+ newiconff->flags |= CONFFILE_OBSOLETE;
+ if (cfile->namenode->flags & FNNF_RM_CONFF_ON_UPGRADE)
+ newiconff->flags |= CONFFILE_REMOVE_ON_UPGRADE;
*iconffileslastp = newiconff;
iconffileslastp = &newiconff->next;
}
@@ -1036,9 +1033,8 @@ pkg_disappear_others(struct pkginfo *pkg)
if (depisok(pdep->up, &depprobwhy, NULL, NULL, false))
continue;
- varbuf_end_str(&depprobwhy);
debug(dbg_veryverbose,"process_archive cannot disappear: %s",
- depprobwhy.buf);
+ varbuf_str(&depprobwhy));
break;
}
if (!pdep) {
@@ -1060,10 +1056,9 @@ pkg_disappear_others(struct pkginfo *pkg)
if (depisok(pdep->up, &depprobwhy, NULL, NULL, false))
continue;
- varbuf_end_str(&depprobwhy);
debug(dbg_veryverbose,
"process_archive cannot disappear (provides %s): %s",
- providecheck->list->ed->name, depprobwhy.buf);
+ providecheck->list->ed->name, varbuf_str(&depprobwhy));
goto break_from_both_loops_at_once;
}
}
@@ -1193,8 +1188,7 @@ pkg_remove_backup_files(struct pkginfo *pkg, struct fsys_namenode_list *newfiles
varbuf_rollback(&fnametmp_state);
varbuf_add_str(&fnametmpvb, usenode->name);
varbuf_add_str(&fnametmpvb, DPKGTEMPEXT);
- varbuf_end_str(&fnametmpvb);
- path_remove_tree(fnametmpvb.buf);
+ path_remove_tree(varbuf_str(&fnametmpvb));
}
}