From owner-svn-src-vendor@FreeBSD.ORG Mon Dec 17 10:58:30 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 43C753E0; Mon, 17 Dec 2012 10:58:30 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 241648FC12; Mon, 17 Dec 2012 10:58:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBHAwUZf072757; Mon, 17 Dec 2012 10:58:30 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBHAwPWi072724; Mon, 17 Dec 2012 10:58:25 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201212171058.qBHAwPWi072724@svn.freebsd.org> From: Erwin Lansing Date: Mon, 17 Dec 2012 10:58:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244353 - in vendor/bind9/dist-9.6: . bin/check bin/dig bin/dnssec bin/named bin/nsupdate doc doc/arm doc/misc lib lib/bind9 lib/bind9/include lib/bind9/include/bind9 lib/dns lib/dns/in... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Dec 2012 10:58:30 -0000 Author: erwin Date: Mon Dec 17 10:58:24 2012 New Revision: 244353 URL: http://svnweb.freebsd.org/changeset/base/244353 Log: Vendor import of Bind 9.6-ESV-R8 Approved by: delphij (mentor) Sponsored by: DK Hostmaster A/S Modified: vendor/bind9/dist-9.6/CHANGES vendor/bind9/dist-9.6/README vendor/bind9/dist-9.6/bin/check/check-tool.c vendor/bind9/dist-9.6/bin/dig/nslookup.c vendor/bind9/dist-9.6/bin/dnssec/dnssec-signzone.c vendor/bind9/dist-9.6/bin/named/controlconf.c vendor/bind9/dist-9.6/bin/named/convertxsl.pl vendor/bind9/dist-9.6/bin/named/statschannel.c vendor/bind9/dist-9.6/bin/nsupdate/nsupdate.c vendor/bind9/dist-9.6/configure.in vendor/bind9/dist-9.6/doc/Makefile.in vendor/bind9/dist-9.6/doc/arm/Bv9ARM-book.xml vendor/bind9/dist-9.6/doc/arm/Bv9ARM.ch06.html vendor/bind9/dist-9.6/doc/arm/Bv9ARM.pdf vendor/bind9/dist-9.6/doc/misc/format-options.pl vendor/bind9/dist-9.6/doc/misc/sort-options.pl vendor/bind9/dist-9.6/isc-config.sh.in vendor/bind9/dist-9.6/lib/Makefile.in vendor/bind9/dist-9.6/lib/bind9/api vendor/bind9/dist-9.6/lib/bind9/check.c vendor/bind9/dist-9.6/lib/bind9/include/Makefile.in vendor/bind9/dist-9.6/lib/bind9/include/bind9/Makefile.in vendor/bind9/dist-9.6/lib/dns/adb.c vendor/bind9/dist-9.6/lib/dns/api vendor/bind9/dist-9.6/lib/dns/dnssec.c vendor/bind9/dist-9.6/lib/dns/dst_openssl.h vendor/bind9/dist-9.6/lib/dns/dst_parse.c vendor/bind9/dist-9.6/lib/dns/dst_result.c vendor/bind9/dist-9.6/lib/dns/include/Makefile.in vendor/bind9/dist-9.6/lib/dns/include/dns/dnssec.h vendor/bind9/dist-9.6/lib/dns/include/dns/iptable.h vendor/bind9/dist-9.6/lib/dns/include/dns/log.h vendor/bind9/dist-9.6/lib/dns/include/dns/stats.h vendor/bind9/dist-9.6/lib/dns/include/dns/zone.h vendor/bind9/dist-9.6/lib/dns/include/dst/Makefile.in vendor/bind9/dist-9.6/lib/dns/include/dst/result.h vendor/bind9/dist-9.6/lib/dns/log.c vendor/bind9/dist-9.6/lib/dns/master.c vendor/bind9/dist-9.6/lib/dns/masterdump.c vendor/bind9/dist-9.6/lib/dns/openssl_link.c vendor/bind9/dist-9.6/lib/dns/openssldh_link.c vendor/bind9/dist-9.6/lib/dns/openssldsa_link.c vendor/bind9/dist-9.6/lib/dns/opensslrsa_link.c vendor/bind9/dist-9.6/lib/dns/rbtdb.c vendor/bind9/dist-9.6/lib/dns/rdata.c vendor/bind9/dist-9.6/lib/dns/spnego_asn1.pl vendor/bind9/dist-9.6/lib/dns/zone.c vendor/bind9/dist-9.6/lib/isc/alpha/Makefile.in vendor/bind9/dist-9.6/lib/isc/alpha/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/alpha/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/api vendor/bind9/dist-9.6/lib/isc/ia64/Makefile.in vendor/bind9/dist-9.6/lib/isc/ia64/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/ia64/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/ia64/include/isc/atomic.h vendor/bind9/dist-9.6/lib/isc/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/include/isc/file.h vendor/bind9/dist-9.6/lib/isc/mem.c vendor/bind9/dist-9.6/lib/isc/mips/Makefile.in vendor/bind9/dist-9.6/lib/isc/mips/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/mips/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/noatomic/Makefile.in vendor/bind9/dist-9.6/lib/isc/noatomic/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/noatomic/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/nothreads/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/nothreads/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/powerpc/Makefile.in vendor/bind9/dist-9.6/lib/isc/powerpc/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/powerpc/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/pthreads/condition.c vendor/bind9/dist-9.6/lib/isc/pthreads/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/pthreads/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/sparc64/Makefile.in vendor/bind9/dist-9.6/lib/isc/sparc64/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/sparc64/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/unix/file.c vendor/bind9/dist-9.6/lib/isc/unix/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/unix/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/x86_32/Makefile.in vendor/bind9/dist-9.6/lib/isc/x86_32/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/x86_32/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isc/x86_64/Makefile.in vendor/bind9/dist-9.6/lib/isc/x86_64/include/Makefile.in vendor/bind9/dist-9.6/lib/isc/x86_64/include/isc/Makefile.in vendor/bind9/dist-9.6/lib/isccc/api vendor/bind9/dist-9.6/lib/isccc/cc.c vendor/bind9/dist-9.6/lib/isccc/include/Makefile.in vendor/bind9/dist-9.6/lib/isccc/include/isccc/Makefile.in vendor/bind9/dist-9.6/lib/isccfg/include/Makefile.in vendor/bind9/dist-9.6/lib/isccfg/include/isccfg/Makefile.in vendor/bind9/dist-9.6/lib/lwres/Makefile.in vendor/bind9/dist-9.6/lib/lwres/api vendor/bind9/dist-9.6/lib/lwres/getaddrinfo.c vendor/bind9/dist-9.6/lib/lwres/include/Makefile.in vendor/bind9/dist-9.6/lib/lwres/include/lwres/Makefile.in vendor/bind9/dist-9.6/lib/lwres/man/Makefile.in vendor/bind9/dist-9.6/lib/lwres/unix/Makefile.in vendor/bind9/dist-9.6/lib/lwres/unix/include/Makefile.in vendor/bind9/dist-9.6/lib/lwres/unix/include/lwres/Makefile.in vendor/bind9/dist-9.6/make/rules.in vendor/bind9/dist-9.6/version Modified: vendor/bind9/dist-9.6/CHANGES ============================================================================== --- vendor/bind9/dist-9.6/CHANGES Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/CHANGES Mon Dec 17 10:58:24 2012 (r244353) @@ -1,33 +1,87 @@ - --- 9.6-ESV-R7-P4 released --- + --- 9.6-ESV-R8 released --- 3383. [security] A certain combination of records in the RBT could cause named to hang while populating the additional section of a response. [RT #31090] - --- 9.6-ESV-R7-P3 released --- +3373. [bug] win32: open raw files in binary mode. [RT #30944] 3364. [security] Named could die on specially crafted record. [RT #30416] -3358 [bug] Fix declaration of fatal in bin/named/server.c + --- 9.6-ESV-R8rc1 released --- + +3369. [bug] nsupdate terminated unexpectedly in interactive mode + if built with readline support. [RT #29550] + +3368. [bug] and were not C++ safe. + +3366. [bug] Fixed Read-After-Write dependency violation for IA64 + atomic operations. [RT #25181] + +3365. [bug] Removed spurious newlines from log messages in + zone.c [RT #30675] + +3362. [bug] Setting some option values to 0 in named.conf + could trigger an assertion failure on startup. + [RT #27730] + +3360. [bug] 'host -w' could die. [RT #18723] + +3359. [bug] An improperly-formed TSIG secret could cause a + memory leak. [RT #30607] + +3358. [bug] Fix declaration of fatal in bin/named/server.c and bin/nsupdate/main.c. [RT #30522] - --- 9.6-ESV-R7-P2 released --- +3357. [port] Add support for libxml2-2.8.x [RT #30440] + + --- 9.6-ESV-R8b1 released --- + +3354. [func] Improve OpenSSL error logging. [RT #29932] + +3352. [bug] Ensure that learned server attributes timeout of the + adb cache. [RT #29856] + +3350. [bug] Memory read overrun in isc___mem_reallocate if + ISC_MEM_DEBUGCTX memory debugging flag is set. + [RT #30240] + +3348. [bug] Prevent RRSIG data from being cached if a negative + record matching the covering type exists at a higher + trust level. Such data already can't be retrieved from + the cache since change 3218 -- this prevents it + being inserted into the cache as well. [RT #26809] 3346. [security] Bad-cache data could be used before it was initialized, causing an assert. [RT #30025] -3343. [bug] Relax isc_random_jitter() REQUIRE tests. [RT #29821] +3343. [bug] Relax isc_random_jitter() REQUIRE tests. [RT #29821] 3342. [bug] Change #3314 broke saving of stub zones to disk resulting in excessive cpu usage in some cases. [RT #29952] - --- 9.6-ESV-R7-P1 released --- +3337. [bug] Change #3294 broke support for the multiple keys + in controls. [RT #29694] + +3335. [func] nslookup: return a nonzero exit code when unable + to get an answer. [RT #29492] + +3332. [bug] Re-use cached DS rrsets if possible. [RT #29446] 3331. [security] dns_rdataslab_fromrdataset could produce bad rdataslabs. [RT #29644] +3329. [bug] Handle RRSIG signer-name case consistently: We + generate RRSIG records with the signer-name in + lower case. We accept them with any case, but if + they fail to validate, we try again in lower case. + [RT #27451] + +3328. [bug] Fixed inconsistent data checking in dst_parse.c. + [RT #29401] + --- 9.6-ESV-R7 released --- 3318. [tuning] Reduce the amount of work performed while holding a Modified: vendor/bind9/dist-9.6/README ============================================================================== --- vendor/bind9/dist-9.6/README Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/README Mon Dec 17 10:58:24 2012 (r244353) @@ -48,9 +48,14 @@ BIND 9 For up-to-date release notes and errata, see http://www.isc.org/software/bind9/releasenotes +BIND 9.6-ESV-R8 (Extended Support Version) + + BIND 9.6-ESV-R8 includes several bug fixes and patches security + flaws described in CVE-2012-1667, CVE-2012-3817 and CVE-2012-4244. + BIND 9.6-ESV-R7 (Extended Support Version) - BIND 9.4-ESV-R7 is a maintenance release, fixing bugs in BIND + BIND 9.6-ESV-R7 is a maintenance release, fixing bugs in BIND 9.6-ESV-R6. BIND 9.6-ESV-R6 (Extended Support Version) @@ -60,7 +65,7 @@ BIND 9.6-ESV-R6 (Extended Support Versio BIND 9.6-ESV-R5 (Extended Support Version) - BIND 9.4-ESV-R5 is a maintenance release, fixing bugs in BIND + BIND 9.6-ESV-R5 is a maintenance release, fixing bugs in BIND 9.6-ESV-R4. BIND 9.6.3/BIND 9.6-ESV-R4 Modified: vendor/bind9/dist-9.6/bin/check/check-tool.c ============================================================================== --- vendor/bind9/dist-9.6/bin/check/check-tool.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/bin/check/check-tool.c Mon Dec 17 10:58:24 2012 (r244353) @@ -640,6 +640,9 @@ dump_zone(const char *zonename, dns_zone { isc_result_t result; FILE *output = stdout; + const char *flags; + + flags = (fileformat == dns_masterformat_text) ? "w+" : "wb+"; if (debug) { if (filename != NULL && strcmp(filename, "-") != 0) @@ -650,7 +653,7 @@ dump_zone(const char *zonename, dns_zone } if (filename != NULL && strcmp(filename, "-") != 0) { - result = isc_stdio_open(filename, "w+", &output); + result = isc_stdio_open(filename, flags, &output); if (result != ISC_R_SUCCESS) { fprintf(stderr, "could not open output " Modified: vendor/bind9/dist-9.6/bin/dig/nslookup.c ============================================================================== --- vendor/bind9/dist-9.6/bin/dig/nslookup.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/bin/dig/nslookup.c Mon Dec 17 10:58:24 2012 (r244353) @@ -57,6 +57,7 @@ static isc_boolean_t in_use = ISC_FALSE; static char defclass[MXRD] = "IN"; static char deftype[MXRD] = "A"; static isc_event_t *global_event = NULL; +static int query_error = 1, print_error = 0; static char domainopt[DNS_NAME_MAXTEXT]; @@ -406,6 +407,9 @@ isc_result_t printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) { char servtext[ISC_SOCKADDR_FORMATSIZE]; + /* I've we've gotten this far, we've reached a server. */ + query_error = 0; + debug("printmessage()"); isc_sockaddr_format(&query->sockaddr, servtext, sizeof(servtext)); @@ -433,6 +437,9 @@ printmessage(dig_query_t *query, dns_mes (msg->rcode != dns_rcode_nxdomain) ? nametext : query->lookup->textname, rcode_totext(msg->rcode)); debug("returning with rcode == 0"); + + /* the lookup failed */ + print_error |= 1; return (ISC_R_SUCCESS); } @@ -903,5 +910,5 @@ main(int argc, char **argv) { destroy_libs(); isc_app_finish(); - return (0); + return (query_error | print_error); } Modified: vendor/bind9/dist-9.6/bin/dnssec/dnssec-signzone.c ============================================================================== --- vendor/bind9/dist-9.6/bin/dnssec/dnssec-signzone.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/bin/dnssec/dnssec-signzone.c Mon Dec 17 10:58:24 2012 (r244353) @@ -3520,7 +3520,10 @@ main(int argc, char *argv[]) { check_result(result, "isc_file_mktemplate"); fp = NULL; - result = isc_file_openunique(tempfile, &fp); + if (outputformat == dns_masterformat_text) + result = isc_file_openunique(tempfile, &fp); + else + result = isc_file_bopenunique(tempfile, &fp); if (result != ISC_R_SUCCESS) fatal("failed to open temporary output file: %s", isc_result_totext(result)); Modified: vendor/bind9/dist-9.6/bin/named/controlconf.c ============================================================================== --- vendor/bind9/dist-9.6/bin/named/controlconf.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/bin/named/controlconf.c Mon Dec 17 10:58:24 2012 (r244353) @@ -373,8 +373,10 @@ control_recvmessage(isc_task_t *task, is if (result == ISC_R_SUCCESS) break; isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret)); - log_invalid(&conn->ccmsg, result); - goto cleanup; + if (result != ISCCC_R_BADAUTH) { + log_invalid(&conn->ccmsg, result); + goto cleanup; + } } if (key == NULL) { Modified: vendor/bind9/dist-9.6/bin/named/convertxsl.pl ============================================================================== --- vendor/bind9/dist-9.6/bin/named/convertxsl.pl Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/bin/named/convertxsl.pl Mon Dec 17 10:58:24 2012 (r244353) @@ -1,6 +1,6 @@ #!/usr/bin/env perl # -# Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2006-2008, 2012 Internet Systems Consortium, Inc. ("ISC") # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above Modified: vendor/bind9/dist-9.6/bin/named/statschannel.c ============================================================================== --- vendor/bind9/dist-9.6/bin/named/statschannel.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/bin/named/statschannel.c Mon Dec 17 10:58:24 2012 (r244353) @@ -84,16 +84,19 @@ static const char *nsstats_desc[dns_nsst static const char *resstats_desc[dns_resstatscounter_max]; static const char *zonestats_desc[dns_zonestatscounter_max]; static const char *sockstats_desc[isc_sockstatscounter_max]; +static const char *dnssecstats_desc[dns_dnssecstats_max]; #ifdef HAVE_LIBXML2 static const char *nsstats_xmldesc[dns_nsstatscounter_max]; static const char *resstats_xmldesc[dns_resstatscounter_max]; static const char *zonestats_xmldesc[dns_zonestatscounter_max]; static const char *sockstats_xmldesc[isc_sockstatscounter_max]; +static const char *dnssecstats_xmldesc[dns_dnssecstats_max]; #else #define nsstats_xmldesc NULL #define resstats_xmldesc NULL #define zonestats_xmldesc NULL #define sockstats_xmldesc NULL +#define dnssecstats_xmldesc NULL #endif /* HAVE_LIBXML2 */ #define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0) @@ -107,6 +110,7 @@ static int nsstats_index[dns_nsstatscoun static int resstats_index[dns_resstatscounter_max]; static int zonestats_index[dns_zonestatscounter_max]; static int sockstats_index[isc_sockstatscounter_max]; +static int dnssecstats_index[dns_dnssecstats_max]; static inline void set_desc(int counter, int maxcounter, const char *fdesc, const char **fdescs, @@ -408,6 +412,33 @@ init_desc(void) { "FDwatchRecvErr"); INSIST(i == isc_sockstatscounter_max); + /* Initialize DNSSEC statistics */ + for (i = 0; i < dns_dnssecstats_max; i++) + dnssecstats_desc[i] = NULL; +#ifdef HAVE_LIBXML2 + for (i = 0; i < dns_dnssecstats_max; i++) + dnssecstats_xmldesc[i] = NULL; +#endif + +#define SET_DNSSECSTATDESC(counterid, desc, xmldesc) \ + do { \ + set_desc(dns_dnssecstats_ ## counterid, \ + dns_dnssecstats_max, \ + desc, dnssecstats_desc,\ + xmldesc, dnssecstats_xmldesc); \ + dnssecstats_index[i++] = dns_dnssecstats_ ## counterid; \ + } while (0) + + i = 0; + SET_DNSSECSTATDESC(asis, "dnssec validation success with signer " + "\"as is\"", "DNSSECasis"); + SET_DNSSECSTATDESC(downcase, "dnssec validation success with signer " + "lower cased", "DNSSECdowncase"); + SET_DNSSECSTATDESC(wildcard, "dnssec validation of wildcard signature", + "DNSSECwild"); + SET_DNSSECSTATDESC(fail, "dnssec validation failures", "DNSSECfail"); + INSIST(i == dns_dnssecstats_max); + /* Sanity check */ for (i = 0; i < dns_nsstatscounter_max; i++) INSIST(nsstats_desc[i] != NULL); @@ -417,6 +448,8 @@ init_desc(void) { INSIST(zonestats_desc[i] != NULL); for (i = 0; i < isc_sockstatscounter_max; i++) INSIST(sockstats_desc[i] != NULL); + for (i = 0; i < dns_dnssecstats_max; i++) + INSIST(dnssecstats_desc[i] != NULL); #ifdef HAVE_LIBXML2 for (i = 0; i < dns_nsstatscounter_max; i++) INSIST(nsstats_xmldesc[i] != NULL); @@ -426,6 +459,8 @@ init_desc(void) { INSIST(zonestats_xmldesc[i] != NULL); for (i = 0; i < isc_sockstatscounter_max; i++) INSIST(sockstats_xmldesc[i] != NULL); + for (i = 0; i < dns_dnssecstats_max; i++) + INSIST(dnssecstats_xmldesc[i] != NULL); #endif } Modified: vendor/bind9/dist-9.6/bin/nsupdate/nsupdate.c ============================================================================== --- vendor/bind9/dist-9.6/bin/nsupdate/nsupdate.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/bin/nsupdate/nsupdate.c Mon Dec 17 10:58:24 2012 (r244353) @@ -1011,7 +1011,7 @@ parse_name(char **cmdlinep, dns_message_ isc_buffer_t source; word = nsu_strsep(cmdlinep, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read owner name\n"); return (STATUS_SYNTAX); } @@ -1044,6 +1044,11 @@ parse_rdata(char **cmdlinep, dns_rdatacl dns_rdatacallbacks_t callbacks; isc_result_t result; + if (cmdline == NULL) { + rdata->flags = DNS_RDATA_UPDATE; + return (STATUS_MORE); + } + while (*cmdline != 0 && isspace((unsigned char)*cmdline)) cmdline++; @@ -1110,7 +1115,7 @@ make_prereq(char *cmdline, isc_boolean_t */ if (isrrset) { word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read class or type\n"); goto failure; } @@ -1126,7 +1131,7 @@ make_prereq(char *cmdline, isc_boolean_t * Now read the type. */ word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read type\n"); goto failure; } @@ -1200,7 +1205,7 @@ evaluate_prereq(char *cmdline) { ddebug("evaluate_prereq()"); word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read operation code\n"); return (STATUS_SYNTAX); } @@ -1229,14 +1234,14 @@ evaluate_server(char *cmdline) { long port; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read server name\n"); return (STATUS_SYNTAX); } server = word; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) + if (word == NULL || *word == 0) port = DNSDEFAULTPORT; else { char *endp; @@ -1270,14 +1275,14 @@ evaluate_local(char *cmdline) { struct in6_addr in6; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read server name\n"); return (STATUS_SYNTAX); } local = word; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) + if (word == NULL || *word == 0) port = 0; else { char *endp; @@ -1326,7 +1331,7 @@ evaluate_key(char *cmdline) { char *n; namestr = nsu_strsep(&cmdline, " \t\r\n"); - if (*namestr == 0) { + if (namestr == NULL || *namestr == 0) { fprintf(stderr, "could not read key name\n"); return (STATUS_SYNTAX); } @@ -1350,7 +1355,7 @@ evaluate_key(char *cmdline) { } secretstr = nsu_strsep(&cmdline, "\r\n"); - if (*secretstr == 0) { + if (secretstr == NULL || *secretstr == 0) { fprintf(stderr, "could not read key secret\n"); return (STATUS_SYNTAX); } @@ -1391,7 +1396,7 @@ evaluate_zone(char *cmdline) { isc_result_t result; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read zone name\n"); return (STATUS_SYNTAX); } @@ -1418,7 +1423,7 @@ evaluate_realm(char *cmdline) { char buf[1024]; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { if (realm != NULL) isc_mem_free(mctx, realm); realm = NULL; @@ -1443,7 +1448,7 @@ evaluate_ttl(char *cmdline) { isc_uint32_t ttl; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not ttl\n"); return (STATUS_SYNTAX); } @@ -1477,7 +1482,7 @@ evaluate_class(char *cmdline) { dns_rdataclass_t rdclass; word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read class name\n"); return (STATUS_SYNTAX); } @@ -1535,7 +1540,7 @@ update_addordelete(char *cmdline, isc_bo * If it's a delete, ignore a TTL if present (for compatibility). */ word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { if (!isdelete) { fprintf(stderr, "could not read owner ttl\n"); goto failure; @@ -1576,7 +1581,7 @@ update_addordelete(char *cmdline, isc_bo */ word = nsu_strsep(&cmdline, " \t\r\n"); parseclass: - if (*word == 0) { + if (word == NULL || *word == 0) { if (isdelete) { rdataclass = dns_rdataclass_any; rdatatype = dns_rdatatype_any; @@ -1600,7 +1605,7 @@ update_addordelete(char *cmdline, isc_bo * Now read the type. */ word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { if (isdelete) { rdataclass = dns_rdataclass_any; rdatatype = dns_rdatatype_any; @@ -1680,7 +1685,7 @@ evaluate_update(char *cmdline) { ddebug("evaluate_update()"); word = nsu_strsep(&cmdline, " \t\r\n"); - if (*word == 0) { + if (word == NULL || *word == 0) { fprintf(stderr, "could not read operation code\n"); return (STATUS_SYNTAX); } @@ -1770,6 +1775,7 @@ get_next_command(void) { char cmdlinebuf[MAXCMD]; char *cmdline; char *word; + char *tmp; ddebug("get_next_command()"); if (interactive) { @@ -1781,11 +1787,18 @@ get_next_command(void) { isc_app_unblock(); if (cmdline == NULL) return (STATUS_QUIT); + + /* + * Normalize input by removing any eol. + */ + tmp = cmdline; + (void)nsu_strsep(&tmp, "\r\n"); + word = nsu_strsep(&cmdline, " \t\r\n"); if (feof(input)) return (STATUS_QUIT); - if (*word == 0) + if (word == NULL || *word == 0) return (STATUS_SEND); if (word[0] == ';') return (STATUS_MORE); Modified: vendor/bind9/dist-9.6/configure.in ============================================================================== --- vendor/bind9/dist-9.6/configure.in Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/configure.in Mon Dec 17 10:58:24 2012 (r244353) @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 1998-2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any @@ -1090,7 +1090,7 @@ case "$use_libxml2" in ;; auto|yes) case X`(xml2-config --version) 2>/dev/null` in - X2.[[67]].*) + X2.[[678]].*) libxml2_libs=`xml2-config --libs` libxml2_cflags=`xml2-config --cflags` ;; Modified: vendor/bind9/dist-9.6/doc/Makefile.in ============================================================================== --- vendor/bind9/dist-9.6/doc/Makefile.in Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/doc/Makefile.in Mon Dec 17 10:58:24 2012 (r244353) @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2007, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2000, 2001 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: vendor/bind9/dist-9.6/doc/arm/Bv9ARM-book.xml ============================================================================== --- vendor/bind9/dist-9.6/doc/arm/Bv9ARM-book.xml Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/doc/arm/Bv9ARM-book.xml Mon Dec 17 10:58:24 2012 (r244353) @@ -9978,7 +9978,7 @@ zone zone_nameidentity + is specified in the identity field. @@ -9995,7 +9995,7 @@ zone zone_nameidentity field. + identity field. @@ -10010,7 +10010,7 @@ zone zone_nameidentity + is specified in the identity field. @@ -10027,7 +10027,7 @@ zone zone_nameidentity field. + identity field. Modified: vendor/bind9/dist-9.6/doc/arm/Bv9ARM.ch06.html ============================================================================== --- vendor/bind9/dist-9.6/doc/arm/Bv9ARM.ch06.html Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/doc/arm/Bv9ARM.ch06.html Mon Dec 17 10:58:24 2012 (r244353) @@ -6255,7 +6255,7 @@ zone zone_ (machine$@REALM) for machine in REALM and and converts it machine.realm allowing the machine to update machine.realm. The REALM to be matched - is specified in the <replacable>identity</replacable> + is specified in the identity field.

