]> err.no Git - dpkg/commitdiff
* Leave file info intact in available when installing packages. MD5sum,
authorBen Collins <bcollins@debian.org>
Sat, 23 Oct 1999 13:40:46 +0000 (13:40 +0000)
committerBen Collins <bcollins@debian.org>
Sat, 23 Oct 1999 13:40:46 +0000 (13:40 +0000)
    Filename, and MSDOS-Filename used to get lost when installing a package.
  * Backout dep check patch (merged from v1_4_1_18)

ChangeLog
debian/changelog
include/dpkg-db.h
lib/parse.c
main/processarc.c

index edbcdbb89ce6b046822ad91da4fd300dab9b0085..0065fb2b4029d344d9bde3aeee8030fac1f8c782 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Oct 23 09:22:16 EDT 1999 Ben Collins <bcollins.debian.org>
+
+  * Leave file info intact in available when installing packages. MD5sum,
+    Filename, and MSDOS-Filename used to get lost when installing a package.
+  * Backout dep check patch (merged from v1_4_1_18)
+
 Thu Oct 21 12:57:31 EDT 1999 Ben Collins <bcollins.debian.org>
 
   * Fixed incorrect patch for --print-architecture (oops, oh well
index 28fa8e37ce0afd5bdb182034a21054bdde0ae3af..b4c6948d15001380becb50aa6a222ee533c8c6a1 100644 (file)
@@ -1,4 +1,4 @@
-dpkg (1.4.1.18) unstable; urgency=low
+dpkg (1.4.1.19) unstable; urgency=low
 
   * Fixed incorrect patch for --print-architecture (oops, oh well
     it was already broken when there was no gcc anyway :)
@@ -20,9 +20,18 @@ dpkg (1.4.1.18) unstable; urgency=low
   * minor script corrections
   * dpkg-dev control: Change gcc to c-compiler in the recommends field, and
     move cpio, patch and make to the depends line
+  * Leave file info intact in available when installing packages. MD5sum,
+    Filename, and MSDOS-Filename used to get lost when installing a
+    package.
 
  -- Wichert Akkerman <wakkerma@debian.org>  UNRELEASED
 
+dpkg (1.4.1.18) unstable; urgency=low
+
+  * Backout dep check patch
+
+ -- Ben Collins <bcollins@debian.org>  Sat, 23 Oct 1999 00:39:24 -0400
+
 dpkg (1.4.1.17) unstable; urgency=low
 
   * Add support for long filenames, along with --assert-longfilenames
index eca6ed57e48aa19edee0cd41aa2b49972080fbae..a1b89d921091e549491565121f4e93247ff9c95a 100644 (file)
@@ -183,7 +183,8 @@ void hashreport(FILE*);
 enum parsedbflags {
   pdb_recordavailable   =001, /* Store in `available' in-core structures, not `status' */
   pdb_rejectstatus      =002, /* Throw up an error if `Status' encountered             */
-  pdb_weakclassification=004  /* Ignore priority/section info if we already have any   */
+  pdb_weakclassification=004, /* Ignore priority/section info if we already have any   */
+  pdb_ignorefiles       =010  /* Ignore files info if we already have them             */
 };
 
 const char *illegal_packagename(const char *p, const char **ep);
index 258dc42dcfee945244be4062bd359ec370ceeca9..1cdff0885c9d4b82628a69fca46b7591d4c1b34b 100644 (file)
@@ -271,7 +271,7 @@ int parsedb(const char *filename, enum parsedbflags flags,
       pigp->status= newpig.status;
       pigp->configversion= newpig.configversion;
       pigp->files= 0;
-    } else {
+    } else if (!(flags & pdb_ignorefiles)) {
       pigp->files= newpig.files;
     }
 
index 3403f36516adaf469b1c8c740cb6d80be8c1c3d0..54e81358018e6065ce06f222307a7449a72440ec 100644 (file)
@@ -167,12 +167,14 @@ void process_archive(const char *filename) {
   waitsubproc(c1,BACKEND " --control",0);
   strcpy(cidirrest,CONTROLFILE);
 
-  parsedb(cidir, pdb_recordavailable|pdb_rejectstatus|pdb_weakclassification,
+  parsedb(cidir, pdb_recordavailable|pdb_rejectstatus|pdb_ignorefiles|pdb_weakclassification,
           &pkg,0,0);
-  pkg->files= nfmalloc(sizeof(struct filedetails));
-  pkg->files->next= 0;
-  pkg->files->name= pkg->files->msdosname= pkg->files->md5sum= 0;
-  pkg->files->size= nfmalloc(30);
+  if (!pkg->files) {
+    pkg->files= nfmalloc(sizeof(struct filedetails));
+    pkg->files->next= 0;
+    pkg->files->name= pkg->files->msdosname= pkg->files->md5sum= 0;
+    pkg->files->size= nfmalloc(30);
+  }
   sprintf(pkg->files->size,"%lu",(unsigned long)stab.st_size);
 
   if (cipaction->arg == act_avail) {
@@ -205,8 +207,6 @@ void process_archive(const char *filename) {
       return;
   }
 
-  /* Check if anything is installed that we conflict with, or not installed
-   * that we need */
   pkg->clientdata->istobe= itb_installnew;
   conflictor= 0;
   for (dsearch= pkg->available.depends; dsearch; dsearch= dsearch->next) {
@@ -240,25 +240,10 @@ void process_archive(const char *filename) {
       }
     }
   }
-  /* Look for things that we will break if we are installed */
- for (psearch= pkg->installed.depended; psearch; psearch= psearch->nextrev) {
-    if (psearch->up->type == dep_depends && !depisok(psearch->up,&depprobwhy,0,1)) {
-      varbufaddc(&depprobwhy,0);
-      fprintf(stderr, _("dpkg: regarding %s containing %s, dependency problem:\n%s"),
-       pfilename, pkg->name, depprobwhy.buf);
-      if (!force_depends(psearch->up->list))
-       ohshit(_("dependency problem - not installing %.250s"),pkg->name);
-      fprintf(stderr, _("dpkg: warning - ignoring dependency problem !\n"));
-    } else if (psearch->up->type == dep_predepends &&
-       !depisok(psearch->up,&depprobwhy,0,1)) {
-      varbufaddc(&depprobwhy,0);
-      fprintf(stderr, _("dpkg: regarding %s containing %s, pre-dependency problem:\n%s"),
-       pfilename, pkg->name, depprobwhy.buf);
-      if (!force_depends(psearch->up->list))
-       ohshit(_("pre-dependency problem - not installing %.250s"),pkg->name);
-      fprintf(stderr, _("dpkg: warning - ignoring pre-dependency problem !\n"));
-    } else if (psearch->up->type == dep_conflicts)
-      check_conflict(psearch->up, pkg, pfilename, &conflictor);
+  /* Look for things that conflict with us. */
+  for (psearch= pkg->installed.depended; psearch; psearch= psearch->nextrev) {
+    if (psearch->up->type != dep_conflicts) continue;
+    check_conflict(psearch->up, pkg, pfilename, &conflictor);
   }
   
   ensure_allinstfiles_available();