PERFORCE change 175931 for review

Garrett Cooper gcooper at FreeBSD.org
Mon Mar 22 09:39:44 UTC 2010


http://p4web.freebsd.org/chv.cgi?CH=175931

Change 175931 by gcooper at gcooper-bayonetta on 2010/03/22 09:39:43

	Commit local change for bin/121165, s.t. the error message from find_play_pen makes more sense when the install fails (the command used, e.g. pkg_add(1), pkg_info(1), etc is now prefixed to all failures in lib/pen.c).

Affected files ...

.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/main.c#3 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/create/main.c#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/delete/main.c#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/info/main.c#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/lib.h#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/pen.c#4 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/version/main.c#2 edit

Differences ...

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/main.c#3 (text+ko) ====

@@ -50,6 +50,8 @@
 
 char	**pkgs;
 
+char	*progname	= NULL;
+
 struct {
 	int lowver;	/* Lowest version number to match */
 	int hiver;	/* Highest version number to match */
@@ -128,9 +130,12 @@
     static char temppackageroot[MAXPATHLEN];
     static char pkgaddpath[MAXPATHLEN];
 
-    if (*argv[0] != '/' && strchr(argv[0], '/') != NULL)
-	PkgAddCmd = realpath(argv[0], pkgaddpath);
-    else
+    if ((progname = basename(argv[0])) == NULL)
+	err(EXIT_FAILURE, "basename");
+    if (*argv[0] != '/' && strchr(argv[0], '/') != NULL) {
+	if ((PkgAddCmd = realpath(argv[0], pkgaddpath)) == NULL)
+	    err(EXIT_FAILURE, "realpath");
+    } else
 	PkgAddCmd = argv[0];
 
     start = argv;

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/create/main.c#2 (text+ko) ====

@@ -45,6 +45,7 @@
 int	Help		= FALSE;
 enum zipper	Zipper  = BZIP2;
 
+char	*progname	= NULL;
 
 static void usage(void);
 
@@ -72,6 +73,8 @@
     int ch;
     char **pkgs, **start, *tmp;
 
+    if ((progname = basename(argv[0])) == NULL)
+	err(EXIT_FAILURE, "basename");
     pkgs = start = argv;
     while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1)
 	switch(ch) {

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/delete/main.c#2 (text+ko) ====

@@ -37,6 +37,8 @@
 Boolean	Recursive	= FALSE;
 match_t	MatchType	= MATCH_GLOB;
 
+char	*progname	= NULL;
+
 static void usage(void);
 
 static char opts[] = "adDfGhinp:rvxX";
@@ -67,6 +69,8 @@
     const char *tmp;
     struct stat stat_s;
 
+    if ((progname = basename(argv[0])) == NULL)
+	err(EXIT_FAILURE, "basename");
     pkgs = start = argv;
     while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1)
 	switch(ch) {

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/info/main.c#2 (text+ko) ====

@@ -39,6 +39,8 @@
 Boolean KeepPackage	= FALSE;
 struct which_head *whead;
 
+char	*progname	= NULL;
+
 static void usage(void);
 
 static char opts[] = "abcdDe:EfgGhiIjkKl:LmoO:pPqQrRst:vVW:xX";
@@ -73,6 +75,8 @@
 	err(2, NULL);
     TAILQ_INIT(whead);
 
+    if ((progname = basename(argv[0])) == NULL)
+	err(EXIT_FAILURE, "basename");
     pkgs = start = argv;
     if (argc == 1) {
 	MatchType = MATCH_ALL;

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/lib.h#2 (text+ko) ====

@@ -30,6 +30,8 @@
 #include <sys/queue.h>
 #include <ctype.h>
 #include <dirent.h>
+#include <err.h>
+#include <libgen.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -239,9 +241,10 @@
 int		version_cmp(const char *, const char *);
 
 /* Externs */
+extern char	*progname;
 extern Boolean	Quiet;
 extern Boolean	Fake;
-extern Boolean  Force;
+extern Boolean	Force;
 extern int	AutoAnswer;
 extern int	Verbose;
 

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/pen.c#4 (text+ko) ====

@@ -62,10 +62,11 @@
 	cleanup(0);
 	humanize_number(humbuf, sizeof humbuf, sz, "", HN_AUTOSCALE,
 	    HN_NOSPACE);
-	errx(2,
-"%s: can't find enough temporary space to extract the files, please set your\n"
-"PKG_TMPDIR environment variable to a location with at least %s bytes\n"
-"free", __func__, humbuf);
+	/* XXX: Maintain 80 column width in the error message. */
+	errx(EXIT_FAILURE,
+	    "%s.%s: not enough temporary space to extract the files; set PKG_TMPDIR in\n"
+	    "your environment to a location with at least %s bytes free",
+	    progname, __func__, humbuf);
 	return NULL;
     }
     return pen;
@@ -79,7 +80,7 @@
 pushPen(const char *pen)
 {
     if (++pdepth == MAX_STACK)
-	errx(2, "%s: stack overflow.\n", __func__);
+	errx(2, "%s: stack overflow.\n", progname, __func__);
     pstack[pdepth] = strdup(pen);
 
     return pstack[pdepth];
@@ -127,9 +128,10 @@
     if (min_free(pen) < sz) {
 	rmdir(pen);
 	cleanup(0);
-	errx(2, "%s: not enough free space to create '%s'.\n"
+	errx(2, "%s.%s: not enough free space to create '%s'.\n"
 	     "Please set your PKG_TMPDIR environment variable to a location\n"
-	     "with more space and\ntry the command again", __func__, pen);
+	     "with more space and\ntry the command again", progname, __func__,
+	     pen);
     }
 
     if (!getcwd(cwd, FILENAME_MAX)) {
@@ -139,7 +141,7 @@
 
     if (chdir(pen) == FAIL) {
 	cleanup(0);
-	errx(2, "%s: can't chdir to '%s'", __func__, pen);
+	errx(2, "%s:%s: can't chdir to '%s'", progname, __func__, pen);
     }
 
     strcpy(PenLocation, pen);
@@ -163,11 +165,11 @@
 
     if (chdir(PenLocation) == FAIL) {
 	cleanup(0);
-	errx(2, "%s: can't chdir back to '%s'", __func__, PenLocation);
+	errx(2, "%s.%s: can't chdir back to '%s'", progname, __func__, PenLocation);
     }
 
     if (left[0] == '/' && vsystem("/bin/rm -rf %s", left))
-	warnx("couldn't remove temporary dir '%s'", left);
+	warnx("%s.%s: couldn't remove temporary dir '%s'", progname, __func__, left);
     signal(SIGINT, oldsig);
 
     return 1;
@@ -179,7 +181,7 @@
     struct statfs buf;
 
     if (statfs(tmpdir, &buf) != 0) {
-	warn("statfs");
+	warn("%s.%s: statfs", progname, __func__);
 	return -1;
     }
     return (off_t)buf.f_bavail * (off_t)buf.f_bsize;

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/version/main.c#2 (text+ko) ====

@@ -36,6 +36,8 @@
 Boolean UseINDEXOnly = FALSE;
 Boolean ShowOrigin = FALSE;
 
+char	*progname	= NULL;
+
 static void usage(void);
 
 static char opts[] = "dIhl:L:qs:XtTO:ov";
@@ -67,6 +69,8 @@
 	cmp = version_match(argv[3], argv[2]);
 	exit(cmp == 1 ? 0 : 1);
     }
+    if ((progname = basename(argv[0])) == NULL)
+	err(EXIT_FAILURE, "basename");
     else while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1) {
 	switch(ch) {
 	case 'v':


More information about the p4-projects mailing list