@@ -6273,7 +6273,7 @@ zone zone_ converts it to machine.realm allowing the machine to update subdomains of machine.realm. The REALM to be matched is specified in the - <replacable>identity</replacable> field. + identity field.

@@ -6289,7 +6289,7 @@ zone zone_ (host/machine@REALM) for machine in REALM and and converts it machine.realm allowing the machine to update machine.realm. The REALM to be matched - is specified in the <replacable>identity</replacable> + is specified in the identity field.

@@ -6307,7 +6307,7 @@ zone zone_ converts it to machine.realm allowing the machine to update subdomains of machine.realm. The REALM to be matched is specified in the - <replacable>identity</replacable> field. + identity field.

Modified: vendor/bind9/dist-9.6/doc/arm/Bv9ARM.pdf ============================================================================== Binary file (source and/or target). No diff available. Modified: vendor/bind9/dist-9.6/doc/misc/format-options.pl ============================================================================== --- vendor/bind9/dist-9.6/doc/misc/format-options.pl Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/doc/misc/format-options.pl Mon Dec 17 10:58:24 2012 (r244353) @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: vendor/bind9/dist-9.6/doc/misc/sort-options.pl ============================================================================== --- vendor/bind9/dist-9.6/doc/misc/sort-options.pl Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/doc/misc/sort-options.pl Mon Dec 17 10:58:24 2012 (r244353) @@ -1,6 +1,6 @@ #!/bin/perl # -# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC") # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above Modified: vendor/bind9/dist-9.6/isc-config.sh.in ============================================================================== --- vendor/bind9/dist-9.6/isc-config.sh.in Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/isc-config.sh.in Mon Dec 17 10:58:24 2012 (r244353) @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2000, 2001, 2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: vendor/bind9/dist-9.6/lib/Makefile.in ============================================================================== --- vendor/bind9/dist-9.6/lib/Makefile.in Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/Makefile.in Mon Dec 17 10:58:24 2012 (r244353) @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 1998-2001, 2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: vendor/bind9/dist-9.6/lib/bind9/api ============================================================================== --- vendor/bind9/dist-9.6/lib/bind9/api Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/bind9/api Mon Dec 17 10:58:24 2012 (r244353) @@ -4,5 +4,5 @@ # 9.8: 80-89 # 9.9: 90-109 LIBINTERFACE = 50 -LIBREVISION = 7 +LIBREVISION = 9 LIBAGE = 0 Modified: vendor/bind9/dist-9.6/lib/bind9/check.c ============================================================================== --- vendor/bind9/dist-9.6/lib/bind9/check.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/bind9/check.c Mon Dec 17 10:58:24 2012 (r244353) @@ -287,10 +287,6 @@ disabled_algorithms(const cfg_obj_t *dis tresult = dns_secalg_fromtext(&alg, &r); if (tresult != ISC_R_SUCCESS) { - isc_uint8_t ui; - result = isc_parse_uint8(&ui, r.base, 10); - } - if (tresult != ISC_R_SUCCESS) { cfg_obj_log(cfg_listelt_value(element), logctx, ISC_LOG_ERROR, "invalid algorithm '%s'", r.base); @@ -1028,6 +1024,29 @@ typedef struct { } optionstable; static isc_result_t +check_nonzero(const cfg_obj_t *options, isc_log_t *logctx) { + isc_result_t result = ISC_R_SUCCESS; + const cfg_obj_t *obj = NULL; + unsigned int i; + + static const char *nonzero[] = { "max-retry-time", "min-retry-time", + "max-refresh-time", "min-refresh-time" }; + /* + * Check if value is zero. + */ + for (i = 0; i < sizeof(nonzero) / sizeof(nonzero[0]); i++) { + obj = NULL; + if (cfg_map_get(options, nonzero[i], &obj) == ISC_R_SUCCESS && + cfg_obj_asuint32(obj) == 0) { + cfg_obj_log(obj, logctx, ISC_LOG_ERROR, + "'%s' must not be zero", nonzero[i]); + result = ISC_R_FAILURE; + } + } + return (result); +} + +static isc_result_t check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions, const cfg_obj_t *config, isc_symtab_t *symtab, dns_rdataclass_t defclass, cfg_aclconfctx_t *actx, @@ -1036,7 +1055,7 @@ check_zoneconf(const cfg_obj_t *zconfig, const char *zname; const char *typestr; unsigned int ztype; - const cfg_obj_t *zoptions; + const cfg_obj_t *zoptions, *goptions = NULL; const cfg_obj_t *obj = NULL; isc_result_t result = ISC_R_SUCCESS; isc_result_t tresult; @@ -1105,9 +1124,11 @@ check_zoneconf(const cfg_obj_t *zconfig, }; zname = cfg_obj_asstring(cfg_tuple_get(zconfig, "name")); - zoptions = cfg_tuple_get(zconfig, "options"); + if (config != NULL) + cfg_map_get(config, "options", &goptions); + obj = NULL; (void)cfg_map_get(zoptions, "type", &obj); if (obj == NULL) { @@ -1188,6 +1209,12 @@ check_zoneconf(const cfg_obj_t *zconfig, } /* + * Check if value is zero. + */ + if (check_nonzero(zoptions, logctx) != ISC_R_SUCCESS) + result = ISC_R_FAILURE; + + /* * Look for inappropriate options for the given zone type. * Check that ACLs expand correctly. */ @@ -1760,10 +1787,16 @@ check_viewconf(const cfg_obj_t *config, isc_result_t result = ISC_R_SUCCESS; isc_result_t tresult = ISC_R_SUCCESS; cfg_aclconfctx_t actx; + const cfg_obj_t *options = NULL; const cfg_obj_t *obj; isc_boolean_t enablednssec, enablevalidation; /* + * Get global options block. + */ + (void)cfg_map_get(config, "options", &options); + + /* * Check that all zone statements are syntactically correct and * there are no duplicate zones. */ @@ -1798,8 +1831,6 @@ check_viewconf(const cfg_obj_t *config, * Check that forwarding is reasonable. */ if (voptions == NULL) { - const cfg_obj_t *options = NULL; - (void)cfg_map_get(config, "options", &options); if (options != NULL) if (check_forward(options, NULL, logctx) != ISC_R_SUCCESS) @@ -1810,11 +1841,17 @@ check_viewconf(const cfg_obj_t *config, } /* + * Check non-zero options at the global and view levels. + */ + if (options != NULL && check_nonzero(options, logctx) != ISC_R_SUCCESS) + result = ISC_R_FAILURE; + if (voptions != NULL &&check_nonzero(voptions, logctx) != ISC_R_SUCCESS) + result = ISC_R_FAILURE; + + /* * Check that dual-stack-servers is reasonable. */ if (voptions == NULL) { - const cfg_obj_t *options = NULL; - (void)cfg_map_get(config, "options", &options); if (options != NULL) if (check_dual_stack(options, logctx) != ISC_R_SUCCESS) result = ISC_R_FAILURE; @@ -1838,15 +1875,15 @@ check_viewconf(const cfg_obj_t *config, tresult = isc_symtab_create(mctx, 1000, freekey, mctx, ISC_FALSE, &symtab); if (tresult != ISC_R_SUCCESS) - return (ISC_R_NOMEMORY); + goto cleanup; (void)cfg_map_get(config, "key", &keys); tresult = check_keylist(keys, symtab, mctx, logctx); if (tresult == ISC_R_EXISTS) result = ISC_R_FAILURE; else if (tresult != ISC_R_SUCCESS) { - isc_symtab_destroy(&symtab); - return (tresult); + result = tresult; + goto cleanup; } if (voptions != NULL) { @@ -1856,8 +1893,8 @@ check_viewconf(const cfg_obj_t *config, if (tresult == ISC_R_EXISTS) result = ISC_R_FAILURE; else if (tresult != ISC_R_SUCCESS) { - isc_symtab_destroy(&symtab); - return (tresult); + result = tresult; + goto cleanup; } } @@ -1939,6 +1976,9 @@ check_viewconf(const cfg_obj_t *config, if (tresult != ISC_R_SUCCESS) result = tresult; + cleanup: + if (symtab != NULL) + isc_symtab_destroy(&symtab); cfg_aclconfctx_destroy(&actx); return (result); Modified: vendor/bind9/dist-9.6/lib/bind9/include/Makefile.in ============================================================================== --- vendor/bind9/dist-9.6/lib/bind9/include/Makefile.in Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/bind9/include/Makefile.in Mon Dec 17 10:58:24 2012 (r244353) @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: vendor/bind9/dist-9.6/lib/bind9/include/bind9/Makefile.in ============================================================================== --- vendor/bind9/dist-9.6/lib/bind9/include/bind9/Makefile.in Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/bind9/include/bind9/Makefile.in Mon Dec 17 10:58:24 2012 (r244353) @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: vendor/bind9/dist-9.6/lib/dns/adb.c ============================================================================== --- vendor/bind9/dist-9.6/lib/dns/adb.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/dns/adb.c Mon Dec 17 10:58:24 2012 (r244353) @@ -3430,8 +3430,10 @@ dns_adb_adjustsrtt(dns_adb_t *adb, dns_a addr->entry->srtt = new_srtt; addr->srtt = new_srtt; - isc_stdtime_get(&now); - addr->entry->expires = now + ADB_ENTRY_WINDOW; + if (addr->entry->expires == 0) { + isc_stdtime_get(&now); + addr->entry->expires = now + ADB_ENTRY_WINDOW; + } UNLOCK(&adb->entrylocks[bucket]); } @@ -3441,6 +3443,7 @@ dns_adb_changeflags(dns_adb_t *adb, dns_ unsigned int bits, unsigned int mask) { int bucket; + isc_stdtime_t now; REQUIRE(DNS_ADB_VALID(adb)); REQUIRE(DNS_ADBADDRINFO_VALID(addr)); @@ -3449,6 +3452,11 @@ dns_adb_changeflags(dns_adb_t *adb, dns_ LOCK(&adb->entrylocks[bucket]); addr->entry->flags = (addr->entry->flags & ~mask) | (bits & mask); + if (addr->entry->expires == 0) { + isc_stdtime_get(&now); + addr->entry->expires = now + ADB_ENTRY_WINDOW; + } + /* * Note that we do not update the other bits in addr->flags with * the most recent values from addr->entry->flags. @@ -3527,15 +3535,16 @@ dns_adb_freeaddrinfo(dns_adb_t *adb, dns entry = addr->entry; REQUIRE(DNS_ADBENTRY_VALID(entry)); - isc_stdtime_get(&now); - *addrp = NULL; overmem = isc_mem_isovermem(adb->mctx); bucket = addr->entry->lock_bucket; LOCK(&adb->entrylocks[bucket]); - entry->expires = now + ADB_ENTRY_WINDOW; + if (entry->expires == 0) { + isc_stdtime_get(&now); + entry->expires = now + ADB_ENTRY_WINDOW; + } want_check_exit = dec_entry_refcnt(adb, overmem, entry, ISC_FALSE); Modified: vendor/bind9/dist-9.6/lib/dns/api ============================================================================== --- vendor/bind9/dist-9.6/lib/dns/api Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/dns/api Mon Dec 17 10:58:24 2012 (r244353) @@ -3,6 +3,6 @@ # 9.7: 60-79 # 9.8: 80-89 # 9.9: 90-109 -LIBINTERFACE = 110 +LIBINTERFACE = 111 LIBREVISION = 2 -LIBAGE = 0 +LIBAGE = 1 Modified: vendor/bind9/dist-9.6/lib/dns/dnssec.c ============================================================================== --- vendor/bind9/dist-9.6/lib/dns/dnssec.c Mon Dec 17 10:51:22 2012 (r244352) +++ vendor/bind9/dist-9.6/lib/dns/dnssec.c Mon Dec 17 10:58:24 2012 (r244353) @@ -35,16 +35,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include /* for DNS_TSIG_FUDGE */ #include +LIBDNS_EXTERNAL_DATA isc_stats_t *dns_dnssec_stats; + #define is_response(msg) (msg->flags & DNS_MESSAGEFLAG_QR) #define RETERR(x) do { \ @@ -74,6 +78,12 @@ digest_callback(void *arg, isc_region_t return (dst_context_adddata(ctx, data)); } +static inline void +inc_stat(isc_statscounter_t counter) { + if (dns_dnssec_stats != NULL) + isc_stats_increment(dns_dnssec_stats, counter); +} + /* * Make qsort happy. */ @@ -150,7 +160,9 @@ dns_dnssec_keyfromrdata(dns_name_t *name } static isc_result_t -digest_sig(dst_context_t *ctx, dns_rdata_t *sigrdata, dns_rdata_rrsig_t *sig) { +digest_sig(dst_context_t *ctx, isc_boolean_t downcase, dns_rdata_t *sigrdata, + dns_rdata_rrsig_t *rrsig) +{ isc_region_t r; isc_result_t ret; dns_fixedname_t fname; @@ -162,11 +174,16 @@ digest_sig(dst_context_t *ctx, dns_rdata ret = dst_context_adddata(ctx, &r); if (ret != ISC_R_SUCCESS) return (ret); - dns_fixedname_init(&fname); - RUNTIME_CHECK(dns_name_downcase(&sig->signer, - dns_fixedname_name(&fname), NULL) - == ISC_R_SUCCESS); - dns_name_toregion(dns_fixedname_name(&fname), &r); + if (downcase) { + dns_fixedname_init(&fname); + + RUNTIME_CHECK(dns_name_downcase(&rrsig->signer, + dns_fixedname_name(&fname), + NULL) == ISC_R_SUCCESS); + dns_name_toregion(dns_fixedname_name(&fname), &r); + } else + dns_name_toregion(&rrsig->signer, &r); + return (dst_context_adddata(ctx, &r)); } @@ -188,6 +205,7 @@ dns_dnssec_sign(dns_name_t *name, dns_rd isc_uint32_t flags; unsigned int sigsize; dns_fixedname_t fnewname; + dns_fixedname_t fsigner; REQUIRE(name != NULL); REQUIRE(dns_name_countlabels(name) <= 255); @@ -215,8 +233,14 @@ dns_dnssec_sign(dns_name_t *name, dns_rd sig.common.rdtype = dns_rdatatype_rrsig; ISC_LINK_INIT(&sig.common, link); + /* + * Downcase signer. + */ dns_name_init(&sig.signer, NULL); - dns_name_clone(dst_key_name(key), &sig.signer); + dns_fixedname_init(&fsigner); + RUNTIME_CHECK(dns_name_downcase(dst_key_name(key), + dns_fixedname_name(&fsigner), NULL) == ISC_R_SUCCESS); + dns_name_clone(dns_fixedname_name(&fsigner), &sig.signer); sig.covered = set->type; sig.algorithm = dst_key_alg(key); @@ -256,7 +280,7 @@ dns_dnssec_sign(dns_name_t *name, dns_rd /* * Digest the SIG rdata. */ - ret = digest_sig(ctx, &tmpsigrdata, &sig); + ret = digest_sig(ctx, ISC_FALSE, &tmpsigrdata, &sig); if (ret != ISC_R_SUCCESS) goto cleanup_context; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Mon Dec 17 11:00:04 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 36A7D654; Mon, 17 Dec 2012 11:00:04 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 02EB78FC0C; Mon, 17 Dec 2012 11:00:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBHB03fU073077; Mon, 17 Dec 2012 11:00:03 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBHB03LV073075; Mon, 17 Dec 2012 11:00:03 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201212171100.qBHB03LV073075@svn.freebsd.org> From: Erwin Lansing Date: Mon, 17 Dec 2012 11:00:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244354 - vendor/bind9/9.6-ESV-R8 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Dec 2012 11:00:04 -0000 Author: erwin Date: Mon Dec 17 11:00:03 2012 New Revision: 244354 URL: http://svnweb.freebsd.org/changeset/base/244354 Log: Tag the Bind 9.6-ESV-R8 release. Approved by: delphij (mentor) Added: vendor/bind9/9.6-ESV-R8/ - copied from r244353, vendor/bind9/dist-9.6/ From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 21 16:54:01 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6EAA8EFE; Fri, 21 Dec 2012 16:54:01 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 50FD18FC12; Fri, 21 Dec 2012 16:54:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBLGs15K099252; Fri, 21 Dec 2012 16:54:01 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBLGs0XQ099245; Fri, 21 Dec 2012 16:54:00 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201212211654.qBLGs0XQ099245@svn.freebsd.org> From: Brooks Davis Date: Fri, 21 Dec 2012 16:54:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244541 - in vendor/NetBSD/mtree: . dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 16:54:01 -0000 Author: brooks Date: Fri Dec 21 16:54:00 2012 New Revision: 244541 URL: http://svnweb.freebsd.org/changeset/base/244541 Log: Vendor import of NetBSD's mtree at 2012-12-21 Added: vendor/NetBSD/mtree/ vendor/NetBSD/mtree/dist/ vendor/NetBSD/mtree/dist/Makefile (contents, props changed) vendor/NetBSD/mtree/dist/compare.c (contents, props changed) vendor/NetBSD/mtree/dist/crc.c (contents, props changed) vendor/NetBSD/mtree/dist/create.c (contents, props changed) vendor/NetBSD/mtree/dist/excludes.c (contents, props changed) vendor/NetBSD/mtree/dist/extern.h (contents, props changed) vendor/NetBSD/mtree/dist/getid.c (contents, props changed) vendor/NetBSD/mtree/dist/misc.c (contents, props changed) vendor/NetBSD/mtree/dist/mtree.8 (contents, props changed) vendor/NetBSD/mtree/dist/mtree.c (contents, props changed) vendor/NetBSD/mtree/dist/mtree.h (contents, props changed) vendor/NetBSD/mtree/dist/spec.c (contents, props changed) vendor/NetBSD/mtree/dist/specspec.c (contents, props changed) vendor/NetBSD/mtree/dist/verify.c (contents, props changed) Added: vendor/NetBSD/mtree/dist/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/mtree/dist/Makefile Fri Dec 21 16:54:00 2012 (r244541) @@ -0,0 +1,20 @@ +# $NetBSD: Makefile,v 1.33 2012/10/05 01:26:56 christos Exp $ +# from: @(#)Makefile 8.2 (Berkeley) 4/27/95 + +.include + +PROG= mtree +#CPPFLAGS+=-DDEBUG +CPPFLAGS+= -DMTREE +MAN= mtree.8 +SRCS= compare.c crc.c create.c excludes.c misc.c mtree.c spec.c specspec.c \ + verify.c getid.c pack_dev.c +.if (${HOSTPROG:U} == "") +DPADD+= ${LIBUTIL} +LDADD+= -lutil +.endif + +CPPFLAGS+= -I${NETBSDSRCDIR}/sbin/mknod +.PATH: ${NETBSDSRCDIR}/sbin/mknod + +.include Added: vendor/NetBSD/mtree/dist/compare.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/mtree/dist/compare.c Fri Dec 21 16:54:00 2012 (r244541) @@ -0,0 +1,528 @@ +/* $NetBSD: compare.c,v 1.55 2012/10/05 00:59:35 christos Exp $ */ + +/*- + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include +#if defined(__RCSID) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)compare.c 8.1 (Berkeley) 6/6/93"; +#else +__RCSID("$NetBSD: compare.c,v 1.55 2012/10/05 00:59:35 christos Exp $"); +#endif +#endif /* not lint */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef NO_MD5 +#include +#endif +#ifndef NO_RMD160 +#include +#endif +#ifndef NO_SHA1 +#include +#endif +#ifndef NO_SHA2 +#include +#endif + +#include "extern.h" + +#define INDENTNAMELEN 8 +#define MARK \ +do { \ + len = printf("%s: ", RP(p)); \ + if (len > INDENTNAMELEN) { \ + tab = "\t"; \ + printf("\n"); \ + } else { \ + tab = ""; \ + printf("%*s", INDENTNAMELEN - (int)len, ""); \ + } \ +} while (0) +#define LABEL if (!label++) MARK + +#if HAVE_STRUCT_STAT_ST_FLAGS + + +#define CHANGEFLAGS \ + if (flags != p->fts_statp->st_flags) { \ + char *sf; \ + if (!label) { \ + MARK; \ + sf = flags_to_string(p->fts_statp->st_flags, "none"); \ + printf("%sflags (\"%s\"", tab, sf); \ + free(sf); \ + } \ + if (lchflags(p->fts_accpath, flags)) { \ + label++; \ + printf(", not modified: %s)\n", \ + strerror(errno)); \ + } else { \ + sf = flags_to_string(flags, "none"); \ + printf(", modified to \"%s\")\n", sf); \ + free(sf); \ + } \ + } + +/* SETFLAGS: + * given pflags, additionally set those flags specified in s->st_flags and + * selected by mask (the other flags are left unchanged). + */ +#define SETFLAGS(pflags, mask) \ +do { \ + flags = (s->st_flags & (mask)) | (pflags); \ + CHANGEFLAGS; \ +} while (0) + +/* CLEARFLAGS: + * given pflags, reset the flags specified in s->st_flags and selected by mask + * (the other flags are left unchanged). + */ +#define CLEARFLAGS(pflags, mask) \ +do { \ + flags = (~(s->st_flags & (mask)) & CH_MASK) & (pflags); \ + CHANGEFLAGS; \ +} while (0) +#endif /* HAVE_STRUCT_STAT_ST_FLAGS */ + +int +compare(NODE *s, FTSENT *p) +{ + u_int32_t len, val, flags; + int fd, label; + const char *cp, *tab; +#if !defined(NO_MD5) || !defined(NO_RMD160) || !defined(NO_SHA1) || !defined(NO_SHA2) + char *digestbuf; +#endif + + tab = NULL; + label = 0; + switch(s->type) { + case F_BLOCK: + if (!S_ISBLK(p->fts_statp->st_mode)) + goto typeerr; + break; + case F_CHAR: + if (!S_ISCHR(p->fts_statp->st_mode)) + goto typeerr; + break; + case F_DIR: + if (!S_ISDIR(p->fts_statp->st_mode)) + goto typeerr; + break; + case F_FIFO: + if (!S_ISFIFO(p->fts_statp->st_mode)) + goto typeerr; + break; + case F_FILE: + if (!S_ISREG(p->fts_statp->st_mode)) + goto typeerr; + break; + case F_LINK: + if (!S_ISLNK(p->fts_statp->st_mode)) + goto typeerr; + break; +#ifdef S_ISSOCK + case F_SOCK: + if (!S_ISSOCK(p->fts_statp->st_mode)) + goto typeerr; + break; +#endif +typeerr: LABEL; + printf("\ttype (%s, %s)\n", + nodetype(s->type), inotype(p->fts_statp->st_mode)); + return (label); + } + if (mtree_Wflag) + goto afterpermwhack; +#if HAVE_STRUCT_STAT_ST_FLAGS + if (iflag && !uflag) { + if (s->flags & F_FLAGS) + SETFLAGS(p->fts_statp->st_flags, SP_FLGS); + return (label); + } + if (mflag && !uflag) { + if (s->flags & F_FLAGS) + CLEARFLAGS(p->fts_statp->st_flags, SP_FLGS); + return (label); + } +#endif + if (s->flags & F_DEV && + (s->type == F_BLOCK || s->type == F_CHAR) && + s->st_rdev != p->fts_statp->st_rdev) { + LABEL; + printf("%sdevice (%#llx, %#llx", + tab, (long long)s->st_rdev, + (long long)p->fts_statp->st_rdev); + if (uflag) { + if ((unlink(p->fts_accpath) == -1) || + (mknod(p->fts_accpath, + s->st_mode | nodetoino(s->type), + s->st_rdev) == -1) || + (lchown(p->fts_accpath, p->fts_statp->st_uid, + p->fts_statp->st_gid) == -1) ) + printf(", not modified: %s)\n", + strerror(errno)); + else + printf(", modified)\n"); + } else + printf(")\n"); + tab = "\t"; + } + /* Set the uid/gid first, then set the mode. */ + if (s->flags & (F_UID | F_UNAME) && s->st_uid != p->fts_statp->st_uid) { + LABEL; + printf("%suser (%lu, %lu", + tab, (u_long)s->st_uid, (u_long)p->fts_statp->st_uid); + if (uflag) { + if (lchown(p->fts_accpath, s->st_uid, -1)) + printf(", not modified: %s)\n", + strerror(errno)); + else + printf(", modified)\n"); + } else + printf(")\n"); + tab = "\t"; + } + if (s->flags & (F_GID | F_GNAME) && s->st_gid != p->fts_statp->st_gid) { + LABEL; + printf("%sgid (%lu, %lu", + tab, (u_long)s->st_gid, (u_long)p->fts_statp->st_gid); + if (uflag) { + if (lchown(p->fts_accpath, -1, s->st_gid)) + printf(", not modified: %s)\n", + strerror(errno)); + else + printf(", modified)\n"); + } + else + printf(")\n"); + tab = "\t"; + } + if (s->flags & F_MODE && + s->st_mode != (p->fts_statp->st_mode & MBITS)) { + if (lflag) { + mode_t tmode, mode; + + tmode = s->st_mode; + mode = p->fts_statp->st_mode & MBITS; + /* + * if none of the suid/sgid/etc bits are set, + * then if the mode is a subset of the target, + * skip. + */ + if (!((tmode & ~(S_IRWXU|S_IRWXG|S_IRWXO)) || + (mode & ~(S_IRWXU|S_IRWXG|S_IRWXO)))) + if ((mode | tmode) == tmode) + goto skip; + } + + LABEL; + printf("%spermissions (%#lo, %#lo", + tab, (u_long)s->st_mode, + (u_long)p->fts_statp->st_mode & MBITS); + if (uflag) { + if (lchmod(p->fts_accpath, s->st_mode)) + printf(", not modified: %s)\n", + strerror(errno)); + else + printf(", modified)\n"); + } + else + printf(")\n"); + tab = "\t"; + skip: ; + } + if (s->flags & F_NLINK && s->type != F_DIR && + s->st_nlink != p->fts_statp->st_nlink) { + LABEL; + printf("%slink count (%lu, %lu)\n", + tab, (u_long)s->st_nlink, (u_long)p->fts_statp->st_nlink); + tab = "\t"; + } + if (s->flags & F_SIZE && s->st_size != p->fts_statp->st_size) { + LABEL; + printf("%ssize (%lld, %lld)\n", + tab, (long long)s->st_size, + (long long)p->fts_statp->st_size); + tab = "\t"; + } + /* + * XXX + * Since utimes(2) only takes a timeval, there's no point in + * comparing the low bits of the timespec nanosecond field. This + * will only result in mismatches that we can never fix. + * + * Doesn't display microsecond differences. + */ + if (s->flags & F_TIME) { + struct timeval tv[2]; + struct stat *ps = p->fts_statp; + time_t smtime = s->st_mtimespec.tv_sec; + +#if defined(BSD4_4) && !defined(HAVE_NBTOOL_CONFIG_H) + time_t pmtime = ps->st_mtimespec.tv_sec; + + TIMESPEC_TO_TIMEVAL(&tv[0], &s->st_mtimespec); + TIMESPEC_TO_TIMEVAL(&tv[1], &ps->st_mtimespec); +#else + time_t pmtime = (time_t)ps->st_mtime; + + tv[0].tv_sec = smtime; + tv[0].tv_usec = 0; + tv[1].tv_sec = pmtime; + tv[1].tv_usec = 0; +#endif + + if (tv[0].tv_sec != tv[1].tv_sec || + tv[0].tv_usec != tv[1].tv_usec) { + LABEL; + printf("%smodification time (%.24s, ", + tab, ctime(&smtime)); + printf("%.24s", ctime(&pmtime)); + if (tflag) { + tv[1] = tv[0]; + if (utimes(p->fts_accpath, tv)) + printf(", not modified: %s)\n", + strerror(errno)); + else + printf(", modified)\n"); + } else + printf(")\n"); + tab = "\t"; + } + } +#if HAVE_STRUCT_STAT_ST_FLAGS + /* + * XXX + * since lchflags(2) will reset file times, the utimes() above + * may have been useless! oh well, we'd rather have correct + * flags, rather than times? + */ + if ((s->flags & F_FLAGS) && ((s->st_flags != p->fts_statp->st_flags) + || mflag || iflag)) { + if (s->st_flags != p->fts_statp->st_flags) { + char *f_s; + LABEL; + f_s = flags_to_string(s->st_flags, "none"); + printf("%sflags (\"%s\" is not ", tab, f_s); + free(f_s); + f_s = flags_to_string(p->fts_statp->st_flags, "none"); + printf("\"%s\"", f_s); + free(f_s); + } + if (uflag) { + if (iflag) + SETFLAGS(0, CH_MASK); + else if (mflag) + CLEARFLAGS(0, SP_FLGS); + else + SETFLAGS(0, (~SP_FLGS & CH_MASK)); + } else + printf(")\n"); + tab = "\t"; + } +#endif /* HAVE_STRUCT_STAT_ST_FLAGS */ + + /* + * from this point, no more permission checking or whacking + * occurs, only checking of stuff like checksums and symlinks. + */ + afterpermwhack: + if (s->flags & F_CKSUM) { + if ((fd = open(p->fts_accpath, O_RDONLY, 0)) < 0) { + LABEL; + printf("%scksum: %s: %s\n", + tab, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else if (crc(fd, &val, &len)) { + close(fd); + LABEL; + printf("%scksum: %s: %s\n", + tab, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else { + close(fd); + if (s->cksum != val) { + LABEL; + printf("%scksum (%lu, %lu)\n", + tab, s->cksum, (unsigned long)val); + } + tab = "\t"; + } + } +#ifndef NO_MD5 + if (s->flags & F_MD5) { + if ((digestbuf = MD5File(p->fts_accpath, NULL)) == NULL) { + LABEL; + printf("%s%s: %s: %s\n", + tab, MD5KEY, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else { + if (strcmp(s->md5digest, digestbuf)) { + LABEL; + printf("%s%s (0x%s, 0x%s)\n", + tab, MD5KEY, s->md5digest, digestbuf); + } + tab = "\t"; + free(digestbuf); + } + } +#endif /* ! NO_MD5 */ +#ifndef NO_RMD160 + if (s->flags & F_RMD160) { + if ((digestbuf = RMD160File(p->fts_accpath, NULL)) == NULL) { + LABEL; + printf("%s%s: %s: %s\n", + tab, RMD160KEY, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else { + if (strcmp(s->rmd160digest, digestbuf)) { + LABEL; + printf("%s%s (0x%s, 0x%s)\n", + tab, RMD160KEY, s->rmd160digest, digestbuf); + } + tab = "\t"; + free(digestbuf); + } + } +#endif /* ! NO_RMD160 */ +#ifndef NO_SHA1 + if (s->flags & F_SHA1) { + if ((digestbuf = SHA1File(p->fts_accpath, NULL)) == NULL) { + LABEL; + printf("%s%s: %s: %s\n", + tab, SHA1KEY, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else { + if (strcmp(s->sha1digest, digestbuf)) { + LABEL; + printf("%s%s (0x%s, 0x%s)\n", + tab, SHA1KEY, s->sha1digest, digestbuf); + } + tab = "\t"; + free(digestbuf); + } + } +#endif /* ! NO_SHA1 */ +#ifndef NO_SHA2 + if (s->flags & F_SHA256) { + if ((digestbuf = SHA256_File(p->fts_accpath, NULL)) == NULL) { + LABEL; + printf("%s%s: %s: %s\n", + tab, SHA256KEY, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else { + if (strcmp(s->sha256digest, digestbuf)) { + LABEL; + printf("%s%s (0x%s, 0x%s)\n", + tab, SHA256KEY, s->sha256digest, digestbuf); + } + tab = "\t"; + free(digestbuf); + } + } +#ifdef SHA384_BLOCK_LENGTH + if (s->flags & F_SHA384) { + if ((digestbuf = SHA384_File(p->fts_accpath, NULL)) == NULL) { + LABEL; + printf("%s%s: %s: %s\n", + tab, SHA384KEY, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else { + if (strcmp(s->sha384digest, digestbuf)) { + LABEL; + printf("%s%s (0x%s, 0x%s)\n", + tab, SHA384KEY, s->sha384digest, digestbuf); + } + tab = "\t"; + free(digestbuf); + } + } +#endif + if (s->flags & F_SHA512) { + if ((digestbuf = SHA512_File(p->fts_accpath, NULL)) == NULL) { + LABEL; + printf("%s%s: %s: %s\n", + tab, SHA512KEY, p->fts_accpath, strerror(errno)); + tab = "\t"; + } else { + if (strcmp(s->sha512digest, digestbuf)) { + LABEL; + printf("%s%s (0x%s, 0x%s)\n", + tab, SHA512KEY, s->sha512digest, digestbuf); + } + tab = "\t"; + free(digestbuf); + } + } +#endif /* ! NO_SHA2 */ + if (s->flags & F_SLINK && + strcmp(cp = rlink(p->fts_accpath), s->slink)) { + LABEL; + printf("%slink ref (%s, %s", tab, cp, s->slink); + if (uflag) { + if ((unlink(p->fts_accpath) == -1) || + (symlink(s->slink, p->fts_accpath) == -1) ) + printf(", not modified: %s)\n", + strerror(errno)); + else + printf(", modified)\n"); + } else + printf(")\n"); + } + return (label); +} + +const char * +rlink(const char *name) +{ + static char lbuf[MAXPATHLEN]; + int len; + + if ((len = readlink(name, lbuf, sizeof(lbuf) - 1)) == -1) + mtree_err("%s: %s", name, strerror(errno)); + lbuf[len] = '\0'; + return (lbuf); +} Added: vendor/NetBSD/mtree/dist/crc.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/mtree/dist/crc.c Fri Dec 21 16:54:00 2012 (r244541) @@ -0,0 +1,163 @@ +/* $NetBSD: crc.c,v 1.9 2012/10/05 00:40:51 christos Exp $ */ + +/*- + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * James W. Williams of NASA Goddard Space Flight Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include +#if defined(__RCSID) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)crc.c 8.1 (Berkeley) 6/17/93"; +#else +__RCSID("$NetBSD: crc.c,v 1.9 2012/10/05 00:40:51 christos Exp $"); +#endif +#endif /* not lint */ + +#include + +#include +#include +#include + +#include "extern.h" + +static const u_int32_t crctab[] = { + 0x0, + 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, + 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, + 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, + 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac, + 0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f, + 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a, + 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, + 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, + 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, + 0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe, + 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95, + 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4, + 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0, + 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, + 0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, + 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07, + 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c, + 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, + 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba, + 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, + 0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, + 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d, + 0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, + 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f, + 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, + 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, + 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, + 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a, + 0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629, + 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c, + 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, + 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, + 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, + 0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8, + 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3, + 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2, + 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71, + 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, + 0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, + 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21, + 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a, + 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087, + 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec, + 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, + 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, + 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, + 0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, + 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09, + 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, + 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, + 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 +}; + +/* + * Compute a POSIX 1003.2 checksum. This routine has been broken out so that + * other programs can use it. It takes a file descriptor to read from and + * locations to store the crc and the number of bytes read. It returns 0 on + * success and 1 on failure. Errno is set on failure. + */ +u_int32_t crc_total = ~0; /* The crc over a number of files. */ + +int +crc(int fd, u_int32_t *cval, u_int32_t *clen) +{ + u_char *p; + int nr; + u_int32_t thecrc, len; + u_int32_t crctot; + u_char buf[16 * 1024]; + +#define COMPUTE(var, ch) (var) = (var) << 8 ^ crctab[(var) >> 24 ^ (ch)] + + thecrc = len = crctot = 0; + if (sflag) + crctot = ~crc_total; + while ((nr = read(fd, buf, sizeof(buf))) > 0) + if (sflag) { + for (len += nr, p = buf; nr--; ++p) { + COMPUTE(thecrc, *p); + COMPUTE(crctot, *p); + } + } else { + for (len += nr, p = buf; nr--; ++p) + COMPUTE(thecrc, *p); + } + if (nr < 0) + return 1; + + *clen = len; + + /* Include the length of the file. */ + if (sflag) { + for (; len != 0; len >>= 8) { + COMPUTE(thecrc, len & 0xff); + COMPUTE(crctot, len & 0xff); + } + } else { + for (; len != 0; len >>= 8) + COMPUTE(thecrc, len & 0xff); + } + + *cval = ~thecrc; + if (sflag) + crc_total = ~crctot; + return 0; +} Added: vendor/NetBSD/mtree/dist/create.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/mtree/dist/create.c Fri Dec 21 16:54:00 2012 (r244541) @@ -0,0 +1,467 @@ +/* $NetBSD: create.c,v 1.68 2012/12/20 16:43:16 christos Exp $ */ + +/*- + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include +#if defined(__RCSID) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)create.c 8.1 (Berkeley) 6/6/93"; +#else +__RCSID("$NetBSD: create.c,v 1.68 2012/12/20 16:43:16 christos Exp $"); +#endif +#endif /* not lint */ + +#include +#include + +#if ! HAVE_NBTOOL_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef NO_MD5 +#include +#endif +#ifndef NO_RMD160 +#include +#endif +#ifndef NO_SHA1 +#include +#endif +#ifndef NO_SHA2 +#include +#endif + +#include "extern.h" + +#define INDENTNAMELEN 15 +#define MAXLINELEN 80 + +static gid_t gid; +static uid_t uid; +static mode_t mode; +static u_long flags; + +#ifdef __FreeBSD__ +#define FTS_CONST const +#else +#define FTS_CONST +#endif + +static int dcmp(const FTSENT *FTS_CONST *, const FTSENT *FTS_CONST *); +static void output(int, int *, const char *, ...) + __attribute__((__format__(__printf__, 3, 4))); +static int statd(FTS *, FTSENT *, uid_t *, gid_t *, mode_t *, u_long *); +static void statf(int, FTSENT *); + +void +cwalk(void) +{ + FTS *t; + FTSENT *p; + time_t clocktime; + char host[MAXHOSTNAMELEN + 1]; + const char *user; + char *argv[2]; + char dot[] = "."; + int indent = 0; + + argv[0] = dot; + argv[1] = NULL; + + time(&clocktime); + gethostname(host, sizeof(host)); + host[sizeof(host) - 1] = '\0'; + if ((user = getlogin()) == NULL) { + struct passwd *pw; + user = (pw = getpwuid(getuid())) == NULL ? pw->pw_name : + ""; + } + + if (!nflag) + printf( + "#\t user: %s\n#\tmachine: %s\n#\t tree: %s\n" + "#\t date: %s", + user, host, fullpath, ctime(&clocktime)); + + if ((t = fts_open(argv, ftsoptions, dcmp)) == NULL) + mtree_err("fts_open: %s", strerror(errno)); + while ((p = fts_read(t)) != NULL) { + if (jflag) + indent = p->fts_level * 4; + if (check_excludes(p->fts_name, p->fts_path)) { + fts_set(t, p, FTS_SKIP); + continue; + } + switch(p->fts_info) { + case FTS_D: + if (!bflag) + printf("\n"); + if (!nflag) + printf("# %s\n", p->fts_path); + statd(t, p, &uid, &gid, &mode, &flags); + statf(indent, p); + break; + case FTS_DP: + if (p->fts_level > 0) + if (!nflag) + printf("%*s# %s\n", indent, "", + p->fts_path); + if (p->fts_level > 0 || flavor == F_FREEBSD9) { + printf("%*s..\n", indent, ""); + if (!bflag) + printf("\n"); + } + break; + case FTS_DNR: + case FTS_ERR: + case FTS_NS: + mtree_err("%s: %s", + p->fts_path, strerror(p->fts_errno)); + break; + default: + if (!dflag) + statf(indent, p); + break; + + } + } + fts_close(t); + if (sflag && keys & F_CKSUM) + mtree_err("%s checksum: %u", fullpath, crc_total); +} + +static void +statf(int indent, FTSENT *p) +{ + u_int32_t len, val; + int fd, offset; + const char *name = NULL; +#if !defined(NO_MD5) || !defined(NO_RMD160) || !defined(NO_SHA1) || !defined(NO_SHA2) + char *digestbuf; +#endif + + offset = printf("%*s%s%s", indent, "", + S_ISDIR(p->fts_statp->st_mode) ? "" : " ", vispath(p->fts_name)); + + if (offset > (INDENTNAMELEN + indent)) + offset = MAXLINELEN; + else + offset += printf("%*s", (INDENTNAMELEN + indent) - offset, ""); + + if (!S_ISREG(p->fts_statp->st_mode) && (flavor == F_NETBSD6 || !dflag)) + output(indent, &offset, "type=%s", + inotype(p->fts_statp->st_mode)); + if (keys & (F_UID | F_UNAME) && p->fts_statp->st_uid != uid) { + if (keys & F_UNAME && + (name = user_from_uid(p->fts_statp->st_uid, 1)) != NULL) + output(indent, &offset, "uname=%s", name); + if (keys & F_UID || (keys & F_UNAME && name == NULL)) + output(indent, &offset, "uid=%u", p->fts_statp->st_uid); + } + if (keys & (F_GID | F_GNAME) && p->fts_statp->st_gid != gid) { + if (keys & F_GNAME && + (name = group_from_gid(p->fts_statp->st_gid, 1)) != NULL) + output(indent, &offset, "gname=%s", name); + if (keys & F_GID || (keys & F_GNAME && name == NULL)) + output(indent, &offset, "gid=%u", p->fts_statp->st_gid); + } + if (keys & F_MODE && (p->fts_statp->st_mode & MBITS) != mode) + output(indent, &offset, "mode=%#o", + p->fts_statp->st_mode & MBITS); + if (keys & F_DEV && + (S_ISBLK(p->fts_statp->st_mode) || S_ISCHR(p->fts_statp->st_mode))) + output(indent, &offset, "device=%#llx", + (long long)p->fts_statp->st_rdev); + if (keys & F_NLINK && p->fts_statp->st_nlink != 1) + output(indent, &offset, "nlink=%u", p->fts_statp->st_nlink); + if (keys & F_SIZE && + (flavor != F_NETBSD6 || S_ISREG(p->fts_statp->st_mode))) + output(indent, &offset, "size=%lld", + (long long)p->fts_statp->st_size); + if (keys & F_TIME) +#if defined(BSD4_4) && !defined(HAVE_NBTOOL_CONFIG_H) + output(indent, &offset, "time=%ld.%09ld", + (long)p->fts_statp->st_mtimespec.tv_sec, + p->fts_statp->st_mtimespec.tv_nsec); +#else + output(indent, &offset, "time=%ld.%09ld", + (long)p->fts_statp->st_mtime, (long)0); +#endif + if (keys & F_CKSUM && S_ISREG(p->fts_statp->st_mode)) { + if ((fd = open(p->fts_accpath, O_RDONLY, 0)) < 0 || + crc(fd, &val, &len)) + mtree_err("%s: %s", p->fts_accpath, strerror(errno)); + close(fd); + output(indent, &offset, "cksum=%lu", (long)val); + } +#ifndef NO_MD5 + if (keys & F_MD5 && S_ISREG(p->fts_statp->st_mode)) { + if ((digestbuf = MD5File(p->fts_accpath, NULL)) == NULL) + mtree_err("%s: MD5File failed: %s", p->fts_accpath, + strerror(errno)); + output(indent, &offset, "%s=%s", MD5KEY, digestbuf); + free(digestbuf); + } +#endif /* ! NO_MD5 */ +#ifndef NO_RMD160 + if (keys & F_RMD160 && S_ISREG(p->fts_statp->st_mode)) { + if ((digestbuf = RMD160File(p->fts_accpath, NULL)) == NULL) + mtree_err("%s: RMD160File failed: %s", p->fts_accpath, + strerror(errno)); + output(indent, &offset, "%s=%s", RMD160KEY, digestbuf); + free(digestbuf); + } +#endif /* ! NO_RMD160 */ +#ifndef NO_SHA1 + if (keys & F_SHA1 && S_ISREG(p->fts_statp->st_mode)) { + if ((digestbuf = SHA1File(p->fts_accpath, NULL)) == NULL) + mtree_err("%s: SHA1File failed: %s", p->fts_accpath, + strerror(errno)); + output(indent, &offset, "%s=%s", SHA1KEY, digestbuf); + free(digestbuf); + } +#endif /* ! NO_SHA1 */ +#ifndef NO_SHA2 + if (keys & F_SHA256 && S_ISREG(p->fts_statp->st_mode)) { + if ((digestbuf = SHA256_File(p->fts_accpath, NULL)) == NULL) + mtree_err("%s: SHA256_File failed: %s", p->fts_accpath, + strerror(errno)); + output(indent, &offset, "%s=%s", SHA256KEY, digestbuf); + free(digestbuf); + } +#ifdef SHA384_BLOCK_LENGTH + if (keys & F_SHA384 && S_ISREG(p->fts_statp->st_mode)) { + if ((digestbuf = SHA384_File(p->fts_accpath, NULL)) == NULL) + mtree_err("%s: SHA384_File failed: %s", p->fts_accpath, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 21 16:54:34 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4AB64E9; Fri, 21 Dec 2012 16:54:34 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 16B078FC15; Fri, 21 Dec 2012 16:54:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBLGsXCK099355; Fri, 21 Dec 2012 16:54:33 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBLGsXsp099354; Fri, 21 Dec 2012 16:54:33 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201212211654.qBLGsXsp099354@svn.freebsd.org> From: Brooks Davis Date: Fri, 21 Dec 2012 16:54:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244542 - vendor/NetBSD/mtree/20122112 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 16:54:34 -0000 Author: brooks Date: Fri Dec 21 16:54:33 2012 New Revision: 244542 URL: http://svnweb.freebsd.org/changeset/base/244542 Log: Tag 2012-12-21 import of NetBSD's mtree Added: vendor/NetBSD/mtree/20122112/ - copied from r244541, vendor/NetBSD/mtree/dist/ From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 21 17:08:02 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C816F546; Fri, 21 Dec 2012 17:08:02 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id ACDE68FC14; Fri, 21 Dec 2012 17:08:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBLH82ob001605; Fri, 21 Dec 2012 17:08:02 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBLH82tk001603; Fri, 21 Dec 2012 17:08:02 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201212211708.qBLH82tk001603@svn.freebsd.org> From: Brooks Davis Date: Fri, 21 Dec 2012 17:08:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244543 - in vendor/NetBSD/mknod: . dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 17:08:02 -0000 Author: brooks Date: Fri Dec 21 17:08:01 2012 New Revision: 244543 URL: http://svnweb.freebsd.org/changeset/base/244543 Log: Vendor import of pack_dev.* from NetBSD's mknod at 2012-12-21 Added: vendor/NetBSD/mknod/ vendor/NetBSD/mknod/dist/ vendor/NetBSD/mknod/dist/pack_dev.c (contents, props changed) vendor/NetBSD/mknod/dist/pack_dev.h (contents, props changed) Added: vendor/NetBSD/mknod/dist/pack_dev.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/mknod/dist/pack_dev.c Fri Dec 21 17:08:01 2012 (r244543) @@ -0,0 +1,290 @@ +/* $NetBSD: pack_dev.c,v 1.11 2011/08/27 18:37:41 joerg Exp $ */ + +/*- + * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Charles M. Hannum. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include +#if !defined(lint) +__RCSID("$NetBSD: pack_dev.c,v 1.11 2011/08/27 18:37:41 joerg Exp $"); +#endif /* not lint */ + +#include +#include + +#include +#include +#include +#include +#include + +#include "pack_dev.h" + +static pack_t pack_netbsd; +static pack_t pack_freebsd; +static pack_t pack_8_8; +static pack_t pack_12_20; +static pack_t pack_14_18; +static pack_t pack_8_24; +static pack_t pack_bsdos; +static int compare_format(const void *, const void *); + +static const char iMajorError[] = "invalid major number"; +static const char iMinorError[] = "invalid minor number"; +static const char tooManyFields[] = "too many fields for format"; + + /* exported */ +portdev_t +pack_native(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev(numbers[0], numbers[1]); + if ((u_long)major(dev) != numbers[0]) + *error = iMajorError; + else if ((u_long)minor(dev) != numbers[1]) + *error = iMinorError; + } else + *error = tooManyFields; + return (dev); +} + + +static portdev_t +pack_netbsd(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev_netbsd(numbers[0], numbers[1]); + if ((u_long)major_netbsd(dev) != numbers[0]) + *error = iMajorError; + else if ((u_long)minor_netbsd(dev) != numbers[1]) + *error = iMinorError; + } else + *error = tooManyFields; + return (dev); +} + + +#define major_freebsd(x) ((int32_t)(((x) & 0x0000ff00) >> 8)) +#define minor_freebsd(x) ((int32_t)(((x) & 0xffff00ff) >> 0)) +#define makedev_freebsd(x,y) ((portdev_t)((((x) << 8) & 0x0000ff00) | \ + (((y) << 0) & 0xffff00ff))) + +static portdev_t +pack_freebsd(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev_freebsd(numbers[0], numbers[1]); + if ((u_long)major_freebsd(dev) != numbers[0]) + *error = iMajorError; + if ((u_long)minor_freebsd(dev) != numbers[1]) + *error = iMinorError; + } else + *error = tooManyFields; + return (dev); +} + + +#define major_8_8(x) ((int32_t)(((x) & 0x0000ff00) >> 8)) +#define minor_8_8(x) ((int32_t)(((x) & 0x000000ff) >> 0)) +#define makedev_8_8(x,y) ((portdev_t)((((x) << 8) & 0x0000ff00) | \ + (((y) << 0) & 0x000000ff))) + +static portdev_t +pack_8_8(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev_8_8(numbers[0], numbers[1]); + if ((u_long)major_8_8(dev) != numbers[0]) + *error = iMajorError; + if ((u_long)minor_8_8(dev) != numbers[1]) + *error = iMinorError; + } else + *error = tooManyFields; + return (dev); +} + + +#define major_12_20(x) ((int32_t)(((x) & 0xfff00000) >> 20)) +#define minor_12_20(x) ((int32_t)(((x) & 0x000fffff) >> 0)) +#define makedev_12_20(x,y) ((portdev_t)((((x) << 20) & 0xfff00000) | \ + (((y) << 0) & 0x000fffff))) + +static portdev_t +pack_12_20(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev_12_20(numbers[0], numbers[1]); + if ((u_long)major_12_20(dev) != numbers[0]) + *error = iMajorError; + if ((u_long)minor_12_20(dev) != numbers[1]) + *error = iMinorError; + } else + *error = tooManyFields; + return (dev); +} + + +#define major_14_18(x) ((int32_t)(((x) & 0xfffc0000) >> 18)) +#define minor_14_18(x) ((int32_t)(((x) & 0x0003ffff) >> 0)) +#define makedev_14_18(x,y) ((portdev_t)((((x) << 18) & 0xfffc0000) | \ + (((y) << 0) & 0x0003ffff))) + +static portdev_t +pack_14_18(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev_14_18(numbers[0], numbers[1]); + if ((u_long)major_14_18(dev) != numbers[0]) + *error = iMajorError; + if ((u_long)minor_14_18(dev) != numbers[1]) + *error = iMinorError; + } else + *error = tooManyFields; + return (dev); +} + + +#define major_8_24(x) ((int32_t)(((x) & 0xff000000) >> 24)) +#define minor_8_24(x) ((int32_t)(((x) & 0x00ffffff) >> 0)) +#define makedev_8_24(x,y) ((portdev_t)((((x) << 24) & 0xff000000) | \ + (((y) << 0) & 0x00ffffff))) + +static portdev_t +pack_8_24(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev_8_24(numbers[0], numbers[1]); + if ((u_long)major_8_24(dev) != numbers[0]) + *error = iMajorError; + if ((u_long)minor_8_24(dev) != numbers[1]) + *error = iMinorError; + } else + *error = tooManyFields; + return (dev); +} + + +#define major_12_12_8(x) ((int32_t)(((x) & 0xfff00000) >> 20)) +#define unit_12_12_8(x) ((int32_t)(((x) & 0x000fff00) >> 8)) +#define subunit_12_12_8(x) ((int32_t)(((x) & 0x000000ff) >> 0)) +#define makedev_12_12_8(x,y,z) ((portdev_t)((((x) << 20) & 0xfff00000) | \ + (((y) << 8) & 0x000fff00) | \ + (((z) << 0) & 0x000000ff))) + +static portdev_t +pack_bsdos(int n, u_long numbers[], const char **error) +{ + portdev_t dev = 0; + + if (n == 2) { + dev = makedev_12_20(numbers[0], numbers[1]); + if ((u_long)major_12_20(dev) != numbers[0]) + *error = iMajorError; + if ((u_long)minor_12_20(dev) != numbers[1]) + *error = iMinorError; + } else if (n == 3) { + dev = makedev_12_12_8(numbers[0], numbers[1], numbers[2]); + if ((u_long)major_12_12_8(dev) != numbers[0]) + *error = iMajorError; + if ((u_long)unit_12_12_8(dev) != numbers[1]) + *error = "invalid unit number"; + if ((u_long)subunit_12_12_8(dev) != numbers[2]) + *error = "invalid subunit number"; + } else + *error = tooManyFields; + return (dev); +} + + + /* list of formats and pack functions */ + /* this list must be sorted lexically */ +static struct format { + const char *name; + pack_t *pack; +} formats[] = { + {"386bsd", pack_8_8}, + {"4bsd", pack_8_8}, + {"bsdos", pack_bsdos}, + {"freebsd", pack_freebsd}, + {"hpux", pack_8_24}, + {"isc", pack_8_8}, + {"linux", pack_8_8}, + {"native", pack_native}, + {"netbsd", pack_netbsd}, + {"osf1", pack_12_20}, + {"sco", pack_8_8}, + {"solaris", pack_14_18}, + {"sunos", pack_8_8}, + {"svr3", pack_8_8}, + {"svr4", pack_14_18}, + {"ultrix", pack_8_8}, +}; + +static int +compare_format(const void *key, const void *element) +{ + const char *name; + const struct format *format; + + name = key; + format = element; + + return (strcmp(name, format->name)); +} + + +pack_t * +pack_find(const char *name) +{ + struct format *format; + + format = bsearch(name, formats, + sizeof(formats)/sizeof(formats[0]), + sizeof(formats[0]), compare_format); + if (format == 0) + return (NULL); + return (format->pack); +} Added: vendor/NetBSD/mknod/dist/pack_dev.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/NetBSD/mknod/dist/pack_dev.h Fri Dec 21 17:08:01 2012 (r244543) @@ -0,0 +1,52 @@ +/* $NetBSD: pack_dev.h,v 1.7 2008/04/28 20:23:09 martin Exp $ */ + +/*- + * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Charles M. Hannum. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _PACK_DEV_H +#define _PACK_DEV_H + +#ifdef __CYGWIN__ +typedef __dev32_t portdev_t; +#else +typedef dev_t portdev_t; +#endif +typedef portdev_t pack_t(int, u_long [], const char **); + +pack_t *pack_find(const char *); +pack_t pack_native; + +#define major_netbsd(x) ((int32_t)((((x) & 0x000fff00) >> 8))) +#define minor_netbsd(x) ((int32_t)((((x) & 0xfff00000) >> 12) | \ + (((x) & 0x000000ff) >> 0))) +#define makedev_netbsd(x,y) ((dev_t)((((x) << 8) & 0x000fff00) | \ + (((y) << 12) & 0xfff00000) | \ + (((y) << 0) & 0x000000ff))) + +#endif /* _PACK_DEV_H */ From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 21 17:08:17 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E83A069D; Fri, 21 Dec 2012 17:08:17 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B3F9E8FC0C; Fri, 21 Dec 2012 17:08:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBLH8HgY001682; Fri, 21 Dec 2012 17:08:17 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBLH8HFl001681; Fri, 21 Dec 2012 17:08:17 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201212211708.qBLH8HFl001681@svn.freebsd.org> From: Brooks Davis Date: Fri, 21 Dec 2012 17:08:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244544 - vendor/NetBSD/mknod/20122112 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 17:08:18 -0000 Author: brooks Date: Fri Dec 21 17:08:17 2012 New Revision: 244544 URL: http://svnweb.freebsd.org/changeset/base/244544 Log: Tag 2012-12-21 import of NetBSD's mknod Added: vendor/NetBSD/mknod/20122112/ - copied from r244543, vendor/NetBSD/mknod/dist/ From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 21 20:47:58 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D12D139B; Fri, 21 Dec 2012 20:47:58 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B2B808FC12; Fri, 21 Dec 2012 20:47:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBLKlwfW035362; Fri, 21 Dec 2012 20:47:58 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBLKlvrU035353; Fri, 21 Dec 2012 20:47:57 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201212212047.qBLKlvrU035353@svn.freebsd.org> From: Martin Matuska Date: Fri, 21 Dec 2012 20:47:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244559 - in vendor/xz/dist: . po src/common src/liblzma/api/lzma src/liblzma/simple src/xz X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 20:47:59 -0000 Author: mm Date: Fri Dec 21 20:47:57 2012 New Revision: 244559 URL: http://svnweb.freebsd.org/changeset/base/244559 Log: Update vendor/xz from v5.0 branch to 5.0.4 Git commit: 20778053a07eb90c159c1377ca8dc05a90fd530b Modified: vendor/xz/dist/AUTHORS vendor/xz/dist/ChangeLog vendor/xz/dist/README vendor/xz/dist/THANKS vendor/xz/dist/po/de.po vendor/xz/dist/po/fr.po vendor/xz/dist/po/it.po vendor/xz/dist/po/pl.po vendor/xz/dist/src/common/sysdefs.h vendor/xz/dist/src/liblzma/api/lzma/version.h vendor/xz/dist/src/liblzma/simple/simple_coder.c vendor/xz/dist/src/liblzma/simple/simple_private.h vendor/xz/dist/src/xz/args.c vendor/xz/dist/src/xz/coder.c vendor/xz/dist/src/xz/message.c vendor/xz/dist/src/xz/xz.1 Modified: vendor/xz/dist/AUTHORS ============================================================================== --- vendor/xz/dist/AUTHORS Fri Dec 21 20:46:58 2012 (r244558) +++ vendor/xz/dist/AUTHORS Fri Dec 21 20:47:57 2012 (r244559) @@ -16,11 +16,11 @@ Authors of XZ Utils Some scripts have been adapted from gzip. The original versions were written by Jean-loup Gailly, Charles Levert, and Paul Eggert. - Andrew Dudman helped adapting the script and their man pages for + Andrew Dudman helped adapting the scripts and their man pages for XZ Utils. - The GNU Autotools based build system contains files from many authors, - which I'm not trying list here. + The GNU Autotools-based build system contains files from many authors, + which I'm not trying to list here. Several people have contributed fixes or reported bugs. Most of them are mentioned in the file THANKS. Modified: vendor/xz/dist/ChangeLog ============================================================================== --- vendor/xz/dist/ChangeLog Fri Dec 21 20:46:58 2012 (r244558) +++ vendor/xz/dist/ChangeLog Fri Dec 21 20:47:57 2012 (r244559) @@ -1,3 +1,335 @@ +commit 20778053a07eb90c159c1377ca8dc05a90fd530b +Author: Lasse Collin +Date: Fri Jun 22 14:36:16 2012 +0300 + + xz: Update man page date to match the latest update. + +commit 2cefa84af676da37d7e9c466d55d46c67ab00c22 +Author: Lasse Collin +Date: Fri Jun 22 10:25:43 2012 +0300 + + Bump version and soname for 5.0.4. + +commit 433fec191a17e45690809e54146ea7a773f54cff +Author: Lasse Collin +Date: Fri Jun 22 10:25:09 2012 +0300 + + Update NEWS for 5.0.4. + +commit 711fa680f552a4003df73b37e6dc4d6e00b47bcd +Author: Lasse Collin +Date: Mon Jun 18 21:27:47 2012 +0300 + + Docs: Language fix to 01_compress_easy.c. + + Thanks to Jonathan Nieder. + +commit 3d7ab1dc61a75c560828be5df96598388b771456 +Author: Lasse Collin +Date: Thu Jun 14 20:15:30 2012 +0300 + + Fix the top-level Makefile.am for the new example programs. + +commit ef8b8e5f111469b5bc005975f7abb9abbd372b25 +Author: Lasse Collin +Date: Thu Jun 14 10:52:33 2012 +0300 + + Docs: Add new example programs. + + These have more comments than the old examples and + human-readable error messages. More tutorial-like examples + are needed but these are a start. + +commit 75c149bc8045a26f8bc719cb8ed20668dab79091 +Author: Lasse Collin +Date: Thu Jun 14 10:33:27 2012 +0300 + + Docs: Move xz_pipe_comp.c and xz_pipe_decomp.c to doc/examples_old. + + It is good to keep these around to so that if someone has + copied the decompressor bug from xz_pipe_decomp.c he has + an example how to easily fix it. + +commit 456307ebf947a5f50bd995d617b99c1215572308 +Author: Lasse Collin +Date: Thu Jun 14 10:33:01 2012 +0300 + + Docs: Fix a bug in xz_pipe_decomp.c example program. + +commit 4c310b8a29bc257e6ccbd2310f12f258678f3fef +Author: Lasse Collin +Date: Thu May 31 15:53:25 2012 +0300 + + Translations: Update the Italian translation. + + Thanks to Milo Casagrande. + +commit ec32b79366dc47a55ea877589df9e8509ba113a7 +Author: Lasse Collin +Date: Wed May 30 23:15:07 2012 +0300 + + Translations: Update the French translation. + + Thanks to Adrien Nader. + +commit dd06f40e4dd7649525e4f28d890dc238a3aa37e5 +Author: Lasse Collin +Date: Tue May 29 22:26:27 2012 +0300 + + Translations: Update the German translation. + +commit c66808d1f55d0149ed57c536cc9b52e9c8b583bc +Author: Lasse Collin +Date: Tue May 29 22:12:57 2012 +0300 + + Translations: Update Polish translation. + +commit 556c22dfed195c1466b298183b850d6c28544900 +Author: Lasse Collin +Date: Tue May 29 13:10:36 2012 +0300 + + Preliminary NEWS for 5.0.4. + +commit dd13b66bf582f49d3aec36e3410ff8541b7506da +Author: Lasse Collin +Date: Mon May 28 20:42:11 2012 +0300 + + liblzma: Fix possibility of incorrect LZMA_BUF_ERROR. + + lzma_code() could incorrectly return LZMA_BUF_ERROR if + all of the following was true: + + - The caller knows how many bytes of output to expect + and only provides that much output space. + + - When the last output bytes are decoded, the + caller-provided input buffer ends right before + the LZMA2 end of payload marker. So LZMA2 won't + provide more output anymore, but it won't know it + yet and thus won't return LZMA_STREAM_END yet. + + - A BCJ filter is in use and it hasn't left any + unfiltered bytes in the temp buffer. This can happen + with any BCJ filter, but in practice it's more likely + with filters other than the x86 BCJ. + + Another situation where the bug can be triggered happens + if the uncompressed size is zero bytes and no output space + is provided. In this case the decompression can fail even + if the whole input file is given to lzma_code(). + + A similar bug was fixed in XZ Embedded on 2011-09-19. + +commit a0223bf796fdaad51a11ad02c4195c694849cc78 +Author: Lasse Collin +Date: Mon May 28 15:38:32 2012 +0300 + + Update THANKS. + +commit 86e57e4bfefe3fd8e13615c41604165bb2359501 +Author: Lasse Collin +Date: Mon May 28 15:37:43 2012 +0300 + + xz: Don't show a huge number in -vv when memory limit is disabled. + +commit 13e44a94da19d1ef14832ff12d3877a6fd2c54c0 +Author: Lasse Collin +Date: Sun May 27 22:30:17 2012 +0300 + + xz: Document the "summary" lines of --robot -lvv. + + This documents only the columns that are in v5.0. + The new columns added in the master branch aren't + necessarily stable yet. + +commit 2f90345e13ab8fea4de45a4f1caa73ebc63a62e7 +Author: Lasse Collin +Date: Sun May 27 21:53:20 2012 +0300 + + xz: Fix output of verbose --robot --list modes. + + It printed the filename in "filename (x/y)" format + which it obviously shouldn't do in robot mode. + +commit 8d4864f53ffae5d862c691a0b334a6b69bc5366e +Author: Lasse Collin +Date: Thu May 10 21:15:17 2012 +0300 + + Update THANKS. + +commit 35e9c58abb0ce3993da844aaeaa3e7231cd2be8f +Author: Lasse Collin +Date: Thu May 10 21:14:16 2012 +0300 + + Docs: Cleanup line wrapping a bit. + +commit 532b3e4c568a228309b56f95c13435fd078dbe02 +Author: Benno Schulenberg +Date: Tue Mar 13 22:04:04 2012 +0100 + + Fix a few typos and add some missing articles in some documents. + + Also hyphenate several compound adjectives. + + Signed-off-by: Benno Schulenberg + +commit afb6ce8c82ffef8f2505a3759da72a733c7b0b8f +Author: Lasse Collin +Date: Sun Apr 29 11:51:25 2012 +0300 + + Windows: Update notes about static linking with MSVC. + +commit 7c3ba2ed5c3c878d4a14ca549b46dbff60c6d565 +Author: Lasse Collin +Date: Thu Apr 19 15:25:26 2012 +0300 + + liblzma: Remove outdated comments. + +commit f55db9c187651094f43881c49db2b2d9ffee6b80 +Author: Lasse Collin +Date: Thu Apr 19 14:17:52 2012 +0300 + + DOS: Link against DJGPP's libemu to support FPU emulation. + + This way xz should work on 386SX and 486SX. Floating point + only is needed for verbose output in xz. + +commit 203edff4c761dbd7cac76ea66e4eed501c23e7a3 +Author: Lasse Collin +Date: Thu Apr 19 13:58:55 2012 +0300 + + Docs: Update MINIX 3 information in INSTALL. + +commit f0a8f95c215628967b7cf9bd9b0a9e4172f50bb4 +Author: Lasse Collin +Date: Wed Feb 22 14:23:13 2012 +0200 + + Update THANKS. + +commit b7ad23fa78646036c0290cd91eada939c9a31526 +Author: Lasse Collin +Date: Wed Feb 22 14:02:34 2012 +0200 + + Fix exit status of xzgrep when grepping binary files. + + When grepping binary files, grep may exit before it has + read all the input. In this case, gzip -q returns 2 (eating + SIGPIPE), but xz and bzip2 show SIGPIPE as the exit status + (e.g. 141). This causes wrong exit status when grepping + xz- or bzip2-compressed binary files. + + The fix checks for the special exit status that indicates SIGPIPE. + It uses kill -l which should be supported everywhere since it + is in both SUSv2 (1997) and POSIX.1-2008. + + Thanks to James Buren for the bug report. + +commit 4e19fbb04a0035030406482319e264426459eb24 +Author: Lasse Collin +Date: Wed Feb 22 12:08:43 2012 +0200 + + Update THANKS. + +commit c6fa03a427e3d1320794102cee3ff4f5ae00eb36 +Author: Lasse Collin +Date: Thu May 24 18:47:52 2012 +0300 + + Fix compiling with IBM XL C on AIX. + +commit 7b6ffc98645e1b3b302b6680be0a901d1ebf7358 +Author: Lasse Collin +Date: Thu May 24 18:37:08 2012 +0300 + + Build: Upgrade m4/acx_pthread.m4 to the latest version. + + It was renamed to ax_pthread.m4 in Autoconf Archive. + +commit bfac2be5023994fcc53de2844e7dd3af61910dc2 +Author: Lasse Collin +Date: Tue Jan 10 17:13:03 2012 +0200 + + Tests: Fix a compiler warning with _FORTIFY_SOURCE. + + Reported here: + http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/4927385 + +commit df85e156716a4eecb7e2978691f03f729444d998 +Author: Lasse Collin +Date: Mon Dec 19 21:21:29 2011 +0200 + + Docs: Explain the stable releases better in README. + +commit d06d32f108c8278c25c24b2e8666bda7b2ec23b5 +Author: Lasse Collin +Date: Fri Nov 4 17:57:16 2011 +0200 + + xz: Fix a typo in a comment. + + Thanks to Bela Lubkin. + +commit 636fdcfbf542f1e84db2c4736004d84be4b12c84 +Author: Lasse Collin +Date: Thu Nov 3 17:08:02 2011 +0200 + + Update THANKS. + +commit 55fd02f83ecd6cbd6925a3e8a3d43b8d4ef2a17c +Author: Lasse Collin +Date: Thu Nov 3 17:07:22 2011 +0200 + + xz: Fix xz on EBCDIC systems. + + Thanks to Chris Donawa. + +commit 4052f36053b931bad847a36aabf1a07d0034e297 +Author: Lasse Collin +Date: Tue Sep 6 12:03:41 2011 +0300 + + Build: Fix "make check" on Windows. + +commit 0f25758459c74c366a73f35d47ee12b75890bb79 +Author: Lasse Collin +Date: Tue Aug 9 21:19:13 2011 +0300 + + Update THANKS. + +commit 70f03b51ffcb783646b20de8d97b6986c4280eec +Author: Lasse Collin +Date: Tue Aug 9 21:16:44 2011 +0300 + + Workaround unusual SIZE_MAX on SCO OpenServer. + +commit f138bdf76a70029e8360062a0b227936b83b24c9 +Author: Lasse Collin +Date: Sat Aug 6 20:37:28 2011 +0300 + + Run the scripts with the correct shell in test_scripts.sh. + + The scripts are now made executable in the build tree. + This way the scripts can be run like programs in + test_scripts.sh. Previously test_scripts.sh always + used sh but it's not correct if @POSIX_SHELL@ is set + to something else by configure. + + Thanks to Jonathan Nieder for the patch. + +commit 2c144a0365c84dbf1b6722466746d42f2563a319 +Author: Lasse Collin +Date: Sun Jul 31 11:01:47 2011 +0300 + + Fix exit status of "xzdiff foo.xz bar.xz". + + xzdiff was clobbering the exit status from diff in a case + statement used to analyze the exit statuses from "xz" when + its operands were two compressed files. Save and restore + diff's exit status to fix this. + + The bug is inherited from zdiff in GNU gzip and was fixed + there on 2009-10-09. + + Thanks to Jonathan Nieder for the patch and + to Peter Pallinger for reporting the bug. + commit edf339227a966f24aebe1845fcca9429b8f6e318 Author: Anders F Bjorklund Date: Fri Nov 5 12:56:11 2010 +0100 Modified: vendor/xz/dist/README ============================================================================== --- vendor/xz/dist/README Fri Dec 21 20:46:58 2012 (r244558) +++ vendor/xz/dist/README Fri Dec 21 20:47:57 2012 (r244559) @@ -5,7 +5,7 @@ XZ Utils 0. Overview 1. Documentation 1.1. Overall documentation - 1.2. Documentation for command line tools + 1.2. Documentation for command-line tools 1.3. Documentation for liblzma 2. Version numbering 3. Reporting bugs @@ -17,21 +17,21 @@ XZ Utils 0. Overview ----------- - XZ Utils provide a general-purpose data compression library and - command line tools. The native file format is the .xz format, but + XZ Utils provide a general-purpose data-compression library plus + command-line tools. The native file format is the .xz format, but also the legacy .lzma format is supported. The .xz format supports - multiple compression algorithms, which are called "filters" in + multiple compression algorithms, which are called "filters" in the context of XZ Utils. The primary filter is currently LZMA2. With typical files, XZ Utils create about 30 % smaller files than gzip. To ease adapting support for the .xz format into existing applications and scripts, the API of liblzma is somewhat similar to the API of the - popular zlib library. For the same reason, the command line tool xz - has similar command line syntax than that of gzip. + popular zlib library. For the same reason, the command-line tool xz + has a command-line syntax similar to that of gzip. - When aiming for the highest compression ratio, LZMA2 encoder uses + When aiming for the highest compression ratio, the LZMA2 encoder uses a lot of CPU time and may use, depending on the settings, even - hundreds of megabytes of RAM. However, in fast modes, LZMA2 encoder + hundreds of megabytes of RAM. However, in fast modes, the LZMA2 encoder competes with bzip2 in compression speed, RAM usage, and compression ratio. @@ -44,8 +44,8 @@ XZ Utils since that needs to be done only once to benefit many people. With some file types, combining (or "chaining") LZMA2 with an - additional filter can improve compression ratio. A filter chain may - contain up to four filters, although usually only one two is used. + additional filter can improve the compression ratio. A filter chain may + contain up to four filters, although usually only one or two are used. For example, putting a BCJ (Branch/Call/Jump) filter before LZMA2 in the filter chain can improve compression ratio of executable files. @@ -88,9 +88,9 @@ XZ Utils packages. -1.2. Documentation for command line tools +1.2. Documentation for command-line tools - The command line tools are documented as man pages. In source code + The command-line tools are documented as man pages. In source code releases (and possibly also in some binary packages), the man pages are also provided in plain text (ASCII only) and PDF formats in the directory "doc/man" to make the man pages more accessible to those @@ -109,8 +109,8 @@ XZ Utils written yet. For now, if you have never used liblzma, libbzip2, or zlib, I - recommend learning *basics* of zlib API. Once you know that, it - should be easier to learn liblzma. + recommend learning the *basics* of the zlib API. Once you know that, + it should be easier to learn liblzma. http://zlib.net/manual.html http://zlib.net/zlib_how.html @@ -124,23 +124,27 @@ XZ Utils - X is the major version. When this is incremented, the library API and ABI break. - - Y is the minor version. It is incremented when new features are - added without breaking existing API or ABI. Even Y indicates - stable release and odd Y indicates unstable (alpha or beta - version). + - Y is the minor version. It is incremented when new features + are added without breaking the existing API or ABI. An even Y + indicates a stable release and an odd Y indicates unstable + (alpha or beta version). - - Z is the revision. This has different meaning for stable and + - Z is the revision. This has a different meaning for stable and unstable releases: + * Stable: Z is incremented when bugs get fixed without adding - any new features. + any new features. This is intended to be convenient for + downstream distributors that want bug fixes but don't want + any new features to minimize the risk of introducing new bugs. + * Unstable: Z is just a counter. API or ABI of features added in earlier unstable releases having the same X.Y may break. - S indicates stability of the release. It is missing from the - stable releases where Y is an even number. When Y is odd, S + stable releases, where Y is an even number. When Y is odd, S is either "alpha" or "beta" to make it very clear that such versions are not stable releases. The same X.Y.Z combination is - not used for more than one stability level i.e. after X.Y.Zalpha, + not used for more than one stability level, i.e. after X.Y.Zalpha, the next version can be X.Y.(Z+1)beta but not X.Y.Zbeta. @@ -176,7 +180,7 @@ XZ Utils Don't send core dump files or any executables. If you have a small example file(s) (total size less than 256 KiB), please include it/them as an attachment. If you have bigger test files, put them - online somewhere and include an URL to the file(s) in the bug report. + online somewhere and include a URL to the file(s) in the bug report. Always include the exact version number of XZ Utils in the bug report. If you are using a snapshot from the git repository, use "git describe" @@ -193,7 +197,7 @@ XZ Utils The messages from the xz tool have been translated into a few languages. Before starting to translate into a new language, ask - the author that someone else hasn't already started working on it. + the author whether someone else hasn't already started working on it. Test your translation. Testing includes comparing the translated output to the original English version by running the same commands @@ -214,7 +218,7 @@ XZ Utils Note especially the following: - The output of --help and --long-help must look nice on - a 80-column terminal. It's OK to add extra lines if needed. + an 80-column terminal. It's OK to add extra lines if needed. - In contrast, don't add extra lines to error messages and such. They are often preceded with e.g. a filename on the same line, Modified: vendor/xz/dist/THANKS ============================================================================== --- vendor/xz/dist/THANKS Fri Dec 21 20:46:58 2012 (r244558) +++ vendor/xz/dist/THANKS Fri Dec 21 20:47:57 2012 (r244559) @@ -14,16 +14,19 @@ has been important. :-) In alphabetical - Jakub Bogusz - Maarten Bosmans - Trent W. Buck + - James Buren - David Burklund - Daniel Mealha Cabrita - Milo Casagrande - Marek Černocký + - Chris Donawa - Andrew Dudman - Markus Duft - İsmail Dönmez - Robert Elz - Gilles Espinasse - Denis Excoffier + - Michael Felt - Mike Frysinger - Jason Gorski - Juan Manuel Guerrero @@ -38,8 +41,10 @@ has been important. :-) In alphabetical - Peter Lawler - Hin-Tak Leung - Andraž 'ruskie' Levstik + - Cary Lewis - Wim Lewis - Lorenzo De Liso + - Bela Lubkin - Gregory Margo - Jim Meyering - Rafał Mużyło @@ -48,6 +53,7 @@ has been important. :-) In alphabetical - Jonathan Nieder - Andre Noll - Peter O'Gorman + - Peter Pallinger - Igor Pavlov - Diego Elio Pettenò - Elbert Pol @@ -58,6 +64,7 @@ has been important. :-) In alphabetical - Christian von Roques - Jukka Salmi - Alexandre Sauvé + - Benno Schulenberg - Andreas Schwab - Dan Shechter - Stuart Shelton Modified: vendor/xz/dist/po/de.po ============================================================================== --- vendor/xz/dist/po/de.po Fri Dec 21 20:46:58 2012 (r244558) +++ vendor/xz/dist/po/de.po Fri Dec 21 20:47:57 2012 (r244559) @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: XZ Utils 4.999.9beta\n" "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n" -"POT-Creation-Date: 2010-09-11 17:07+0200\n" +"POT-Creation-Date: 2012-05-29 17:20+0200\n" "PO-Revision-Date: 2010-09-07 20:27+0200\n" "Last-Translator: \n" "Language-Team: German\n" @@ -96,7 +96,7 @@ msgid "%s: File seems to have been moved msgstr "" "%s: Datei scheint umbenannt worden zu sein, daher wird sie nicht gelöscht" -#: src/xz/file_io.c:144 src/xz/file_io.c:590 +#: src/xz/file_io.c:144 src/xz/file_io.c:589 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Kann nicht löschen: %s" @@ -126,59 +126,59 @@ msgstr "%s: Überspringe symbolischen Ve msgid "%s: Is a directory, skipping" msgstr "%s: Überspringe Verzeichnis" -#: src/xz/file_io.c:462 +#: src/xz/file_io.c:461 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Keine reguläre Datei, überspringe" -#: src/xz/file_io.c:479 +#: src/xz/file_io.c:478 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Datei hat das setuid oder setgid Bit gesetzt, überspringe" -#: src/xz/file_io.c:486 +#: src/xz/file_io.c:485 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Datei hat sticky Bit gesetzt, überspringe" -#: src/xz/file_io.c:493 +#: src/xz/file_io.c:492 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Eingabedatei hat mehr als einen hard link, überspringe" -#: src/xz/file_io.c:714 +#: src/xz/file_io.c:713 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "" "Fehler beim Wiederherstellen des O_APPEND flags bei Standard Output: %s" -#: src/xz/file_io.c:726 +#: src/xz/file_io.c:725 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Fehler beim Schießen der Datei: %s" -#: src/xz/file_io.c:762 src/xz/file_io.c:946 +#: src/xz/file_io.c:761 src/xz/file_io.c:945 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "" "%s: Positionierungsfehler beim Versuch eine sparse Datei zu erzeugen: %s" -#: src/xz/file_io.c:821 +#: src/xz/file_io.c:820 #, c-format msgid "%s: Read error: %s" msgstr "%s: Lesefehler: %s" -#: src/xz/file_io.c:844 +#: src/xz/file_io.c:843 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Fehler beim Lesen der Dateinamen: %s" -#: src/xz/file_io.c:854 +#: src/xz/file_io.c:853 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Unerwartetes Ende der Datei" -#: src/xz/file_io.c:904 +#: src/xz/file_io.c:903 #, c-format msgid "%s: Write error: %s" msgstr "%s: Schreibfehler: %s" @@ -212,7 +212,7 @@ msgstr "Kein" #. but the Check ID is known (here 2). This and other "Unknown-N" #. strings are used in tables, so the width must not exceed ten #. columns with a fixed-width font. It's OK to omit the dash if -#. you need space for one extra letter. +#. you need space for one extra letter, but don't use spaces. #: src/xz/list.c:69 msgid "Unknown-2" msgstr "Unbek.2" @@ -275,41 +275,41 @@ msgstr "%s: Zu klein um ein gültiges .x #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:612 +#: src/xz/list.c:603 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr " Str. Blöcke Kompr. Unkompr. Verh. Check Dateiname" -#: src/xz/list.c:652 +#: src/xz/list.c:643 #, c-format msgid " Streams: %s\n" msgstr " Ströme: %s\n" -#: src/xz/list.c:654 +#: src/xz/list.c:645 #, c-format msgid " Blocks: %s\n" msgstr " Blöcke: %s\n" -#: src/xz/list.c:656 +#: src/xz/list.c:647 #, c-format msgid " Compressed size: %s\n" msgstr " Größe komprimiert: %s\n" -#: src/xz/list.c:659 +#: src/xz/list.c:650 #, c-format msgid " Uncompressed size: %s\n" msgstr " Größe unkomprimiert: %s\n" -#: src/xz/list.c:662 +#: src/xz/list.c:653 #, c-format msgid " Ratio: %s\n" msgstr " Verhältnis: %s\n" -#: src/xz/list.c:664 +#: src/xz/list.c:655 #, c-format msgid " Check: %s\n" msgstr " Check: %s\n" -#: src/xz/list.c:665 +#: src/xz/list.c:656 #, c-format msgid " Stream padding: %s\n" msgstr " Strom Auffüllung: %s\n" @@ -317,7 +317,7 @@ msgstr " Strom Auffüllung: %s\n" #. TRANSLATORS: The second line is column headings. All except #. Check are right aligned; Check is left aligned. Test with #. "xz -lv foo.xz". -#: src/xz/list.c:693 +#: src/xz/list.c:684 msgid "" " Streams:\n" " Stream Blocks CompOffset UncompOffset CompSize " @@ -329,7 +329,7 @@ msgstr "" #. TRANSLATORS: The second line is column headings. All #. except Check are right aligned; Check is left aligned. -#: src/xz/list.c:748 +#: src/xz/list.c:739 #, c-format msgid "" " Blocks:\n" @@ -347,53 +347,53 @@ msgstr "" #. are right aligned. %*s is replaced with 0-120 #. spaces to make the CheckVal column wide enough. #. Test with "xz -lvv foo.xz". -#: src/xz/list.c:760 +#: src/xz/list.c:751 #, c-format msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" msgstr " CheckWert %*s Kopf Schalter KompGröße Speicher Filter" -#: src/xz/list.c:838 src/xz/list.c:1007 +#: src/xz/list.c:829 src/xz/list.c:998 #, c-format msgid " Memory needed: %s MiB\n" msgstr " Benötigter Speicher: %s MiB\n" -#: src/xz/list.c:840 src/xz/list.c:1009 +#: src/xz/list.c:831 src/xz/list.c:1000 #, c-format msgid " Sizes in headers: %s\n" msgstr " Größe in Köpfen: %s\n" -#: src/xz/list.c:841 src/xz/list.c:1010 +#: src/xz/list.c:832 src/xz/list.c:1001 msgid "Yes" msgstr "Ja" -#: src/xz/list.c:841 src/xz/list.c:1010 +#: src/xz/list.c:832 src/xz/list.c:1001 msgid "No" msgstr "Nein" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:986 +#: src/xz/list.c:977 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s Datei\n" msgstr[1] "%s Dateien\n" -#: src/xz/list.c:999 +#: src/xz/list.c:990 msgid "Totals:" msgstr "Gesamt:" -#: src/xz/list.c:1000 +#: src/xz/list.c:991 #, c-format msgid " Number of files: %s\n" msgstr " Anzahl Dateien: %s\n" -#: src/xz/list.c:1072 +#: src/xz/list.c:1063 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "" "--list funktioniert nur mit .xz Dateien (--format=xz oder --format=auto)" -#: src/xz/list.c:1078 +#: src/xz/list.c:1069 msgid "--list does not support reading from standard input" msgstr "--list unterstützt kein Lesen der Standardeingabe" @@ -428,60 +428,73 @@ msgstr "" "Lesen der Standardeingabe ist nicht möglich, wenn die Dateinamen auch von " "der Standardeingabe gelesen werden" -#: src/xz/message.c:800 src/xz/message.c:844 +#. TRANSLATORS: This is the program name in the beginning +#. of the line in messages. Usually it becomes "xz: ". +#. This is a translatable string because French needs +#. a space before a colon. +#: src/xz/message.c:733 +#, c-format +msgid "%s: " +msgstr "" + +#: src/xz/message.c:796 src/xz/message.c:846 msgid "Internal error (bug)" msgstr "Interner Fehler (Bug)" -#: src/xz/message.c:807 +#: src/xz/message.c:803 msgid "Cannot establish signal handlers" msgstr "Kann Signal Routine nicht setzen" -#: src/xz/message.c:816 +#: src/xz/message.c:812 msgid "No integrity check; not verifying file integrity" msgstr "Kein Integritäts-Check; werde Datei-Integrität nicht überprüfen" -#: src/xz/message.c:819 +#: src/xz/message.c:815 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "" "Typ des Integritäts-Checks nicht unterstützt; werde Datei-Integrität nicht " "überprüfen" -#: src/xz/message.c:826 +#: src/xz/message.c:822 msgid "Memory usage limit reached" msgstr "Speicher-Limit erreicht" -#: src/xz/message.c:829 +#: src/xz/message.c:825 msgid "File format not recognized" msgstr "Datei Format nicht erkannt" -#: src/xz/message.c:832 +#: src/xz/message.c:828 msgid "Unsupported options" msgstr "Optionen nicht unterstützt" -#: src/xz/message.c:835 +#: src/xz/message.c:831 msgid "Compressed data is corrupt" msgstr "Komprimierte Daten sind korrupt" -#: src/xz/message.c:838 +#: src/xz/message.c:834 msgid "Unexpected end of input" msgstr "Unerwartetes Eingabe Ende" -#: src/xz/message.c:886 +#: src/xz/message.c:867 +msgid "%s MiB of memory is required. The limiter is disabled." +msgstr "%s MiB Speicher wird benötigt. Der Begrenzer ist deaktiviert." + +#: src/xz/message.c:895 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB Speicher wird benötigt. Limit ist %s." -#: src/xz/message.c:1053 +#: src/xz/message.c:1062 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Filter Kette: %s\n" -#: src/xz/message.c:1063 +#: src/xz/message.c:1072 #, c-format msgid "Try `%s --help' for more information." msgstr "Versuchen Sie `%s --help' für mehr Informationen." -#: src/xz/message.c:1089 +#: src/xz/message.c:1098 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -492,18 +505,18 @@ msgstr "" "Komprimiert oder dekomprimiert .xz DATEI(EN).\n" "\n" -#: src/xz/message.c:1096 +#: src/xz/message.c:1105 msgid "" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Obligatorische Argumente für lange Optionen sind auch für kurze Optionen\n" "zwingend.\n" -#: src/xz/message.c:1100 +#: src/xz/message.c:1109 msgid " Operation mode:\n" msgstr " Operationsmodus:\n" -#: src/xz/message.c:1103 +#: src/xz/message.c:1112 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -515,7 +528,7 @@ msgstr "" " -t, --test überprüfe Datei Integrität\n" " -l, --list liste Datei Informationen" -#: src/xz/message.c:1109 +#: src/xz/message.c:1118 msgid "" "\n" " Operation modifiers:\n" @@ -523,7 +536,7 @@ msgstr "" "\n" " Operationsmodifikatoren:\n" -#: src/xz/message.c:1112 +#: src/xz/message.c:1121 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -535,7 +548,7 @@ msgstr "" " -c, --stdout schreibe nach Standard Output und lösche nicht die\n" " Eingabedateien" -#: src/xz/message.c:1118 +#: src/xz/message.c:1127 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" @@ -554,7 +567,7 @@ msgstr "" " --files0=[DATEI] wie --files, aber benutze den Null Charakter als " "Trenner" -#: src/xz/message.c:1126 +#: src/xz/message.c:1135 msgid "" "\n" " Basic file format and compression options:\n" @@ -562,7 +575,7 @@ msgstr "" "\n" " Grundlegende Optionen für Dateiformat und Kompression:\n" -#: src/xz/message.c:1128 +#: src/xz/message.c:1137 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " `auto' (default), `xz', `lzma', and `raw'\n" @@ -578,7 +591,7 @@ msgstr "" "`crc32',\n" " `crc64' (Voreinstellung), oder `sha256'" -#: src/xz/message.c:1135 +#: src/xz/message.c:1144 msgid "" " -0 ... -9 compression preset; default is 6; take compressor " "*and*\n" @@ -591,7 +604,7 @@ msgstr "" "des\n" " Dekomprimierers, wenn Sie 7-9 benutzen!" -#: src/xz/message.c:1139 +#: src/xz/message.c:1148 msgid "" " -e, --extreme try to improve compression ratio by using more CPU " "time;\n" @@ -602,7 +615,7 @@ msgstr "" " verhältnis zu verbessern. Das beeinflusst nicht den\n" " Speicherbedarf des Dekomprimierers." -#: src/xz/message.c:1144 +#: src/xz/message.c:1153 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -619,7 +632,7 @@ msgstr "" "RAM,\n" " oder 0 für Grundeinstellungen." -#: src/xz/message.c:1151 +#: src/xz/message.c:1160 msgid "" " --no-adjust if compression settings exceed the memory usage " "limit,\n" @@ -631,7 +644,7 @@ msgstr "" "statt\n" " die Einstellungen nach unten anzupassen." -#: src/xz/message.c:1157 +#: src/xz/message.c:1166 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -639,7 +652,7 @@ msgstr "" "\n" " User-definierte Filter Kette für Kompression (alternativ zu Voreinstellung):" -#: src/xz/message.c:1166 +#: src/xz/message.c:1175 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero " @@ -683,7 +696,7 @@ msgstr "" " depth=NUM Maximale Suchtiefe; 0=automatisch\n" " (Voreinstellung)" -#: src/xz/message.c:1181 +#: src/xz/message.c:1190 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -706,7 +719,7 @@ msgstr "" " start=NUM Start-Offset für Konversion\n" " (Voreinstellung=0)" -#: src/xz/message.c:1193 +#: src/xz/message.c:1202 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -720,7 +733,7 @@ msgstr "" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 21 20:48:54 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DB2254FD; Fri, 21 Dec 2012 20:48:54 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A63168FC13; Fri, 21 Dec 2012 20:48:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBLKmsUj035532; Fri, 21 Dec 2012 20:48:54 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBLKms15035531; Fri, 21 Dec 2012 20:48:54 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201212212048.qBLKms15035531@svn.freebsd.org> From: Martin Matuska Date: Fri, 21 Dec 2012 20:48:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244560 - vendor/xz/5.0.4 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 20:48:54 -0000 Author: mm Date: Fri Dec 21 20:48:54 2012 New Revision: 244560 URL: http://svnweb.freebsd.org/changeset/base/244560 Log: Tag vendor/xz as version 5.0.4 Added: vendor/xz/5.0.4/ - copied from r244559, vendor/xz/dist/ From owner-svn-src-vendor@FreeBSD.ORG Sat Dec 22 14:58:33 2012 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D0439815; Sat, 22 Dec 2012 14:58:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B02F98FC0A; Sat, 22 Dec 2012 14:58:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBMEwX5n097726; Sat, 22 Dec 2012 14:58:33 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBMEwUOr097704; Sat, 22 Dec 2012 14:58:30 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201212221458.qBMEwUOr097704@svn.freebsd.org> From: Dimitry Andric Date: Sat, 22 Dec 2012 14:58:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r244590 - in vendor/llvm/dist: docs include/llvm/MC lib/ExecutionEngine/RuntimeDyld lib/MC lib/Target/Mips lib/Target/Mips/InstPrinter lib/Target/Mips/MCTargetDesc lib/Transforms/Scalar... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Dec 2012 14:58:33 -0000 Author: dim Date: Sat Dec 22 14:58:30 2012 New Revision: 244590 URL: http://svnweb.freebsd.org/changeset/base/244590 Log: Vendor import of llvm tags/RELEASE_32/final r170710 (effectively, 3.2 release): http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_32/final@170710 Added: vendor/llvm/dist/test/CodeGen/Mips/biggot.ll vendor/llvm/dist/test/MC/Mips/xgot.ll Modified: vendor/llvm/dist/docs/ReleaseNotes.html vendor/llvm/dist/include/llvm/MC/MCExpr.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h vendor/llvm/dist/lib/MC/MCExpr.cpp vendor/llvm/dist/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Mips/Mips64InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsCodeEmitter.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsJITInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsJITInfo.h vendor/llvm/dist/lib/Target/Mips/MipsMCInstLower.cpp vendor/llvm/dist/lib/Transforms/Scalar/SROA.cpp vendor/llvm/dist/test/Transforms/SROA/basictest.ll vendor/llvm/dist/test/Transforms/SROA/big-endian.ll Modified: vendor/llvm/dist/docs/ReleaseNotes.html ============================================================================== --- vendor/llvm/dist/docs/ReleaseNotes.html Sat Dec 22 14:35:46 2012 (r244589) +++ vendor/llvm/dist/docs/ReleaseNotes.html Sat Dec 22 14:58:30 2012 (r244590) @@ -29,12 +29,6 @@

