svn commit: r236462 - in stable/9/usr.sbin/pkg_install: add lib

Josh Paetzel jpaetzel at FreeBSD.org
Sat Jun 2 18:28:35 UTC 2012


Author: jpaetzel
Date: Sat Jun  2 18:28:34 2012
New Revision: 236462
URL: http://svn.freebsd.org/changeset/base/236462

Log:
  MFC 236333,236336
  
  Let pkg_add use the ENV variable PACKAGESUFFIX. This
  can be used to override the default .tbz package extension to
  .txz .tgz or .tar
  
  Submitted by:	kmoore
  Obtained from:	PC-BSD
  Sponsored by:	iXsystems

Modified:
  stable/9/usr.sbin/pkg_install/add/main.c
  stable/9/usr.sbin/pkg_install/add/perform.c
  stable/9/usr.sbin/pkg_install/add/pkg_add.1
  stable/9/usr.sbin/pkg_install/lib/file.c
  stable/9/usr.sbin/pkg_install/lib/lib.h
  stable/9/usr.sbin/pkg_install/lib/url.c
Directory Properties:
  stable/9/usr.sbin/pkg_install/   (props changed)
  stable/9/usr.sbin/pkg_install/add/   (props changed)

Modified: stable/9/usr.sbin/pkg_install/add/main.c
==============================================================================
--- stable/9/usr.sbin/pkg_install/add/main.c	Sat Jun  2 18:27:14 2012	(r236461)
+++ stable/9/usr.sbin/pkg_install/add/main.c	Sat Jun  2 18:28:34 2012	(r236462)
@@ -234,10 +234,17 @@ main(int argc, char **argv)
 		remotepkg = temppackageroot;
 		if (!((ptr = strrchr(remotepkg, '.')) && ptr[1] == 't' &&
 			(ptr[2] == 'b' || ptr[2] == 'g' || ptr[2] == 'x') &&
-			ptr[3] == 'z' && !ptr[4]))
-		    if (strlcat(remotepkg, ".tbz",
-			sizeof(temppackageroot)) >= sizeof(temppackageroot))
-			errx(1, "package name too long");
+			ptr[3] == 'z' && !ptr[4])) {
+    		    if (getenv("PACKAGESUFFIX")) {
+		       if (strlcat(remotepkg, getenv("PACKAGESUFFIX"),
+			   sizeof(temppackageroot)) >= sizeof(temppackageroot))
+			   errx(1, "package name too long");
+		    } else {
+		       if (strlcat(remotepkg, ".tbz",
+			   sizeof(temppackageroot)) >= sizeof(temppackageroot))
+			   errx(1, "package name too long");
+		    }
+		}
     	    }
 	    if (!strcmp(*argv, "-"))	/* stdin? */
 		pkgs[ch] = (char *)"-";

Modified: stable/9/usr.sbin/pkg_install/add/perform.c
==============================================================================
--- stable/9/usr.sbin/pkg_install/add/perform.c	Sat Jun  2 18:27:14 2012	(r236461)
+++ stable/9/usr.sbin/pkg_install/add/perform.c	Sat Jun  2 18:28:34 2012	(r236462)
@@ -307,8 +307,12 @@ pkg_do(char *pkg)
 		    *sep = '\0';
 		    strlcat(subpkg, "/All/", sizeof subpkg);
 		    strlcat(subpkg, p->name, sizeof subpkg);
-		    if ((ext = strrchr(pkg, '.')) == NULL)
-			ext = ".tbz";
+		    if ((ext = strrchr(pkg, '.')) == NULL) {
+			if (getenv("PACKAGESUFFIX"))
+			  ext = getenv("PACKAGESUFFIX");
+			else
+			  ext = ".tbz";
+		    }
 		    strlcat(subpkg, ext, sizeof subpkg);
 		    pkg_do(subpkg);
 		}
@@ -345,8 +349,13 @@ pkg_do(char *pkg)
 		    const char *ext;
 
 		    ext = strrchr(pkg_fullname, '.');
