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