summaryrefslogtreecommitdiffstats
path: root/src/main/archives.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/archives.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/main/archives.c b/src/main/archives.c
index 7e399f9..d7279e1 100644
--- a/src/main/archives.c
+++ b/src/main/archives.c
@@ -240,7 +240,7 @@ md5hash_prev_conffile(struct pkginfo *pkg, char *oldhash, const char *oldname,
&otherpkg->configversion) != 0)
continue;
for (conff = otherpkg->installed.conffiles; conff; conff = conff->next) {
- if (conff->obsolete || conff->remove_on_upgrade)
+ if (conffile_is_disappearing(conff))
continue;
if (strcmp(conff->name, namenode->name) == 0)
break;
@@ -431,7 +431,6 @@ tarobject_extract(struct tarcontext *tc, struct tar_entry *te,
namenodetouse(linknode, tc->pkg, &tc->pkg->available)->name);
if (linknode->flags & (FNNF_DEFERRED_RENAME | FNNF_NEW_CONFF))
varbuf_add_str(&hardlinkfn, DPKGNEWEXT);
- varbuf_end_str(&hardlinkfn);
if (link(hardlinkfn.buf, path))
ohshite(_("error creating hard link '%.255s'"), te->name);
namenode->newhash = linknode->newhash;
@@ -598,17 +597,14 @@ tarobject_matches(struct tarcontext *tc,
void setupfnamevbs(const char *filename) {
varbuf_rollback(&fname_state);
varbuf_add_str(&fnamevb, filename);
- varbuf_end_str(&fnamevb);
varbuf_rollback(&fnametmp_state);
varbuf_add_str(&fnametmpvb, filename);
varbuf_add_str(&fnametmpvb, DPKGTEMPEXT);
- varbuf_end_str(&fnametmpvb);
varbuf_rollback(&fnamenew_state);
varbuf_add_str(&fnamenewvb, filename);
varbuf_add_str(&fnamenewvb, DPKGNEWEXT);
- varbuf_end_str(&fnamenewvb);
debug(dbg_eachfiledetail, "setupvnamevbs main='%s' tmp='%s' new='%s'",
fnamevb.buf, fnametmpvb.buf, fnamenewvb.buf);
@@ -643,7 +639,6 @@ linktosameexistingdir(const struct tar_entry *ti, const char *fname,
varbuf_set_buf(symlinkfn, fname, (lastslash - fname) + 1);
}
varbuf_add_str(symlinkfn, ti->linkname);
- varbuf_end_str(symlinkfn);
statr= stat(symlinkfn->buf, &newstab);
if (statr) {
@@ -892,7 +887,7 @@ tarobject(struct tar_archive *tar, struct tar_entry *ti)
for (conff = otherpkg->installed.conffiles;
conff;
conff = conff->next) {
- if (!conff->obsolete)
+ if (!(conff->flags & CONFFILE_OBSOLETE))
continue;
if (strcmp(conff->name, nifd->namenode->name) == 0)
break;
@@ -1322,7 +1317,6 @@ void check_breaks(struct dependency *dep, struct pkginfo *pkg,
return;
}
- varbuf_end_str(&why);
if (fixbydeconf && f_autodeconf) {
ensure_package_clientdata(fixbydeconf);
@@ -1336,7 +1330,7 @@ void check_breaks(struct dependency *dep, struct pkginfo *pkg,
pkg_name(fixbydeconf, pnaw_nonambig),
pkgbin_name(pkg, &pkg->available, pnaw_nonambig));
- ok = try_deconfigure_can(fixbydeconf, dep->list, pkg, why.buf);
+ ok = try_deconfigure_can(fixbydeconf, dep->list, pkg, varbuf_str(&why));
if (ok == 1) {
notice(_("yes, will deconfigure %s (broken by %s)"),
pkg_name(fixbydeconf, pnaw_nonambig),
@@ -1344,7 +1338,8 @@ void check_breaks(struct dependency *dep, struct pkginfo *pkg,
}
} else {
notice(_("regarding %s containing %s:\n%s"), pfilename,
- pkgbin_name(pkg, &pkg->available, pnaw_nonambig), why.buf);
+ pkgbin_name(pkg, &pkg->available, pnaw_nonambig),
+ varbuf_str(&why));
ok= 0;
}
varbuf_destroy(&why);
@@ -1415,8 +1410,7 @@ void check_conflict(struct dependency *dep, struct pkginfo *pkg,
continue;
if (depisok(pdep->up, &removalwhy, NULL, NULL, false))
continue;
- varbuf_end_str(&removalwhy);
- if (!try_remove_can(pdep,fixbyrm,removalwhy.buf))
+ if (!try_remove_can(pdep, fixbyrm, varbuf_str(&removalwhy)))
break;
}
if (!pdep) {
@@ -1432,11 +1426,10 @@ void check_conflict(struct dependency *dep, struct pkginfo *pkg,
continue;
if (depisok(pdep->up, &removalwhy, NULL, NULL, false))
continue;
- varbuf_end_str(&removalwhy);
notice(_("may have trouble removing %s, as it provides %s ..."),
pkg_name(fixbyrm, pnaw_nonambig),
providecheck->list->ed->name);
- if (!try_remove_can(pdep,fixbyrm,removalwhy.buf))
+ if (!try_remove_can(pdep, fixbyrm, varbuf_str(&removalwhy)))
goto break_from_both_loops_at_once;
}
}
@@ -1470,9 +1463,9 @@ void check_conflict(struct dependency *dep, struct pkginfo *pkg,
fixbyrm->clientdata->istobe = PKG_ISTOBE_NORMAL;
}
}
- varbuf_end_str(&conflictwhy);
notice(_("regarding %s containing %s:\n%s"), pfilename,
- pkgbin_name(pkg, &pkg->available, pnaw_nonambig), conflictwhy.buf);
+ pkgbin_name(pkg, &pkg->available, pnaw_nonambig),
+ varbuf_str(&conflictwhy));
if (!force_conflicts(dep->list))
ohshit(_("conflicting packages - not installing %.250s"),
pkgbin_name(pkg, &pkg->available, pnaw_nonambig));