-		    if (ext == NULL)
-			ext = ".tbz";
+		    if (ext == NULL) {
+			if (getenv("PACKAGESUFFIX")) {
+			  ext = getenv("PACKAGESUFFIX");
+			} else {
+			  ext = ".tbz";
+			}
+		    }
 		    snprintf(path, FILENAME_MAX, "%s/%s%s", getenv("_TOP"), p->name, ext);
 		    if (fexists(path))
 			cp = path;

Modified: stable/9/usr.sbin/pkg_install/add/pkg_add.1
==============================================================================
--- stable/9/usr.sbin/pkg_install/add/pkg_add.1	Sat Jun  2 18:27:14 2012	(r236461)
+++ stable/9/usr.sbin/pkg_install/add/pkg_add.1	Sat Jun  2 18:28:34 2012	(r236462)
@@ -553,6 +553,11 @@ The environment variable
 specifies an alternative location to save downloaded packages to when
 .Fl K
 option is used.
+.Pp
+The environment variable
+.Ev PACKAGESUFFIX
+specifies an alternative file extension to use when fetching remote
+packages. Default is .tbz
 .Sh FILES
 .Bl -tag -width /var/db/pkg -compact
 .It Pa /var/tmp

Modified: stable/9/usr.sbin/pkg_install/lib/file.c
==============================================================================
--- stable/9/usr.sbin/pkg_install/lib/file.c	Sat Jun  2 18:27:14 2012	(r236461)
+++ stable/9/usr.sbin/pkg_install/lib/file.c	Sat Jun  2 18:28:34 2012	(r236462)
@@ -140,7 +140,7 @@ fileFindByPath(const char *base, const c
 {
     static char tmp[FILENAME_MAX];
     char *cp;
-    const char *suffixes[] = {".tbz", ".tgz", ".tar", NULL};
+    const char *suffixes[] = {".tbz", ".tgz", ".tar", ".txz", NULL};
     int i;
 
     if (fexists(fname) && isfile(fname)) {

Modified: stable/9/usr.sbin/pkg_install/lib/lib.h
==============================================================================
--- stable/9/usr.sbin/pkg_install/lib/lib.h	Sat Jun  2 18:27:14 2012	(r236461)
+++ stable/9/usr.sbin/pkg_install/lib/lib.h	Sat Jun  2 18:28:34 2012	(r236462)
@@ -99,7 +99,7 @@
  * Version of the package tools - increase whenever you make a change
  * in the code that is not cosmetic only.
  */
-#define PKG_INSTALL_VERSION	20100403
+#define PKG_INSTALL_VERSION	20120530
 
 #define PKG_WRAPCONF_FNAME	"/var/db/pkg_install.conf"
 #define main(argc, argv)	real_main(argc, argv)

Modified: stable/9/usr.sbin/pkg_install/lib/url.c
==============================================================================
--- stable/9/usr.sbin/pkg_install/lib/url.c	Sat Jun  2 18:27:14 2012	(r236461)
+++ stable/9/usr.sbin/pkg_install/lib/url.c	Sat Jun  2 18:28:34 2012	(r236462)
@@ -73,7 +73,10 @@ fileGetURL(const char *base, const char 
 		*(cp + 1) = '\0';
 		strcat(cp, "All/");
 		strcat(cp, spec);
-		strcat(cp, ".tbz");
+		if (getenv("PACKAGESUFFIX"))
+		   strcat(cp, getenv("PACKAGESUFFIX"));
+                else
+		   strcat(cp, ".tbz");
 	    }
 	    else
 		return NULL;
@@ -85,7 +88,10 @@ fileGetURL(const char *base, const char 
 	     */
 	    strcpy(fname, hint);
 	    strcat(fname, spec);
-	    strcat(fname, ".tbz");
+	    if (getenv("PACKAGESUFFIX"))
+	       strcat(fname, getenv("PACKAGESUFFIX"));
+            else
+	       strcat(fname, ".tbz");
 	}
     }
     else


More information about the svn-src-stable-9 mailing list