Written by the LLVM Team

-

These are in-progress notes for the upcoming LLVM 3.2 -release.
-You may prefer the -LLVM 3.1 -Release Notes.

-

Introduction @@ -46,7 +40,7 @@ Release Notes.

This document contains the release notes for the LLVM Compiler Infrastructure, release 3.2. Here we describe the status of LLVM, including major improvements from the previous release, improvements in various - subprojects of LLVM, and some of the current users of the code. All LLVM + sub-projects of LLVM, and some of the current users of the code. All LLVM releases may be downloaded from the LLVM releases web site.

@@ -72,11 +66,12 @@ Release Notes.
-

The LLVM 3.2 distribution currently consists of code from the core LLVM - repository, which roughly includes the LLVM optimizers, code generators and - supporting tools, and the Clang repository. In addition to this code, the - LLVM Project includes other sub-projects that are in development. Here we - include updates on these subprojects.

+

The LLVM 3.2 distribution currently consists of production-quality code + from the core LLVM repository, which roughly includes the LLVM optimizers, + code generators and supporting tools, as well as Clang, DragonEgg and + compiler-rt sub-project repositories. In addition to this code, the LLVM + Project includes other sub-projects that are in development. Here we + include updates on these sub-projects.

@@ -90,18 +85,18 @@ Release Notes.

