aboutsummaryrefslogtreecommitdiff
path: root/ports-mgmt
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2013-11-26 14:49:04 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2013-11-26 14:49:04 +0000
commit579d16acec9f0941638f345e1853e63ab6a1749b (patch)
treebfa6ddecc2ed8e93414385e9a37d888c5bc1c0b5 /ports-mgmt
parenta0a6a34953f3b595e1fbeaf4dddb7ebf7af497d4 (diff)
downloadports-579d16acec9f0941638f345e1853e63ab6a1749b.tar.gz
ports-579d16acec9f0941638f345e1853e63ab6a1749b.zip
Notes
Diffstat (limited to 'ports-mgmt')
-rw-r--r--ports-mgmt/pkg/Makefile5
-rw-r--r--ports-mgmt/pkg/distinfo4
-rw-r--r--ports-mgmt/pkg/files/patch-external__Makefile11
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__Makefile15
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__dns_utils.c108
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__fetch.c88
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__packing.c59
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__pkg.c47
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__pkg.h.in11
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__pkg_add.c11
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__pkg_create.c11
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__pkg_elf.c114
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__pkgdb.c11
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__private__elf_tables.h13
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__private__pkg.h8
-rw-r--r--ports-mgmt/pkg/files/patch-libpkg__private__utils.h10
-rw-r--r--ports-mgmt/pkg/files/patch-pkg-static__Makefile15
-rw-r--r--ports-mgmt/pkg/files/patch-pkg__register.c11
-rw-r--r--ports-mgmt/pkg/files/patch-pkg__upgrade.c11
-rw-r--r--ports-mgmt/pkg/pkg-plist21
20 files changed, 15 insertions, 569 deletions
diff --git a/ports-mgmt/pkg/Makefile b/ports-mgmt/pkg/Makefile
index febd8db768fc..3858d07d9464 100644
--- a/ports-mgmt/pkg/Makefile
+++ b/ports-mgmt/pkg/Makefile
@@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= pkg
-DISTVERSION= 1.1.4
-PORTREVISION= 10
+DISTVERSION= 1.2
CATEGORIES= ports-mgmt
MASTER_SITES= http://files.etoilebsd.net/pkg/ \
http://mirror.shatow.net/freebsd/${PORTNAME}/ \
@@ -77,7 +76,7 @@ pre-everything::
PKG_DEPENDS=
.undef INSTALLS_DEPENDS
.if !exists(${LOCALBASE}/sbin/pkg)
-PKG_BIN= ${WRKSRC}/pkg-static/pkg-static
+PKG_BIN= ${WRKSRC}/pkg/pkg-static
.endif
.endif
diff --git a/ports-mgmt/pkg/distinfo b/ports-mgmt/pkg/distinfo
index ea3362ab64ab..be8270884a97 100644
--- a/ports-mgmt/pkg/distinfo
+++ b/ports-mgmt/pkg/distinfo
@@ -1,2 +1,2 @@
-SHA256 (pkg-1.1.4.tar.xz) = d84c9052f18c9d64cb369b9f3e8c1542f79f1152032169b1d28fbc2308c2dcbd
-SIZE (pkg-1.1.4.tar.xz) = 1554804
+SHA256 (pkg-1.2.tar.xz) = 1e353780a9f78ab4b962108c8fa245406823467eb81e762cb682c6fb72c60a38
+SIZE (pkg-1.2.tar.xz) = 1802740
diff --git a/ports-mgmt/pkg/files/patch-external__Makefile b/ports-mgmt/pkg/files/patch-external__Makefile
deleted file mode 100644
index b7c61154374a..000000000000
--- a/ports-mgmt/pkg/files/patch-external__Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./external/Makefile.orig 2013-07-06 05:48:19.000000000 -0500
-+++ ./external/Makefile 2013-10-12 07:25:25.353758158 -0500
-@@ -1,8 +1,6 @@
- SUBDIR= sqlite
-
--.if !exists(/usr/include/bsdyml.h)
- SUBDIR+= libyaml
--.endif
-
- .if defined(WITH_BUNDLED_LIBELF)
- SUBDIR+= libelf
diff --git a/ports-mgmt/pkg/files/patch-libpkg__Makefile b/ports-mgmt/pkg/files/patch-libpkg__Makefile
deleted file mode 100644
index f72e4f7fadc1..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
---- ./libpkg/Makefile.orig 2013-07-06 05:48:19.000000000 -0500
-+++ ./libpkg/Makefile 2013-10-12 07:25:25.353758158 -0500
-@@ -82,12 +82,8 @@
- -I${.CURDIR}/../external/sqlite \
- -I${.CURDIR}/../external/uthash
-
--.if !exists(/usr/include/bsdyml.h)
- CFLAGS+= -DBUNDLED_YAML -I ${.CURDIR}/../external/libyaml/include
- LDADD+= -L${.OBJDIR}/../external/libyaml -lyaml
--.else
--LDADD+= -lbsdyml
--.endif
-
- .if defined(WITH_BUNDLED_LIBELF)
- CFLAGS+= -I${.CURDIR}/../external/libelf \
diff --git a/ports-mgmt/pkg/files/patch-libpkg__dns_utils.c b/ports-mgmt/pkg/files/patch-libpkg__dns_utils.c
deleted file mode 100644
index 05381ce09625..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__dns_utils.c
+++ /dev/null
@@ -1,108 +0,0 @@
---- ./libpkg/dns_utils.c.orig 2013-07-06 05:48:19.000000000 -0500
-+++ ./libpkg/dns_utils.c 2013-11-19 11:13:45.349130754 -0600
-@@ -40,6 +40,65 @@
- unsigned char buf[1024];
- } query_t;
-
-+static int
-+srv_priority_cmp(const void *a, const void *b)
-+{
-+ const struct dns_srvinfo *da, *db;
-+
-+ da = *(struct dns_srvinfo * const *)a;
-+ db = *(struct dns_srvinfo * const *)b;
-+
-+ return ((da->priority > db->priority) - (da->priority < db->priority));
-+}
-+
-+static int
-+srv_final_cmp(const void *a, const void *b)
-+{
-+ const struct dns_srvinfo *da, *db;
-+ int res;
-+
-+ da = *(struct dns_srvinfo * const *)a;
-+ db = *(struct dns_srvinfo * const *)b;
-+
-+ res = ((da->priority > db->priority) - (da->priority < db->priority));
-+ if (res == 0)
-+ res = ((db->finalweight > da->finalweight) - (db->finalweight < da->finalweight));
-+
-+ return (res);
-+}
-+
-+static void
-+compute_weight(struct dns_srvinfo **d, int first, int last)
-+{
-+ int i, j;
-+ int totalweight = 0;
-+ int *chosen;
-+
-+ for (i = 0; i <= last; i++)
-+ totalweight += d[i]->weight;
-+
-+ if (totalweight == 0)
-+ return;
-+
-+ chosen = malloc(sizeof(int) * (last - first + 1));
-+
-+ for (i = 0; i <= last; i++) {
-+ for (;;) {
-+ chosen[i] = random() % (d[i]->weight * 100 / totalweight);
-+ for (j = 0; j < i; j++) {
-+ if (chosen[i] == chosen[j])
-+ break;
-+ }
-+ if (j == i) {
-+ d[i]->finalweight = chosen[i];
-+ break;
-+ }
-+ }
-+ }
-+
-+ free(chosen);
-+}
-+
- struct dns_srvinfo *
- dns_getsrvinfo(const char *zone)
- {
-@@ -49,6 +108,7 @@
- struct dns_srvinfo **res, *first;
- unsigned char *end, *p;
- unsigned int type, class, ttl, priority, weight, port;
-+ int f, l;
-
- if ((len = res_query(zone, C_IN, T_SRV, q.buf, sizeof(q.buf))) == -1 ||
- len < (int)sizeof(HEADER))
-@@ -120,12 +180,31 @@
- res[n]->weight = weight;
- res[n]->port = port;
- res[n]->next = NULL;
-+ res[n]->finalweight = 0;
- strlcpy(res[n]->host, host, MAXHOSTNAMELEN);
-
- p += len;
- n++;
- }
-
-+ /* order by priority */
-+ qsort(res, n, sizeof(res[0]), srv_priority_cmp);
-+
-+ priority = 0;
-+ f = 0;
-+ l = 0;
-+ for (i = 0; i < n; i++) {
-+ if (res[i]->priority != priority) {
-+ if (f != l)
-+ compute_weight(res, f, l);
-+ f = i;
-+ priority = res[i]->priority;
-+ }
-+ l = i;
-+ }
-+
-+ qsort(res, n, sizeof(res[0]), srv_final_cmp);
-+
- for (i = 0; i < n - 1; i++)
- res[i]->next = res[i + 1];
-
diff --git a/ports-mgmt/pkg/files/patch-libpkg__fetch.c b/ports-mgmt/pkg/files/patch-libpkg__fetch.c
deleted file mode 100644
index 866a21b82ef2..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__fetch.c
+++ /dev/null
@@ -1,88 +0,0 @@
---- ./libpkg/fetch.c.orig 2013-07-06 05:48:19.000000000 -0500
-+++ ./libpkg/fetch.c 2013-11-19 11:13:45.352130038 -0600
-@@ -179,6 +179,8 @@
- return (EPKG_FATAL);
- }
-
-+#define URL_SCHEME_PREFIX "pkg+"
-+
- int
- pkg_fetch_file_to_fd(struct pkg_repo *repo, const char *url, int dest, time_t *t)
- {
-@@ -204,6 +206,7 @@
- int kq = -1, flags = 0;
- struct kevent e, ev;
- struct timespec ts;
-+ bool pkg_url_scheme = false;
-
- if (pkg_config_int64(PKG_CONFIG_FETCH_RETRY, &max_retry) == EPKG_FATAL)
- max_retry = 3;
-@@ -215,6 +218,34 @@
-
- retry = max_retry;
-
-+ /* A URL of the form http://host.example.com/ where
-+ * host.example.com does not resolve as a simple A record is
-+ * not valid according to RFC 2616 Section 3.2.2. Our usage
-+ * with SRV records is incorrect. However it is encoded into
-+ * /usr/sbin/pkg in various releases so we can't just drop it.
-+ *
-+ * Instead, introduce new pkg+http://, pkg+https://,
-+ * pkg+ssh://, pkg+ftp://, pkg+file:// to support the
-+ * SRV-style server discovery, and also to allow eg. Firefox
-+ * to run pkg-related stuff given a pkg+foo:// URL.
-+ *
-+ * Warn if using plain http://, https:// etc with SRV
-+ */
-+
-+ if (strncmp(URL_SCHEME_PREFIX, url, strlen(URL_SCHEME_PREFIX)) == 0) {
-+ if (repo->mirror_type != SRV) {
-+ pkg_emit_error("packagesite URL error for %s -- "
-+ URL_SCHEME_PREFIX
-+ ":// implies SRV mirror type", url);
-+
-+ /* Too early for there to be anything to cleanup */
-+ return(EPKG_FATAL);
-+ }
-+
-+ url += strlen(URL_SCHEME_PREFIX);
-+ pkg_url_scheme = true;
-+ }
-+
- u = fetchParseURL(url);
- if (t != NULL)
- u->ims_time = *t;
-@@ -253,6 +284,12 @@
- if (repo != NULL && repo->mirror_type == SRV &&
- (strncmp(u->scheme, "http", 4) == 0
- || strcmp(u->scheme, "ftp") == 0)) {
-+
-+ if (!pkg_url_scheme)
-+ pkg_emit_notice(
-+ "Warning: use of %s:// URL scheme with SRV records is deprecated: "
-+ "switch to pkg+%s://", u->scheme, u->scheme);
-+
- snprintf(zone, sizeof(zone),
- "_%s._tcp.%s", u->scheme, u->host);
- if (repo->srv == NULL)
-@@ -268,8 +305,10 @@
- }
- }
-
-- if (repo != NULL && repo->mirror_type == SRV && repo->srv != NULL)
-+ if (repo != NULL && repo->mirror_type == SRV && repo->srv != NULL) {
- strlcpy(u->host, srv_current->host, sizeof(u->host));
-+ u->port = srv_current->port;
-+ }
- else if (repo != NULL && repo->mirror_type == HTTP && repo->http != NULL) {
- strlcpy(u->scheme, http_current->url->scheme, sizeof(u->scheme));
- strlcpy(u->host, http_current->url->host, sizeof(u->host));
-@@ -366,7 +405,7 @@
-
- cleanup:
-
-- if (strcmp(u->scheme, "ssh") != 0) {
-+ if (u != NULL && strcmp(u->scheme, "ssh") != 0) {
- if (remote != NULL)
- fclose(remote);
- } else {
diff --git a/ports-mgmt/pkg/files/patch-libpkg__packing.c b/ports-mgmt/pkg/files/patch-libpkg__packing.c
deleted file mode 100644
index 8fc72c7b7be7..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__packing.c
+++ /dev/null
@@ -1,59 +0,0 @@
---- libpkg/packing.c.orig 2013-10-05 19:46:59.920058519 +0200
-+++ libpkg/packing.c 2013-10-05 19:49:46.531103495 +0200
-@@ -36,6 +36,8 @@
- #include <string.h>
- #include <sys/mman.h>
- #include <limits.h>
-+#include <pwd.h>
-+#include <grp.h>
-
- #include "pkg.h"
- #include "private/event.h"
-@@ -44,6 +46,7 @@
- static const char *packing_set_format(struct archive *a, pkg_formats format);
-
- struct packing {
-+ bool pass;
- struct archive *aread;
- struct archive *awrite;
- struct archive_entry_linkresolver *resolver;
-@@ -67,6 +70,7 @@
- archive_read_disk_set_symlink_physical((*pack)->aread);
-
- if (!is_dir(path)) {
-+ (*pack)->pass = false;
- (*pack)->awrite = archive_write_new();
- archive_write_set_format_pax_restricted((*pack)->awrite);
- ext = packing_set_format((*pack)->awrite, format);
-@@ -89,6 +93,7 @@
- return EPKG_FATAL;
- }
- } else { /* pass mode directly write to the disk */
-+ (*pack)->pass = true;
- (*pack)->awrite = archive_write_disk_new();
- archive_write_disk_set_options((*pack)->awrite,
- EXTRACT_ARCHIVE_FLAGS);
-@@ -177,11 +182,21 @@
- archive_entry_set_size(entry, 0);
- }
-
-- if (uname != NULL && uname[0] != '\0')
-+ if (uname != NULL && uname[0] != '\0') {
-+ if (pack->pass) {
-+ struct passwd *pw = getpwnam(uname);
-+ archive_entry_set_uid(entry, pw->pw_uid);
-+ }
- archive_entry_set_uname(entry, uname);
-+ }
-
-- if (gname != NULL && gname[0] != '\0')
-+ if (gname != NULL && gname[0] != '\0') {
-+ if (pack->pass) {
-+ struct group *gr = getgrnam(gname);
-+ archive_entry_set_gid(entry, gr->gr_gid);
-+ }
- archive_entry_set_gname(entry, gname);
-+ }
-
- if (perm != 0)
- archive_entry_set_perm(entry, perm);
diff --git a/ports-mgmt/pkg/files/patch-libpkg__pkg.c b/ports-mgmt/pkg/files/patch-libpkg__pkg.c
deleted file mode 100644
index d01d2b4c4bbb..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__pkg.c
+++ /dev/null
@@ -1,47 +0,0 @@
---- libpkg/pkg.c.orig 2013-07-06 12:48:19.000000000 +0200
-+++ libpkg/pkg.c 2013-10-05 19:45:16.675062417 +0200
-@@ -1181,6 +1181,20 @@
- struct pkg_dir *dir = NULL;
- char spath[MAXPATHLEN + 1];
- char dpath[MAXPATHLEN + 1];
-+ bool disable_mtree;
-+ const char *prefix;
-+ char *mtree;
-+
-+ pkg_config_bool(PKG_CONFIG_DISABLE_MTREE, &disable_mtree);
-+ if (!disable_mtree) {
-+ pkg_get(pkg, PKG_PREFIX, &prefix, PKG_MTREE, &mtree);
-+ do_extract_mtree(mtree, prefix);
-+ }
-+
-+ /*
-+ * Execute pre-install scripts
-+ */
-+ pkg_script_run(pkg, PKG_SCRIPT_PRE_INSTALL);
-
- if (packing_init(&pack, dest, 0) != EPKG_OK) {
- /* TODO */
-@@ -1190,15 +1204,21 @@
- while (pkg_dirs(pkg, &dir) == EPKG_OK) {
- snprintf(spath, sizeof(spath), "%s%s", src, pkg_dir_path(dir));
- snprintf(dpath, sizeof(dpath), "%s%s", dest, pkg_dir_path(dir));
-- packing_append_file(pack, spath, dpath);
-+ packing_append_file_attr(pack, spath, dpath,
-+ dir->uname, dir->gname, dir->perm);
- }
-
- while (pkg_files(pkg, &file) == EPKG_OK) {
- snprintf(spath, sizeof(spath), "%s%s", src, pkg_file_path(file));
- snprintf(dpath, sizeof(dpath), "%s%s", dest, pkg_file_path(file));
-- packing_append_file(pack, spath, dpath);
-+ packing_append_file_attr(pack, spath, dpath,
-+ file->uname, file->gname, file->perm);
- }
-
-+ /*
-+ * Execute post install scripts
-+ */
-+ pkg_script_run(pkg, PKG_SCRIPT_POST_INSTALL);
-
- return (packing_finish(pack));
- }
diff --git a/ports-mgmt/pkg/files/patch-libpkg__pkg.h.in b/ports-mgmt/pkg/files/patch-libpkg__pkg.h.in
deleted file mode 100644
index 2afea253b6d0..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__pkg.h.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./libpkg/pkg.h.in.orig 2013-07-06 12:48:19.000000000 +0200
-+++ ./libpkg/pkg.h.in 2013-09-19 20:59:25.679219359 +0200
-@@ -626,7 +626,7 @@
- #define PKG_CONTAINS_STATIC_LIBS (1U << 25)
- #define PKG_CONTAINS_H_OR_LA (1U << 26)
-
--int pkg_analyse_files(struct pkgdb *, struct pkg *);
-+int pkg_analyse_files(struct pkgdb *, struct pkg *, const char *stage);
-
- /**
- * Suggest if a package could be marked architecture independent or
diff --git a/ports-mgmt/pkg/files/patch-libpkg__pkg_add.c b/ports-mgmt/pkg/files/patch-libpkg__pkg_add.c
deleted file mode 100644
index fab93b6a51af..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__pkg_add.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- libpkg/pkg_add.c.orig 2013-07-06 12:48:19.000000000 +0200
-+++ libpkg/pkg_add.c 2013-09-24 14:22:38.561062335 +0200
-@@ -100,7 +100,7 @@
- return (retcode);
- }
-
--static int
-+int
- do_extract_mtree(char *mtree, const char *prefix)
- {
- struct archive *a = NULL;
diff --git a/ports-mgmt/pkg/files/patch-libpkg__pkg_create.c b/ports-mgmt/pkg/files/patch-libpkg__pkg_create.c
deleted file mode 100644
index 4e7ddc1cbc91..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__pkg_create.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./libpkg/pkg_create.c.orig 2013-09-24 16:27:05.716245523 -0500
-+++ ./libpkg/pkg_create.c 2013-09-24 16:27:17.642245427 -0500
-@@ -323,7 +323,7 @@
- goto cleanup;
- }
-
-- if (pkg_files(pkg, &file) != EPKG_OK &&
-+ if (0 && pkg_files(pkg, &file) != EPKG_OK &&
- pkg_dirs(pkg, &dir) != EPKG_OK) {
- /* Now traverse the file directories, adding to the archive */
- packing_append_tree(pkg_archive, md_dir, NULL);
diff --git a/ports-mgmt/pkg/files/patch-libpkg__pkg_elf.c b/ports-mgmt/pkg/files/patch-libpkg__pkg_elf.c
deleted file mode 100644
index 343c43eaef48..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__pkg_elf.c
+++ /dev/null
@@ -1,114 +0,0 @@
---- ./libpkg/pkg_elf.c.orig 2013-07-06 12:48:19.000000000 +0200
-+++ ./libpkg/pkg_elf.c 2013-09-19 21:49:03.825014672 +0200
-@@ -87,6 +87,8 @@
- const char *name, bool is_shlib)
- {
- const char *pkgname, *pkgversion;
-+ struct pkg_file *file = NULL;
-+ const char *filepath;
-
- switch(filter_system_shlibs(name, NULL, 0)) {
- case EPKG_OK: /* A non-system library */
-@@ -100,6 +102,15 @@
- if (is_shlib)
- return (EPKG_OK);
-
-+ /* Search in libraries we do provide */
-+ while (pkg_files(pkg, &file) == EPKG_OK) {
-+ filepath = pkg_file_path(file);
-+ if (strcmp(&filepath[strlen(filepath) - strlen(name)], name) == 0) {
-+ pkg_addshlib_required(pkg, name);
-+ return (EPKG_OK);
-+ }
-+ }
-+
- pkg_get(pkg, PKG_NAME, &pkgname, PKG_VERSION, &pkgversion);
- warnx("(%s-%s) %s - shared library %s not found",
- pkgname, pkgversion, fpath, name);
-@@ -271,6 +282,10 @@
- ret = EPKG_END; /* Some error occurred, ignore this file */
- goto cleanup;
- }
-+ if (data->d_buf == NULL) {
-+ ret = EPKG_END; /* No osname available */
-+ goto cleanup;
-+ }
- osname = (const char *) data->d_buf + sizeof(Elf_Note);
- if (strncasecmp(osname, "freebsd", sizeof("freebsd")) != 0 &&
- strncasecmp(osname, "dragonfly", sizeof("dragonfly")) != 0) {
-@@ -323,7 +338,7 @@
- if (dyn->d_tag != DT_RPATH && dyn->d_tag != DT_RUNPATH)
- continue;
-
-- shlib_list_from_rpath(elf_strptr(e, sh_link, dyn->d_un.d_val),
-+ shlib_list_from_rpath(elf_strptr(e, sh_link, dyn->d_un.d_val),
- dirname(fpath));
- break;
- }
-@@ -377,11 +392,11 @@
- }
-
- int
--pkg_analyse_files(struct pkgdb *db, struct pkg *pkg)
-+pkg_analyse_files(struct pkgdb *db, struct pkg *pkg, const char *stage)
- {
- struct pkg_file *file = NULL;
- int ret = EPKG_OK;
-- const char *fpath;
-+ char fpath[MAXPATHLEN];
- bool autodeps = false;
- bool developer = false;
- int (*action)(void *, struct pkg *, const char *, const char *, bool);
-@@ -410,7 +425,10 @@
- PKG_CONTAINS_H_OR_LA);
-
- while (pkg_files(pkg, &file) == EPKG_OK) {
-- fpath = pkg_file_path(file);
-+ if (stage != NULL)
-+ snprintf(fpath, MAXPATHLEN, "%s/%s", stage, pkg_file_path(file));
-+ else
-+ strlcpy(fpath, pkg_file_path(file), MAXPATHLEN);
-
- ret = analyse_elf(pkg, fpath, action, db);
- if (developer) {
-@@ -484,7 +502,7 @@
- uint32_t version = 0;
- int ret = EPKG_OK;
- int i;
-- const char *abi, *endian_corres_str, *wordsize_corres_str;
-+ const char *abi, *endian_corres_str, *wordsize_corres_str, *fpu;
-
- if (elf_version(EV_CURRENT) == EV_NONE) {
- pkg_emit_error("ELF library initialization failed: %s",
-@@ -569,10 +587,28 @@
- endian_corres_str = elf_corres_to_string(endian_corres,
- (int)elfhdr.e_ident[EI_DATA]);
-
-+ /* FreeBSD doesn't support the hard-float ABI yet */
-+ fpu = "softfp";
-+ if ((elfhdr.e_flags & 0xFF000000) != 0) {
-+ /* This is an EABI file, the conformance level is set */
-+ abi = "eabi";
-+ } else if (elfhdr.e_ident[EI_OSABI] != ELFOSABI_NONE) {
-+ /*
-+ * EABI executables all have this field set to
-+ * ELFOSABI_NONE, therefore it must be an oabi file.
-+ */
-+ abi = "oabi";
-+ } else {
-+ /*
-+ * We may have failed to positively detect the ABI,
-+ * set the ABI to unknown. If we end up here one of
-+ * the above cases should be fixed for the binary.
-+ */
-+ pkg_emit_error("unknown ARM ABI");
-+ goto cleanup;
-+ }
- snprintf(dest + strlen(dest), sz - strlen(dest), ":%s:%s:%s",
-- endian_corres_str,
-- (elfhdr.e_flags & EF_ARM_NEW_ABI) > 0 ? "eabi" : "oabi",
-- (elfhdr.e_flags & EF_ARM_VFP_FLOAT) > 0 ? "softfp" : "vfp");
-+ endian_corres_str, abi, fpu);
- break;
- case EM_MIPS:
- /*
diff --git a/ports-mgmt/pkg/files/patch-libpkg__pkgdb.c b/ports-mgmt/pkg/files/patch-libpkg__pkgdb.c
deleted file mode 100644
index 8f93324bab28..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__pkgdb.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./libpkg/pkgdb.c.orig 2013-09-19 20:55:45.183234062 +0200
-+++ ./libpkg/pkgdb.c 2013-09-19 20:55:15.578236583 +0200
-@@ -2661,7 +2661,7 @@
- return (EPKG_FATAL);
- }
-
-- if ((ret = pkg_analyse_files(db, pkg)) == EPKG_OK) {
-+ if ((ret = pkg_analyse_files(db, pkg, NULL)) == EPKG_OK) {
- if (!db->prstmt_initialized &&
- prstmt_initialize(db) != EPKG_OK)
- return (EPKG_FATAL);
diff --git a/ports-mgmt/pkg/files/patch-libpkg__private__elf_tables.h b/ports-mgmt/pkg/files/patch-libpkg__private__elf_tables.h
deleted file mode 100644
index 15f6fed982eb..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__private__elf_tables.h
+++ /dev/null
@@ -1,13 +0,0 @@
---- ./libpkg/private/elf_tables.h.orig 2013-07-06 12:48:19.000000000 +0200
-+++ ./libpkg/private/elf_tables.h 2013-09-19 21:52:03.661029778 +0200
-@@ -59,7 +59,9 @@
- { -1, NULL }
- };
-
--#define EF_MIPS_ABI 0x0000F000
-+#ifndef EF_MIPS_ABI
-+#define EF_MIPS_ABI 0x0000f000
-+#endif
- #define E_MIPS_ABI_O32 0x00001000
- #define E_MIPS_ABI_N32 0x00000020
-
diff --git a/ports-mgmt/pkg/files/patch-libpkg__private__pkg.h b/ports-mgmt/pkg/files/patch-libpkg__private__pkg.h
deleted file mode 100644
index 090a19b6c87e..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__private__pkg.h
+++ /dev/null
@@ -1,8 +0,0 @@
---- ./libpkg/private/pkg.h.orig 2013-09-24 14:56:39.000000000 +0200
-+++ ./libpkg/private/pkg.h 2013-09-24 14:57:23.000000000 +0200
-@@ -405,4 +405,5 @@
- int pkg_emit_filelist(struct pkg *, FILE *);
- int pkg_parse_manifest_archive(struct pkg *pkg, struct archive *a, struct pkg_manifest_key *keys);
-
-+int do_extract_mtree(char *mtree, const char *prefix);
- #endif
diff --git a/ports-mgmt/pkg/files/patch-libpkg__private__utils.h b/ports-mgmt/pkg/files/patch-libpkg__private__utils.h
deleted file mode 100644
index a7e992134101..000000000000
--- a/ports-mgmt/pkg/files/patch-libpkg__private__utils.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./libpkg/private/utils.h.orig 2013-07-06 05:48:19.000000000 -0500
-+++ ./libpkg/private/utils.h 2013-11-19 11:13:45.354131958 -0600
-@@ -60,6 +60,7 @@
- unsigned int priority;
- unsigned int weight;
- unsigned int port;
-+ unsigned int finalweight;
- char host[MAXHOSTNAMELEN];
- struct dns_srvinfo *next;
- };
diff --git a/ports-mgmt/pkg/files/patch-pkg-static__Makefile b/ports-mgmt/pkg/files/patch-pkg-static__Makefile
deleted file mode 100644
index b05db45bc478..000000000000
--- a/ports-mgmt/pkg/files/patch-pkg-static__Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
---- ./pkg-static/Makefile.orig 2013-07-06 05:48:19.000000000 -0500
-+++ ./pkg-static/Makefile 2013-10-12 07:25:25.352756808 -0500
-@@ -6,12 +6,8 @@
- NOMAN= yes
- LDADD_STATIC= -L${.OBJDIR}/../external/sqlite
-
--.if !exists(/usr/include/bsdyml.h)
- LDADD_STATIC+= -L${.OBJDIR}/../external/libyaml \
- -lyaml
--.else
--LDADD_STATIC+= -lbsdyml
--.endif
-
- .if defined(WITH_BUNDLED_LIBELF)
- LDADD_STATIC+= -L${.OBJDIR}/../external/libelf
diff --git a/ports-mgmt/pkg/files/patch-pkg__register.c b/ports-mgmt/pkg/files/patch-pkg__register.c
deleted file mode 100644
index ddb4bccbf270..000000000000
--- a/ports-mgmt/pkg/files/patch-pkg__register.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./pkg/register.c.orig 2013-09-19 20:56:18.299519000 +0200
-+++ ./pkg/register.c 2013-09-19 20:56:34.568231772 +0200
-@@ -285,7 +285,7 @@
- */
-
- if (!testing_mode)
-- pkg_analyse_files(db, pkg);
-+ pkg_analyse_files(db, pkg, input_path);
-
- pkg_get(pkg, PKG_ARCH, &arch);
- if (arch == NULL) {
diff --git a/ports-mgmt/pkg/files/patch-pkg__upgrade.c b/ports-mgmt/pkg/files/patch-pkg__upgrade.c
deleted file mode 100644
index 862e27022b9b..000000000000
--- a/ports-mgmt/pkg/files/patch-pkg__upgrade.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./pkg/upgrade.c.orig 2013-09-25 07:37:38.657129024 -0500
-+++ ./pkg/upgrade.c 2013-09-25 07:37:52.227152887 -0500
-@@ -151,7 +151,7 @@
-
- if (!quiet || dry_run) {
- print_jobs_summary(jobs,
-- "Uprgades have been requested for the following %d "
-+ "Upgrades have been requested for the following %d "
- "packages:\n\n", nbactions);
-
- if (!yes && !dry_run)
diff --git a/ports-mgmt/pkg/pkg-plist b/ports-mgmt/pkg/pkg-plist
index 823010497fa0..ee14906f3d14 100644
--- a/ports-mgmt/pkg/pkg-plist
+++ b/ports-mgmt/pkg/pkg-plist
@@ -1,16 +1,14 @@
-etc/pkg.conf.sample
-sbin/pkg
-sbin/pkg-static
-sbin/pkg2ng
-include/pkg.h
-lib/libpkg.so.1
-lib/libpkg.so
-lib/libpkg.a
-etc/periodic/daily/400.status-pkg
+etc/bash_completion.d/_pkg.bash
etc/periodic/daily/411.pkg-backup
etc/periodic/daily/490.status-pkg-changes
etc/periodic/security/410.pkg-audit
etc/periodic/security/460.pkg-checksum
+etc/periodic/weekly/400.status-pkg
+etc/pkg.conf.sample
+include/pkg.h
+lib/libpkg.a
+lib/libpkg.so
+lib/libpkg.so.1
libdata/pkgconfig/pkg.pc
man/man3/pkg_printf.3.gz
man/man5/pkg-repository.5.gz
@@ -47,11 +45,14 @@ man/man8/pkg-upgrade.8.gz
man/man8/pkg-version.8.gz
man/man8/pkg-which.8.gz
man/man8/pkg.8.gz
+sbin/pkg
+sbin/pkg-static
+sbin/pkg2ng
share/zsh/site-functions/_pkg
-etc/bash_completion.d/_pkg.bash
@dirrmtry etc/bash_completion.d
@dirrmtry etc/periodic/daily
@dirrmtry etc/periodic/security
+@dirrmtry etc/periodic/weekly
@dirrmtry etc/periodic
@dirrmtry share/zsh/site-functions
@dirrmtry share/zsh