On Wed, May 30, 2012 at 09:01:06PM +0000, Josh Paetzel wrote: > Author: jpaetzel > Date: Wed May 30 21:01:06 2012 > New Revision: 236333 > URL: http://svn.freebsd.org/changeset/base/236333 > > Log: > 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 > MFC after: 3 days > > Modified: > head/usr.sbin/pkg_install/add/main.c > head/usr.sbin/pkg_install/add/perform.c > head/usr.sbin/pkg_install/add/pkg_add.1 > head/usr.sbin/pkg_install/lib/file.c > head/usr.sbin/pkg_install/lib/url.c > > Modified: head/usr.sbin/pkg_install/add/main.c > ============================================================================== > --- head/usr.sbin/pkg_install/add/main.c Wed May 30 20:56:07 2012 > (r236332) > +++ head/usr.sbin/pkg_install/add/main.c Wed May 30 21:01:06 2012 > (r236333) > @@ -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: head/usr.sbin/pkg_install/add/perform.c > ============================================================================== > --- head/usr.sbin/pkg_install/add/perform.c Wed May 30 20:56:07 2012 > (r236332) > +++ head/usr.sbin/pkg_install/add/perform.c Wed May 30 21:01:06 2012 > (r236333) > @@ -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: head/usr.sbin/pkg_install/add/pkg_add.1 > ============================================================================== > --- head/usr.sbin/pkg_install/add/pkg_add.1 Wed May 30 20:56:07 2012 > (r236332) > +++ head/usr.sbin/pkg_install/add/pkg_add.1 Wed May 30 21:01:06 2012 > (r236333) > @@ -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: head/usr.sbin/pkg_install/lib/file.c > ============================================================================== > --- head/usr.sbin/pkg_install/lib/file.c Wed May 30 20:56:07 2012 > (r236332) > +++ head/usr.sbin/pkg_install/lib/file.c Wed May 30 21:01:06 2012 > (r236333) > @@ -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: head/usr.sbin/pkg_install/lib/url.c > ============================================================================== > --- head/usr.sbin/pkg_install/lib/url.c Wed May 30 20:56:07 2012 > (r236332) > +++ head/usr.sbin/pkg_install/lib/url.c Wed May 30 21:01:06 2012 > (r236333) > @@ -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
pkg_install is under maintainership of portmgr, while we appreciate to see people proposing new features and improving pkg_install, we could appreciate to be asked for reviews. regards, Bapt
pgpgRJvVUSVHd.pgp
Description: PGP signature
