Date: Fri, 9 Jul 1999 01:50:46 -0700 (PDT) From: Mark Diekhans <markd@Grizzly.COM> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/12570: No way to keep pkg_add from installing prerequisite Message-ID: <199907090850.BAA65762@osprey.grizzly.com>
next in thread | raw e-mail | index | archive | help
>Number: 12570 >Category: bin >Synopsis: No way to keep pkg_add from installing prerequisite >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Jul 9 02:00:01 PDT 1999 >Closed-Date: >Last-Modified: >Originator: Mark Diekhans >Release: FreeBSD 3.2-RELEASE i386 >Organization: Grizzly >Environment: >Description: pkg_add just goes ahead and installs prerequisite if it can find them. Especially likely if -r is specified. While this is a great default, sometimes one doesn't want a package dragging down 3/4 of the world. An option is needed to disable this. A patch is enclosed that add a -N option to disable this feature. >How-To-Repeat: >Fix: *** add.h.ORG Fri Jul 9 01:25:15 1999 --- add.h Fri Jul 9 01:27:59 1999 *************** *** 29,34 **** --- 29,35 ---- extern Boolean NoInstall; extern Boolean NoRecord; extern Boolean Force; + extern Boolean NoPrereqInstall; extern char *Mode; extern char *Owner; extern char *Group; *** main.c.ORG Fri Jul 9 01:24:53 1999 --- main.c Fri Jul 9 01:44:58 1999 *************** *** 30,40 **** #include "lib.h" #include "add.h" ! static char Options[] = "hvIRfnrp:SMt:"; char *Prefix = NULL; Boolean NoInstall = FALSE; Boolean NoRecord = FALSE; Boolean Remote = FALSE; char *Mode = NULL; --- 30,41 ---- #include "lib.h" #include "add.h" ! static char Options[] = "hvIRfNnrp:SMt:"; char *Prefix = NULL; Boolean NoInstall = FALSE; Boolean NoRecord = FALSE; + Boolean NoPrereqInstall = FALSE; Boolean Remote = FALSE; char *Mode = NULL; *************** *** 88,93 **** --- 89,98 ---- Force = TRUE; break; + case 'N': + NoPrereqInstall = TRUE; + break; + case 'n': Fake = TRUE; Verbose = TRUE; *************** *** 206,212 **** usage() { fprintf(stderr, "%s\n%s\n", ! "usage: pkg_add [-vInrfRMS] [-t template] [-p prefix]", " pkg-name [pkg-name ...]"); exit(1); } --- 211,217 ---- usage() { fprintf(stderr, "%s\n%s\n", ! "usage: pkg_add [-vInfNrRMS] [-t template] [-p prefix]", " pkg-name [pkg-name ...]"); exit(1); } *** perform.c.ORG Fri Jul 9 01:25:06 1999 --- perform.c Fri Jul 9 01:42:48 1999 *************** *** 246,252 **** if (vsystem("pkg_info -e %s", p->name)) { char path[FILENAME_MAX], *cp = NULL; ! if (!Fake) { if (!isURL(pkg) && !getenv("PKG_ADD_BASE")) { snprintf(path, FILENAME_MAX, "%s/%s.tgz", getenv("_TOP"), p->name); if (fexists(path)) --- 246,253 ---- if (vsystem("pkg_info -e %s", p->name)) { char path[FILENAME_MAX], *cp = NULL; ! ! if (!Fake && !NoPrereqInstall) { if (!isURL(pkg) && !getenv("PKG_ADD_BASE")) { snprintf(path, FILENAME_MAX, "%s/%s.tgz", getenv("_TOP"), p->name); if (fexists(path)) *************** *** 293,301 **** } else { if (Verbose) ! printf("and was not found%s.\n", Force ? " (proceeding anyway)" : ""); ! else ! printf("Package dependency %s for %s not found%s\n", p->name, pkg, Force ? " (proceeding anyway)" : "!"); if (!Force) ++code; --- 294,305 ---- } else { if (Verbose) ! printf("and was not found%s%s.\n", ! NoPrereqInstall ? " and prerequisite install disabled" : "", ! Force ? " (proceeding anyway)" : ""); ! else ! printf("Package dependency %s for %s not found%s%s\n", p->name, pkg, ! NoPrereqInstall ? " and prerequisite install disabled" : "", Force ? " (proceeding anyway)" : "!"); if (!Force) ++code; *** pkg_add.1.ORG Fri Jul 9 01:24:58 1999 --- pkg_add.1 Fri Jul 9 01:44:30 1999 *************** *** 25,31 **** .Nd a utility for installing software package distributions .Sh SYNOPSIS .Nm ! .Op Fl vInfrRMS .Op Fl t Ar template .Op Fl p Ar prefix .Ar pkg-name [pkg-name ...] --- 25,31 ---- .Nd a utility for installing software package distributions .Sh SYNOPSIS .Nm ! .Op Fl vInfNrRMS .Op Fl t Ar template .Op Fl p Ar prefix .Ar pkg-name [pkg-name ...] *************** *** 96,101 **** --- 96,106 ---- .Nm will still try to find and auto-install missing prerequisite packages, a failure to find one will not be fatal. + .It Fl N + Don't install prerequisite packages. This causes the installation to + fail if a prerequisite is not installed unless + .Fl f + is specified .It Fl p Ar prefix Set .Ar prefix >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199907090850.BAA65762>