From 62940ea951c273780217d7540ba4aa5c4ca0e359 Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Thu, 24 Oct 2013 10:49:55 +0000 Subject: Add support for using "pkg+http://" for the PACKAGESITE. pkg 1.2 is adding this support as well. This should help lessen the confusion on why the default SRV PACKAGESITE does not load in a browser. Adapated from: matthew's upstream pkg change Approved by: bapt MFC after: 2 days --- usr.sbin/pkg/config.c | 2 +- usr.sbin/pkg/config.h | 1 + usr.sbin/pkg/pkg.c | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/usr.sbin/pkg/config.c b/usr.sbin/pkg/config.c index 429aad6e999f..6a6b27d0c425 100644 --- a/usr.sbin/pkg/config.c +++ b/usr.sbin/pkg/config.c @@ -62,7 +62,7 @@ static struct config_entry c[] = { [PACKAGESITE] = { PKG_CONFIG_STRING, "PACKAGESITE", - "http://pkg.FreeBSD.org/${ABI}/latest", + URL_SCHEME_PREFIX "http://pkg.FreeBSD.org/${ABI}/latest", NULL, false, }, diff --git a/usr.sbin/pkg/config.h b/usr.sbin/pkg/config.h index e592f6dee592..c3d877e8fe7b 100644 --- a/usr.sbin/pkg/config.h +++ b/usr.sbin/pkg/config.h @@ -30,6 +30,7 @@ #define _PKG_CONFIG_H #define _LOCALBASE "/usr/local" +#define URL_SCHEME_PREFIX "pkg+" typedef enum { PACKAGESITE = 0, diff --git a/usr.sbin/pkg/pkg.c b/usr.sbin/pkg/pkg.c index 840f2a2f942c..812ae5383ad3 100644 --- a/usr.sbin/pkg/pkg.c +++ b/usr.sbin/pkg/pkg.c @@ -168,6 +168,13 @@ bootstrap_pkg(void) warnx("No MIRROR_TYPE defined"); return (-1); } + + /* Support pkg+http:// for PACKAGESITE which is the new format + in 1.2 to avoid confusion on why http://pkg.FreeBSD.org has + no A record. */ + if (strncmp(URL_SCHEME_PREFIX, packagesite, + strlen(URL_SCHEME_PREFIX)) == 0) + packagesite += strlen(URL_SCHEME_PREFIX); snprintf(url, MAXPATHLEN, "%s/Latest/pkg.txz", packagesite); snprintf(tmppkg, MAXPATHLEN, "%s/pkg.txz.XXXXXX", -- cgit v1.2.3