experience through expressive diagnostics, a high level of conformance to language standards, fast compilation, and low memory use. Like LLVM, Clang provides a modular, library-based architecture that makes it suitable for - creating or integrating with other development tools. Clang is considered a - production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86 - (32- and 64-bit), and for Darwin/ARM targets.

+ creating or integrating with other development tools.

In the LLVM 3.2 time-frame, the Clang team has made many improvements. Highlights include:

    -
  • ...
  • +
  • Improvements to Clang's diagnostics
  • +
  • Support for tls_model attribute
  • +
  • Type safety attributes

For more details about the changes to Clang since the 3.1 release, see the - Clang release + Clang 3.2 release notes.

If Clang rejects your code but another compiler accepts it, please take a @@ -129,7 +124,10 @@ Release Notes.

The 3.2 release has the following notable changes:

    -
  • ...
  • +
  • Able to load LLVM plugins such as Polly.
  • +
  • Supports thread-local storage models.
  • +
  • Passes knowledge of variable lifetimes to the LLVM optimizers.
  • +
  • No longer requires GCC to be built with LTO support.
@@ -141,7 +139,8 @@ Release Notes.
-

The new LLVM compiler-rt project + +

The LLVM compiler-rt project is a simple library that provides an implementation of the low-level target-specific hooks required by code generation and other runtime components. For example, when compiling for a 32-bit target, converting a @@ -153,7 +152,11 @@ Release Notes.

