Date: Sun, 23 May 2010 09:03:34 GMT From: Garrett Cooper <gcooper@FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: bin/146859: [patch] [pkg_install] libpkg/msg.c removal and related cleanup Message-ID: <201005230903.o4N93YV6064904@www.freebsd.org> Resent-Message-ID: <201005230910.o4N9A0dk045942@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 146859 >Category: bin >Synopsis: [patch] [pkg_install] libpkg/msg.c removal and related cleanup >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun May 23 09:10:00 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Garrett Cooper >Release: 9-CURRENT >Organization: Cisco Systems, Inc. >Environment: FreeBSD bayonetta.local 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r206173M: Mon Apr 26 22:45:06 PDT 2010 root@bayonetta.local:/usr/obj/usr/src/sys/BAYONETTA.ata amd64 >Description: This proposed change: 1. Removes msg.c from libpkg as it was largely unused. 2. Removes the one and only function call made from msg.c (upchuck in 3. Removes some dead prototypes (barf, whinge). 4. Removes -N and -Y from pkg_create as they're complete no-ops in pkg_create, and libpkg. >How-To-Repeat: These are error conditions that won't occur 99.9% of the time (unless uname(2) fails), but will occur given proper circumstances. >Fix: See attached patch. Patch attached with submission follows: Index: lib/libpkg/global.c =================================================================== --- lib/libpkg/global.c (revision 208438) +++ lib/libpkg/global.c (working copy) @@ -28,5 +28,4 @@ Boolean Quiet = FALSE; Boolean Fake = FALSE; Boolean Force = FALSE; -int AutoAnswer = FALSE; int Verbose = 0; /* Allow multiple levels of verbose. */ Index: lib/libpkg/pen.c =================================================================== --- lib/libpkg/pen.c (revision 208438) +++ lib/libpkg/pen.c (working copy) @@ -126,8 +126,8 @@ } if (!getcwd(cwd, FILENAME_MAX)) { - upchuck("getcwd"); - return NULL; + cleanup(0); + err(EXIT_FAILURE, "getcwd"); } if (chdir(pen) == FAIL) { Index: lib/libpkg/msg.c =================================================================== --- lib/libpkg/msg.c (revision 208438) +++ lib/libpkg/msg.c (working copy) @@ -1,70 +0,0 @@ -/* - * FreeBSD install - a package for the installation and maintainance - * of non-core utilities. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Jordan K. Hubbard - * 18 July 1993 - * - * Miscellaneous message routines. - * - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "pkg.h" -#include <err.h> -#include <paths.h> - -/* Die a relatively simple death */ -void -upchuck(const char *message) -{ - cleanup(0); - errx(1, "fatal error during execution: %s", message); -} - -/* - * As a yes/no question, prompting from the varargs string and using - * default if user just hits return. - */ -Boolean -y_or_n(Boolean def, const char *msg, ...) -{ - va_list args; - int ch = 0; - FILE *tty; - - va_start(args, msg); - /* - * Need to open /dev/tty because file collection may have been - * collected on stdin - */ - tty = fopen(_PATH_TTY, "r"); - if (!tty) { - cleanup(0); - errx(2, "can't open %s!", _PATH_TTY); - } - while (ch != 'Y' && ch != 'N') { - vfprintf(stderr, msg, args); - if (def) - fprintf(stderr, " [yes]? "); - else - fprintf(stderr, " [no]? "); - fflush(stderr); - ch = toupper(fgetc(tty)); - if (ch == '\n') - ch = (def) ? 'Y' : 'N'; - } - fclose(tty) ; - return (ch == 'Y') ? TRUE : FALSE; -} Index: lib/libpkg/pkg.h =================================================================== --- lib/libpkg/pkg.h (revision 208438) +++ lib/libpkg/pkg.h (working copy) @@ -191,12 +191,6 @@ int unpack(const char *, const char *); void format_cmd(char *, int, const char *, const char *, const char *); -/* Msg */ -void upchuck(const char *); -void barf(const char *, ...); -void whinge(const char *, ...); -Boolean y_or_n(Boolean, const char *, ...); - /* Packing list */ PackingList new_plist_entry(void); PackingList last_plist(Package *); Index: usr.sbin/pkg_install/create/pkg_create.1 =================================================================== --- usr.sbin/pkg_install/create/pkg_create.1 (revision 208438) +++ usr.sbin/pkg_install/create/pkg_create.1 (working copy) @@ -31,7 +31,7 @@ .Nd a utility for creating software package distributions .Sh SYNOPSIS .Nm -.Op Fl YNOhjnvyz +.Op Fl Ohjnvyz .Op Fl C Ar conflicts .Op Fl P Ar pkgs .Op Fl p Ar prefix @@ -52,7 +52,7 @@ .Fl f Ar packlist .Ar pkg-filename .Nm -.Op Fl EGYNRhnvxy +.Op Fl EGRhnvxy .Fl b Ar pkg-name .Op Ar pkg-filename .Sh DESCRIPTION @@ -103,10 +103,6 @@ or, if preceded by .Cm - , the argument itself. -.It Fl Y , -yes -Assume a default answer of `Yes' for any questions asked. -.It Fl N , -no -Assume a default answer of `No' for any questions asked. .It Fl O , -plist-only Go into a `packing list Only' mode. This is a custom hack for the Index: usr.sbin/pkg_install/create/main.c =================================================================== --- usr.sbin/pkg_install/create/main.c (revision 208438) +++ usr.sbin/pkg_install/create/main.c (working copy) @@ -48,12 +48,11 @@ static void usage(void); -static char opts[] = "EGYNnORhjvxyzf:p:P:C:c:d:i:I:k:K:r:t:X:D:m:s:S:o:b:"; +static char opts[] = "EGnORhjvxyzf:p:P:C:c:d:i:I:k:K:r:t:X:D:m:s:S:o:b:"; static struct option longopts[] = { { "backup", required_argument, NULL, 'b' }, { "extended", no_argument, NULL, 'E' }, { "help", no_argument, &Help, TRUE }, - { "no", no_argument, NULL, 'N' }, { "no-glob", no_argument, NULL, 'G' }, { "origin", required_argument, NULL, 'o' }, { "plist-only", no_argument, NULL, 'O' }, @@ -62,7 +61,6 @@ { "regex", no_argument, NULL, 'x' }, { "template", required_argument, NULL, 't' }, { "verbose", no_argument, NULL, 'v' }, - { "yes", no_argument, NULL, 'Y' }, { NULL, 0, NULL, 0 }, }; @@ -93,14 +91,6 @@ MatchType = MATCH_EXACT; break; - case 'N': - AutoAnswer = NO; - break; - - case 'Y': - AutoAnswer = YES; - break; - case 'O': PlistOnly = TRUE; break; >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005230903.o4N93YV6064904>