summaryrefslogtreecommitdiff
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
parentRelease final pkg 1.2 version: (diff)
Welcome pkg 1.2 final
Changelog: - Improved build system - Allow to hook plugins, before closing the local db if it was opened in RW mode - Allow ARCH to be printed by pkg info - New pkg bootstrap subcommand that is the counter part of the pkg(7) bootstrap subcommand - Use port specified in the SRV entries to connect to a given mirror - Properly support srv priority/weigh when ordering mirrors - Lots of spelling/grammar fixes - Broken incremental pkg repo support was removed. - ABI is now checked again using globs: * a 'noarch' package should just specify: ARCH: 'freebsd:*' * a package working on both i386 and amd64: ARCH: 'freebsd:9:x86:*' - new pkg config subcommand to allow direct query of options - options can now have a description - pkg repo can now take new arguments: pkg repo [path] [rsa_key|'signing_command: <command>'] This allow calling external command to perform the signing and pass the checksum to be signed in the command stdin. - in case pkg info is querying a file or is a single direct match query then default on -f - pkg info -q is now equivalent of pkg info -qa - expat is now always bundled (for vuxml) - vuxml is now the default source for pkg audit - Accept empty/comment only configuration files - Print a pkg name only once - even if multiple vulns were found - when using -q in pkg audit - pkg info now default on glob matching - Support for pkg+foo url scheme where foo can be (http, https, ftp). - pkg add is now able to read the packages from a pipe or a non-regular file '-' is an alias for stdin, this also works from pipes, fifos, unix domain sockets etc. - New 'fingerprint' kind of signature: if a repository is declared using the fingerprint type of signature, a fingerprint directory should also be provided. Inside that fingerprint directory should be 2 directories: trusted and revoked. Those directories will contains files (in yaml/ucl format) containing the fingerprint of the trusted certificated and the revoked ones: --- begins -- function: sha256 fingerprint: an_hex_representation_of_the_fingerprint --- ends --- All unknown attribute will be silently ignored to allow extending in the future. It also support multiple signatures inside the catalog. the catalog should provide the signature in the following form: name.sig name.cert - packagesite in pkg.conf is deprecated in favour using dedicated repository configuration files - REPO_DIR is now a list instead of a simple string - New git like aliases to allow creating custom commands - Allow using '?' operator in pkg query expressions - Fix ssh:// support - New PKG_SSH_ARGS to allow passing custom arguments to ssh command used for the ssh:// protocol - Do not generate catalogs in pkg 1.0 format anymore. - YAML is replaced by UCL format: Both formats are really simular. pkg(8) will falls back on parsing YAML when the UCL parser fail. And will emit a warning to the user showing a syntax that is compatible with both YAML and UCL. More informations on UCL: https://github.com/vstakhov/libucl - Dependencies on library is now automatic via pkg register and pkg create - Auto upgrade of pkg(8) now restart the upgrade process automatically - Lots of bug fixes discovered by Coverity Scan - New debug level traces - Bug fixes in zsh completion - rquery can now take a -I argument to output index like lines (needed for bsdconfig) - Skip self upgrade with -F is passed - Autodetect if libelf should be used bundled - Lots of bug fixes Thanks a lot to all people allowed this release to happen, may that be from providing code, ideas, submitting bugs, documenting or just supporting.
Notes
Notes: svn path=/head/; revision=334937
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