The 3.2 release has the following notable changes:

    -
  • ...
  • +
  • ThreadSanitizer (TSan) - data race detector run-time library for C/C++ has been added.
  • +
  • Improvements to AddressSanitizer including: better portability + (OSX, Android NDK), support for cmake based builds, enhanced error reporting and lots of bug fixes.
  • +
  • Added support for A6 'Swift' CPU.
  • +
  • divsi3 function has been enhanced to take advantage of a hardware unsigned divide when it is available.
@@ -174,7 +177,9 @@ Release Notes.

The 3.2 release has the following notable changes:

    -
  • ...
  • +
  • Linux build fixes for clang (see Building LLDB)
  • +
  • Some Linux stability and usability improvements
  • +
  • Switch expression evaluation to use MCJIT (from legacy JIT) on Linux
@@ -193,7 +198,15 @@ Release Notes.

Within the LLVM 3.2 time-frame there were the following highlights:

    -
  • ...
  • +
  • C++11 shared_ptr atomic access API (20.7.2.5) has been implemented.
  • +
  • Applied noexcept and constexpr throughout library.
  • +
  • Improved C++11 conformance in associative container emplace.
  • +
  • Performance improvements in: std::rotate algorithm and I/O.
  • +
  • Operator new/delete and type_infos for exception types moved from libc++ to libc++abi.
  • +
  • Bug fixes in: <atomic>; vector<bool> algorithms, + <future>,<tuple>, + <type_traits>,<fstream>,<istream>, + <iterator>, <condition_variable>,<complex> as well as visibility fixes.
