PERFORCE change 182375 for review
Ivan Voras
ivoras at FreeBSD.org
Fri Aug 13 23:42:16 UTC 2010
http://p4web.freebsd.org/@@182375?ac=10
Change 182375 by ivoras at ursaminor on 2010/08/13 23:41:38
Re-read pkg db after installing dependancies.
Affected files ...
.. //depot/projects/soc2010/pkg_patch/src/patch/Makefile#36 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/Notes.txt#6 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/applypatch.c#26 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/applypatch.h#26 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/hashjob.c#35 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/hashjob.h#35 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/main.c#37 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.c#34 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.h#34 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.c#19 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.h#18 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/pkg_patch.1#8 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/pkg_patch.h#34 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/support.c#33 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/updateweb.c#14 edit
.. //depot/projects/soc2010/pkg_patch/src/patch/updateweb.h#14 edit
Differences ...
==== //depot/projects/soc2010/pkg_patch/src/patch/Makefile#36 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/Notes.txt#6 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/applypatch.c#26 (text+ko) ====
@@ -307,6 +307,8 @@
if (access(fpatch, R_OK) != 0)
err(1, "Access error reading file: %s", fpatch);
snprintf(dpatch, PATH_MAX, "%s/patch", my_tmp);
+ if (access(dpatch, R_OK) != 0)
+ rm_rf(dpatch);
if (mkdir(dpatch, 0700) != 0)
err(1, "Cannot create directory: %s", dpatch);
if (pkgxjob_start(&xpatch, dpatch, fpatch) != 0)
==== //depot/projects/soc2010/pkg_patch/src/patch/applypatch.h#26 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/hashjob.c#35 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/hashjob.h#35 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/main.c#37 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.c#34 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatch.h#34 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.c#19 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/mkpatchdir.h#18 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/pkg_patch.1#8 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/pkg_patch.h#34 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/support.c#33 (text+ko) ====
==== //depot/projects/soc2010/pkg_patch/src/patch/updateweb.c#14 (text+ko) ====
@@ -165,12 +165,17 @@
pkg_add(struct patch_index *pindex, char *pkg_name)
{
char url[PATH_MAX];
+ int exit_code;
snprintf(url, sizeof(url), "%s/%s.%s", pindex->pkg_repo_url,
pkg_name, PKG_FORMAT_EXT);
if (Verbose > 1)
printf("Trying to install %s.\n", url);
- return vsystem("%s %s", _PATH_PKG_ADD, url);
+ exit_code = vsystem("%s %s", _PATH_PKG_ADD, url);
+ if (exit_code != 0)
+ printf("Exit code %d running %s %s\n", exit_code,
+ _PATH_PKG_ADD, url);
+ return (exit_code);
}
@@ -376,11 +381,23 @@
}
if (!foundit) {
printf("Dependancy cannot be satisfied "
- "%s -> %s -trying to install\n",
+ "%s -> %s - trying to install\n",
pr->target, pl->name);
if (pkg_add(&pindex, pl->name) != 0)
err(1, "Cannot install %s\n",
pl->name);
+ /*
+ * XXX: memory leak. libpkg doesn't have
+ * an API for freeing matchinstalled()
+ * data?
+ */
+ instpkg = matchinstalled(MATCH_ALL,
+ NULL, &er);
+ if (instpkg == NULL || er != 0)
+ err(1, "Error getting a list of "
+ "installed packages");
+ foundit = TRUE;
+ ndeps_found++;
pl = pl->next;
continue;
}
@@ -420,6 +437,8 @@
snprintf(local_file, PATH_MAX, "%s/%s", my_tmp,
pr->patch_name);
+ if (Verbose > 2)
+ printf("Applying patch: %s\n", local_file);
perform_applypatch(local_file);
}
}
==== //depot/projects/soc2010/pkg_patch/src/patch/updateweb.h#14 (text+ko) ====
More information about the p4-projects
mailing list