|
|
@ -0,0 +1,83 @@ |
|
|
|
|
|
|
|
Our ober-guru did not wanted a new mine release - so here is |
|
|
|
my single fix. |
|
|
|
|
|
|
|
- (Slave) Rene Rebe <rene@rocklinux.org> |
|
|
|
|
|
|
|
Index: remove.c
|
|
|
|
===================================================================
|
|
|
|
--- remove.c (revision 17)
|
|
|
|
+++ remove.c (revision 18)
|
|
|
|
@@ -70,37 +70,47 @@
|
|
|
|
printf("%s: ", package); |
|
|
|
printf("removing %s\n", filename); |
|
|
|
} |
|
|
|
- else
|
|
|
|
- if ( ! strncmp(filename, "var/adm/", 8) ) {
|
|
|
|
- if ( mode_verbose )
|
|
|
|
- printf("%s: moving %s to var/adm/backup\n",
|
|
|
|
+ else {
|
|
|
|
+ struct stat statbuf;
|
|
|
|
+
|
|
|
|
+ snprintf(realfn1, 1024, "%s/%s", root, filename);
|
|
|
|
+ if ( stat(realfn1, &statbuf) )
|
|
|
|
+ printf("WARNING: Could not stat file %s.\n",
|
|
|
|
+ realfn1);
|
|
|
|
+
|
|
|
|
+ if ( ! strncmp(filename, "var/adm/", 8) &&
|
|
|
|
+ ! (S_ISDIR(statbuf.st_mode)) ) {
|
|
|
|
+ if ( mode_verbose )
|
|
|
|
+ printf("%s: moving %s to var/adm/backup\n",
|
|
|
|
package, filename); |
|
|
|
|
|
|
|
- snprintf(realfn1, 1024, "%s/var/adm/backup", root);
|
|
|
|
- mkdir(realfn1, 0700);
|
|
|
|
+ snprintf(realfn1, 1024, "%s/var/adm/backup",
|
|
|
|
+ root);
|
|
|
|
+ mkdir(realfn1, 0700);
|
|
|
|
|
|
|
|
- snprintf(realfn1, 1024, "%s", filename+8);
|
|
|
|
- sscanf(realfn1, "%[^/]/%[^/]", buf1, buf2);
|
|
|
|
+ snprintf(realfn1, 1024, "%s", filename+8);
|
|
|
|
+ sscanf(realfn1, "%[^/]/%[^/]", buf1, buf2);
|
|
|
|
|
|
|
|
- snprintf(realfn1, 1024, "%s/%s", root, filename);
|
|
|
|
- snprintf(realfn2, 1024, "%s/var/adm/backup/%s_%s",
|
|
|
|
- root, buf2, buf1);
|
|
|
|
+ snprintf(realfn1, 1024, "%s/%s", root, filename);
|
|
|
|
+ snprintf(realfn2, 1024, "%s/var/adm/backup/%s_%s",
|
|
|
|
+ root, buf2, buf1);
|
|
|
|
|
|
|
|
- if ( rename(realfn1, realfn2) ) {
|
|
|
|
- printf("While removing package %s: %s: %s\n",
|
|
|
|
- package, realfn1, strerror(errno));
|
|
|
|
- errors++;
|
|
|
|
+ if ( rename(realfn1, realfn2) ) {
|
|
|
|
+ printf("While removing package %s: %s: %s\n",
|
|
|
|
+ package, realfn1, strerror(errno));
|
|
|
|
+ errors++;
|
|
|
|
+ }
|
|
|
|
} |
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- if ( mode_verbose )
|
|
|
|
- printf("%s: removing %s\n", package, filename);
|
|
|
|
- snprintf(realfn1, 1024, "%s/%s", root, filename);
|
|
|
|
- if ( remove(realfn1) ) {
|
|
|
|
- printf("While removing package %s: %s: %s\n",
|
|
|
|
- package, realfn1, strerror(errno));
|
|
|
|
- errors++;
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ if ( mode_verbose )
|
|
|
|
+ printf("%s: removing %s\n",
|
|
|
|
+ package, filename);
|
|
|
|
+ if ( remove(realfn1) ) {
|
|
|
|
+ printf("While removing package %s: %s: %s\n",
|
|
|
|
+ package, realfn1, strerror(errno));
|
|
|
|
+ errors++;
|
|
|
|
+ }
|
|
|
|
} |
|
|
|
} |
|
|
|
} |