@@ -212,7 +225,7 @@ Release Notes.

The 3.2 release has the following notable changes:

    -
  • ...
  • +
  • Bug fixes only, no functional changes.
@@ -227,16 +240,61 @@ Release Notes.

Polly is an experimental optimizer for data locality and parallelism. It currently provides high-level - loop optimizations and automatic parallelisation (using the OpenMP run time). + loop optimizations and automatic parallelization (using the OpenMP run time). Work in the area of automatic SIMD and accelerator code generation was started.

Within the LLVM 3.2 time-frame there were the following highlights:

    -
  • ...
  • +
  • isl, the integer set library used by Polly, was relicensed under the MIT license.
  • +
  • isl based code generation.
  • +
  • MIT licensed replacement for CLooG (LGPLv2).
  • +
  • Fine grained option handling (separation of core and border computations, control overhead vs. code size).
  • +
  • Support for FORTRAN and Dragonegg.
  • +
  • OpenMP code generation fixes.
  • +
+ + + + +

+Clang Static Analyzer +

+ +
+ +

The Clang Static Analyzer + is an advanced source code analysis tool integrated into Clang that performs + a deep analysis of code to find potential bugs.

+ +

In the LLVM 3.2 release, the static analyzer has made significant improvements + in many areas, with notable highlights such as:

