Date: Mon, 16 Aug 2010 01:06:20 GMT From: Ivan Voras <ivoras@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 182452 for review Message-ID: <201008160106.o7G16Kp8024184@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@182452?ac=10 Change 182452 by ivoras@ursaminor on 2010/08/16 01:05:16 Fix directory name translation and handling Affected files ... .. //depot/projects/soc2010/pkg_patch/src/patch/applypatch.c#28 edit Differences ... ==== //depot/projects/soc2010/pkg_patch/src/patch/applypatch.c#28 (text+ko) ==== @@ -153,6 +153,7 @@ int pdirlen; Boolean found = FALSE; + *adirname = '\0'; pdirlen = strlen(pdirname); pli = pkg->head; while (pli != NULL) { @@ -175,7 +176,7 @@ warnx("Failure to detect package cwd info [%s]", msg); return (-1); } - snprintf(adirname, PATH_MAX, "%s/%s", last_cwd, pli->name); + snprintf(adirname, PATH_MAX, "%s/%s", last_cwd, pdirname); return (0); } @@ -373,7 +374,7 @@ } if (access(tmp, F_OK) == 0) { warnx("File exists but shouldn't: %s", tmp); - err_count++; + /* err_count++; */ } } /* Check that files to be removed actually exist. */ @@ -442,7 +443,7 @@ baton_twirl(); /* Step 4 - backup the existing package */ if (Verbose > 1) - printf("Backing up the old package to %s...\n", backup_pkg); + printf("Backing up the old package...\n"); if (pkg_backup(pp.source, backup_pkg) != 0) err(1, "Cannot backup package: %s", pp.source); @@ -493,7 +494,7 @@ err(1, "Cannot symlink %s to %s", patchfile, newfile); } else { - if (cp(patchfile, newfile) != 0) + if (copy_file_absolute(patchfile, newfile) != 0) err(1, "Cannot copy %s to %s", patchfile, newfile); } @@ -566,15 +567,21 @@ /* Step 6 - apply other cases - files to add, remove, dirs to rmdir */ STAILQ_FOREACH(pl, &pp.pp_add, linkage) { char livefile[PATH_MAX]; + int er; snprintf(tmp, PATH_MAX, "%s/%s", dpatch, pl->filename); - if (pkg_to_live_filename(livefile, pl->filename, &pkg_new, - "pp_add2") != 0) { + if (!isdir(tmp)) + er = pkg_to_live_filename(livefile, pl->filename, + &pkg_new, "pp_add2"); + else + er = pkg_to_live_dirname(livefile, pl->filename, + &pkg_new, "pp_add2"); + if (er != 0) { warnx("Cannot resolve %s in new pkg", pl->filename); goto error_cleanup; } if (copy_file_absolute(tmp, livefile) != 0) { - warn("Cannot copy %s to %s", tmp, livefile); + warn("Cannot copy %s to %s [pp_add]", tmp, livefile); goto error_cleanup; } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008160106.o7G16Kp8024184>