bin/46830: Make pkg_add respect prefix for dependancies

Dominic Marks dom at cus.org.uk
Sat Apr 12 13:50:20 PDT 2003


The following reply was made to PR bin/46830; it has been noted by GNATS.

From: Dominic Marks <dom at cus.org.uk>
To: freebsd-gnats-submit at freebsd.org
Cc:  
Subject: Re: bin/46830: Make pkg_add respect prefix for dependancies
Date: Sat, 12 Apr 2003 21:41:19 +0100

 Hey,
 
 Here is a better patch than the original one.
 
 Index: perform.c
 ===================================================================
 RCS file: /home/ncvs/src/usr.sbin/pkg_install/add/perform.c,v
 retrieving revision 1.73
 diff -u -r1.73 perform.c
 --- perform.c	2002/09/03 06:59:33	1.73
 +++ perform.c	2003/04/12 20:37:01
 @@ -19,7 +19,7 @@
   */
  
  #include <sys/cdefs.h>
 -__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/perform.c,v 1.73 2002/09/03 06:59:33 sobomax Exp $");
 +__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/add/perform.c,v 1.57.2.15 2002/09/25 23:22:13 bmah Exp $");
  
  #include <err.h>
  #include <paths.h>
 @@ -68,7 +68,7 @@
      char extract_contents[FILENAME_MAX];
      char *where_to, *extract;
      FILE *cfile;
 -    int code;
 +    int code, rv;
      PackingList p;
      struct stat sb;
      int inPlace;
 @@ -271,7 +271,7 @@
  
  		    ext = strrchr(pkg_fullname, '.');
  		    if (ext == NULL)
 -			ext = ".tbz";
 +			ext = ".tgz";
  		    snprintf(path, FILENAME_MAX, "%s/%s%s", getenv("_TOP"), p->name, ext);
  		    if (fexists(path))
  			cp = path;
 @@ -280,12 +280,19 @@
  		    if (cp) {
  			if (Verbose)
  			    printf("Loading it from %s.\n", cp);
 -			if (vsystem("pkg_add %s'%s'", Verbose ? "-v " : "", cp)) {
 -			    warnx("autoload of dependency '%s' failed%s",
 -				cp, Force ? " (proceeding anyway)" : "!");
 -			    if (!Force)
 -				++code;
 -			}
 +				if (Prefix == NULL) {
 +				rv = vsystem("pkg_add %s'%s'",
 +					Verbose ? "-v " : "", cp);
 +				} else {
 +				rv = vsystem("pkg_add %s -p '%s' '%s'",
 +					Verbose ? "-v" : "", Prefix, cp);
 +				}
 +				if (rv) {
 +			    	warnx("autoload of dependency '%s' failed%s",
 +					cp, Force ? " (proceeding anyway)" : "!");
 +			    	if (!Force)
 +					++code;
 +				}
  		    }
  		    else {
  			warnx("could not find package %s %s",
 
 -- 
 Dominic
  <dom at cus.org.uk> <d.marks at student.umist.ac.uk>


More information about the freebsd-bugs mailing list