+ +
    +
  • Improved interprocedural analysis within a translation unit (see details below), which greatly amplified the analyzer's ability to find bugs.
  • +
  • New infrastructure to model "well-known" APIs, allowing the analyzer to do a much better job when modeling calls to such functions.
  • +
  • Significant improvements to the APIs to write static analyzer checkers, with a more unified way of representing function/method calls in the checker API. Details can be found in the Building a Checker in 24 hours talk. +
+ +

The release specifically includes notable improvements for Objective-C analysis, including:

+ +
    +
  • Interprocedural analysis for Objective-C methods.
  • +
  • Interprocedural analysis of calls to "blocks".
  • +
  • Precise modeling of GCD APIs such as dispatch_once and friends.
  • +
  • Improved support for recently added Objective-C constructs such as array and dictionary literals.
  • +
+ +

The release specifically includes notable improvements for C++ analysis, including:

+ +
    +
  • Interprocedural analysis for C++ methods (within a translation unit).
  • +
  • More precise modeling of C++ initializers and destructors.
+

Finally, this release includes many small improvements to scan-build, which can be used to drive the analyzer from the command line or a continuous integration system. This includes a directory-traversal issue, which could cause potential security problems in some cases. We would like to acknowledge Tim Brown of Portcullis Computer Security Ltd for reporting this issue.

+
@@ -265,6 +323,19 @@ Release Notes. +

EmbToolkit

+ +
+ +

EmbToolkit provides Linux cross-compiler + toolchain/SDK (GCC/binutils/C library (uclibc,eglibc,musl)), a build system for + package cross-compilation and optionally various root file systems. + It supports ARM and MIPS. There is an ongoing effort to provide a clang+llvm + environment for the 3.2 releases, +

+ +
+

FAUST

@@ -274,7 +345,7 @@ Release Notes. AUdio STream. Its programming model combines two approaches: functional programming and block diagram composition. In addition with the C, C++, Java, JavaScript output formats, the Faust compiler can generate LLVM bitcode, and - works with LLVM 2.7-3.1.

+ works with LLVM 2.7-3.2.

@@ -331,7 +402,11 @@ Release Notes.

OSL was developed by Sony Pictures Imageworks for use in its in-house renderer used for feature film animation and visual effects, and is - distributed as open source software with the "New BSD" license.

+ distributed as open source software with the "New BSD" license. + It has been used for all the shading on such films as The Amazing Spider-Man, + Men in Black III, Hotel Transylvania, and may other films in-progress, + and also has been incorporated into several commercial and open source + rendering products such as Blender, VRay, and Autodesk Beast.

@@ -367,7 +442,7 @@ Release Notes. C++, Fortran and Faust code in Pure programs if the corresponding LLVM-enabled compilers are installed).

-

Pure version 0.54 has been tested and is known to work with LLVM 3.1 (and +

Pure version 0.56 has been tested and is known to work with LLVM 3.2 (and continues to work with older LLVM releases >= 2.5).

@@ -432,7 +507,9 @@ Release Notes.

LLVM 3.2 includes several major changes and big features:

    -
  • ...
  • +
  • Loop Vectorizer.
  • +
  • New implementation of SROA.
  • +
  • New NVPTX back-end (replacing existing PTX back-end) based on NVIDIA sources.
@@ -451,7 +528,10 @@ Release Notes.
  • Thread local variables may have a specified TLS model. See the Language Reference Manual.
  • -
  • ...
  • +
  • 'TYPE_CODE_FUNCTION_OLD' type code and autoupgrade code for old function attributes format has been removed.
  • +
  • Internal representation of the Attributes class has been converted into a pointer to an + opaque object that's uniqued by and stored in the LLVMContext object. + The Attributes class then becomes a thin wrapper around this opaque object.
@@ -489,23 +569,33 @@ Release Notes.
  • The inner most loops must have a single basic block.
  • The number of iterations are known before the loop starts to execute.
  • -
  • The loop counter needs to be incrimented by one.
  • +
  • The loop counter needs to be incremented by one.
  • The loop trip count can be a variable.
  • Loops do not need to start at zero.
  • The induction variable can be used inside the loop.
  • Loop reductions are supported.
  • Arrays with affine access pattern do not need to be marked as 'noalias' and are checked at runtime.
  • -
  • ...

-

SROA - We've re-written SROA to be significantly more powerful. -

+

SROA - We’ve re-written SROA to be significantly more powerful and generate +code which is much more friendly to the rest of the optimization pipeline. +Previously this pass had scaling problems that required it to only operate on +relatively small aggregates, and at times it would mistakenly replace a large +aggregate with a single very large integer in order to make it a scalar SSA +value. The result was a large number of i1024 and i2048 values representing any +small stack buffer. These in turn slowed down many subsequent optimization +paths.

+

The new SROA pass uses a different algorithm that allows it to only promote to +scalars the pieces of the aggregate actively in use. Because of this it doesn’t +require any thresholds. It also always deduces the scalar values from the uses +of the aggregate rather than the specific LLVM type of the aggregate. These +features combine to both optimize more code with the pass but to improve the +compile time of many functions dramatically.

    -
  • Branch weight metadata is preseved through more of the optimizer.
  • -
  • ...
  • +
  • Branch weight metadata is preserved through more of the optimizer.
@@ -524,8 +614,19 @@ Release Notes. Intro to the LLVM MC Project Blog Post.

-
    -
  • ...
  • +
      +
    • Added support for following assembler directives: .ifb, .ifnb, .ifc, + .ifnc, .purgem, .rept and .version (ELF) as well as Darwin specific + .pushsection, .popsection and .previous .
    • +
    • Enhanced handling of .lcomm directive.
    • +
    • MS style inline assembler: added implementation of the offset and TYPE operators.
    • +
    • Targets can specify minimum supported NOP size for NOP padding.
    • +
    • ELF improvements: added support for generating ELF objects on Windows.
    • +
    • MachO improvements: symbol-difference variables are marked as N_ABS, added direct-to-object attribute for data-in-code markers.
    • +
    • Added support for annotated disassembly output for x86 and arm targets.
    • +
    • Arm support has been improved by adding support for ARM TARGET2 relocation + and fixing hadling of ARM-style "$d.*" labels.
    • +
    • Implemented local-exec TLS on PowerPC.
    @@ -550,10 +651,6 @@ Release Notes. infrastructure, which allows us to implement more aggressive algorithms and make it run faster:

    -
      -
    • ...
    • -
    -

    We added new TableGen infrastructure to support bundling for Very Long Instruction Word (VLIW) architectures. TableGen can now automatically generate a deterministic finite automaton from a VLIW @@ -563,6 +660,13 @@ Release Notes.

    We have added a new target independent VLIW packetizer based on the DFA infrastructure to group machine instructions into bundles.

    +

    We have added new TableGen infrastructure to support relationship maps + between instructions. This feature enables TableGen to automatically + construct a set of relation tables and query functions that can be used + to switch between various forms of instructions. For more information, + please refer to + How To Use Instruction Mappings.

    +

    @@ -588,7 +692,7 @@ Release Notes.

    New features and major changes in the X86 target include:

      -
    • ...
    • +
    • Small codegen optimizations, especially for AVX2.
    @@ -603,7 +707,7 @@ Release Notes.

    New features of the ARM target include:

      -
    • ...
    • +
    • Support and performance tuning for the A6 'Swift' CPU.
    @@ -620,7 +724,7 @@ Release Notes. platform specific support for Linux.

    Full support is included for Thumb1, Thumb2 and ARM modes, along with - subtarget and CPU specific extensions for VFP2, VFP3 and NEON.

    + sub-target and CPU specific extensions for VFP2, VFP3 and NEON.

    The assembler is Unified Syntax only (see ARM Architecural Reference Manual for details). While there is some, and growing, support for pre-unfied @@ -640,7 +744,29 @@ Release Notes.

    New features and major changes in the MIPS target include:

      -
    • ...
    • +
    • Integrated assembler support: + MIPS32 works for both PIC and static, known limitation is the PR14456 where + R_MIPS_GPREL16 relocation is generated with the wrong addend. + MIPS64 support is incomplete, for example exception handling is not working.
    • +
    • Support for fast calling convention has been added.
    • +
    • Support for Android MIPS toolchain has been added to clang driver.
    • +
    • Added clang driver support for MIPS N32 ABI through "-mabi=n32" option.
    • +
    • MIPS32 and MIPS64 disassembler has been implemented.
    • +
    • Support for compiling programs with large GOTs (exceeding 64kB in size) has been added + through llc option "-mxgot".
    • +
    • Added experimental support for MIPS32 DSP intrinsics.
    • +
    • Experimental support for MIPS16 with following limitations: only soft float is supported, + C++ exceptions are not supported, large stack frames (> 32000 bytes) are not supported, + direct object code emission is not supported only .s .
    • +
    • Standalone assembler (llvm-mc): implementation is in progress and considered experimental.
    • +
    • All classic JIT and MCJIT tests pass on Little and Big Endian MIPS32 platforms.
    • +
    • Inline asm support: all common constraints and operand modifiers have been implemented.
    • +
    • Added tail call optimization support, use llc option "-enable-mips-tail-calls" + or clang options "-mllvm -enable-mips-tail-calls"to enable it.
    • +
    • Improved register allocation by removing registers $fp, $gp, $ra and $at from the list of reserved registers.
    • +
    • Long branch expansion pass has been implemented, which expands branch + instructions with offsets that do not fit in the 16-bit field.
    • +
    • Cavium Octeon II board is used for testing builds (llvm-mips-linux builder).
    @@ -652,7 +778,6 @@ Release Notes.
    -

      Many fixes and changes across LLVM (and Clang) for better compliance with the 64-bit PowerPC ELF Application Binary Interface, interoperability with GCC, and overall 64-bit PowerPC support. Some highlights include:

      @@ -681,8 +806,28 @@ Release Notes.

      There have also been code generation improvements for both 32- and 64-bit code. Instruction scheduling support for the Freescale e500mc and e5500 cores has been added.

      + +
    + + +

    +PTX/NVPTX Target Improvements +

    + +
    + +

    The PTX back-end has been replaced by the NVPTX back-end, which is based on + the LLVM back-end used by NVIDIA in their CUDA (nvcc) and OpenCL compiler. + Some highlights include:

    +
      +
    • Compatibility with PTX 3.1 and SM 3.5
    • +
    • Support for NVVM intrinsics as defined in the NVIDIA Compiler SDK
    • +
    • Full compatibility with old PTX back-end, with much greater coverage of + LLVM IR
    +

    Please submit any back-end bugs to the LLVM Bugzilla site.

    +
    @@ -693,7 +838,7 @@ Release Notes.
      -
    • ...
    • +
    • Added support for custom names for library functions in TargetLibraryInfo.
    @@ -710,9 +855,11 @@ Release Notes. from the previous release.

      -
    • ...
    • -
    - +
  • llvm-ld and llvm-stub have been removed, llvm-ld functionality can be partially replaced by + llvm-link | opt | {llc | as, llc -filetype=obj} | ld, or fully replaced by Clang.
  • +
  • MCJIT: added support for inline assembly (requires asm parser), added faux remote target execution to lli option '-remote-mcjit'.
  • +
+ @@ -733,10 +880,6 @@ Release Notes.

The TargetData structure has been renamed to DataLayout and moved to VMCore to remove a dependency on Target.

-
    -
  • ...
  • -
- @@ -746,33 +889,22 @@ to remove a dependency on Target.

-

In addition, some tools have changed in this release. Some of the changes - are:

- -
    -
  • ...
  • -
- -
- - - -

-Python Bindings -

- -
- -

Officially supported Python bindings have been added! Feature support is far - from complete. The current bindings support interfaces to:

+

In addition, some tools have changed in this release. Some of the changes are:

    -
  • ...
  • +
  • opt: added support for '-mtriple' option.
  • +
  • llvm-mc : - added '-disassemble' support for '-show-inst' and '-show-encoding' options, added '-edis' option to produce annotated + disassembly output for X86 and ARM targets.
  • +
  • libprofile: allows the profile data file name to be specified by the LLVMPROF_OUTPUT environment variable.
  • +
  • llvm-objdump: has been changed to display available targets, '-arch' option accepts x86 and x86-64 as valid arch names.
  • +
  • llc and opt: added FMA formation from pairs of FADD + FMUL or FSUB + FMUL enabled by option '-enable-excess-fp-precision' or option '-enable-unsafe-fp-math', + option '-fp-contract' controls the creation by optimizations of fused FP by selecting Fast, Standard, or Strict mode.
  • +
  • llc: object file output from llc is no longer considered experimental.
  • +
  • gold plugin: handles Position Independent Executables.
-

@@ -794,7 +926,7 @@ to remove a dependency on Target.

Known problem areas include:

    -
  • The CellSPU, MSP430, PTX and XCore backends are experimental.
  • +
  • The CellSPU, MSP430, and XCore backends are experimental, and the CellSPU backend will be removed in LLVM 3.3.
  • The integrated assembler, disassembler, and JIT is not supported by several targets. If an integrated assembler is not supported, then a @@ -836,7 +968,7 @@ to remove a dependency on Target.

    src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"> LLVM Compiler Infrastructure
    - Last modified: $Date: 2012-11-20 05:22:44 +0100 (Tue, 20 Nov 2012) $ + Last modified: $Date: 2012-12-19 11:50:28 +0100 (Wed, 19 Dec 2012) $ Modified: vendor/llvm/dist/include/llvm/MC/MCExpr.h ============================================================================== --- vendor/llvm/dist/include/llvm/MC/MCExpr.h Sat Dec 22 14:35:46 2012 (r244589) +++ vendor/llvm/dist/include/llvm/MC/MCExpr.h Sat Dec 22 14:58:30 2012 (r244590) @@ -197,7 +197,11 @@ public: VK_Mips_GOT_PAGE, VK_Mips_GOT_OFST, VK_Mips_HIGHER, - VK_Mips_HIGHEST + VK_Mips_HIGHEST, + VK_Mips_GOT_HI16, + VK_Mips_GOT_LO16, + VK_Mips_CALL_HI16, + VK_Mips_CALL_LO16 }; private: Modified: vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp ============================================================================== --- vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp Sat Dec 22 14:35:46 2012 (r244589) +++ vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp Sat Dec 22 14:58:30 2012 (r244590) @@ -346,7 +346,7 @@ uint8_t *RuntimeDyldImpl::createStubFunc uint32_t *StubAddr = (uint32_t*)Addr; *StubAddr = 0xe51ff004; // ldr pc,