Pkgsrc changes:
* Renamed patches to follow new pkgsrc conventions.
* Oddly, the .tgz distfile isn't actually compressed. Compensate.
Upstream changes:
Release 1.51
============
Released 17.12.26.
Subversion directory release_number/10.51.00.
* Build: Add --disable-abyss-openssl for build environments that
appear to have Openssl but don't really. (A Pkg-config design
flaw makes that happen sometimes - you can't control what
directories it searches for .pc files).
* Windows build: add Visual Studio 2017 project files, fix various
things broken for Windows in recent updates. Thanks to Maksym
Veremeyenko.
Release 1.50
============
Released 17.09.28.
Subversion directory release_number/10.50.00.
* Build: fix installation of programs. Introduced in Xmlrpc-c
1.47 (September 2016).
* Windows build: fix ChanSwitchUnixGetListenName not found.
* Windows build: Add current VS2010express project files.
* Windows build: various fixes. Doesn't necessarily work yet.
Release 1.49
============
Released 17.03.26.
Subversion directory release_number/10.49.00.
* Add program xmlrpc_dumpserver.
Release 1.48
============
Released 16.12.27.
Subversion directory release_number/10.48.00.
* Disable 10M restriction on document size in Libxml2 XML parser.
* Build: Recognize additional Linux "host OS" environments. E.g.
"linux-uclibc".
* Build: replace BUILDTOOL_CC and BUILDTOOL_CCLD with more
conventional CC_FOR_BUILD. Add CFLAGS_FOR_BUILD, LDFLAGS_FOR_BUILD.
* Build: Don't attempt to build C++ internal utility module
cmdline_parser_cpp if we aren't building the C++ libraries. In
that case, 1) it isn't needed, and 2) the environment probably
is incapable of compiling C++.
* Build: Use AC_CHECK_TOOL to determine 'ar' command and
AC_PROG_RANLIB to determine 'ranlib' command to use.
* Build: fix compile failure in build for a system that does not
have Unicode wide characters (wchar_t).
Release 1.47
============
Released 16.09.25.
Subversion directory release_number/10.47.00.
* Install: fix bug: xmlrpc_expat.pc not installed.
* Install: Add 'uninstall' make target
Release 1.46
============
Released 16.06.29.
Subversion directory release_number/01.46.00.
* Packet stream client: Add option to throw a BrokenConnEx
exception when transport fails because the server hung up or
network broke, instead of throwing error.
* Add ServerAbyss::getListenName method, ChanSwitchUnixGetListeName:
ability to find out on what port your server is listening.
* Packet stream server ('serverPstreamConn'): fix bug: runOnce()
fails with indication that it was interrupted when the server
hangs up. Always broken (interruptible RunOnce() was new in
Xmlrpc-c 1.14 (March 2008).
* Fix compile failure with old OpenSSL that doesn't have
SSL_ERROR_WANT_ACCEPT. Introduced in Xmlrpc-c 1.45.
Release 1.45
============
Released 16.03.27.
Subversion directory release_number/01.45.00.
* Add SSL/TLS capability via OpenSSL to Abyss server.
* Fix xmlrpc_mem_block accidentally made private in 1.44.
* Build: Remove example and test program usage of XML parser
facility (<xmlrpc-c/xmlparser.h>), which was made private in
1.44, so the examples and tools no longer build.
Release 1.44
============
Released 15.12.31.
Subversion directory release_number/01.44.00.
* C++: Add 'toValue' and 'fromValue' for 64-bit integer
(xmlrpc_c::value_i8).
* Memory block utility: Remove xmlrpc_mem_block_init and
xmlrpc_mem_block_clean. These complicate forward compatibility
and probably were never used. xmlrpc_mem_block_new and
xmlrpc_mem_block_free remain to fulfill the same purpose.
* Remove XML parser (<xmlrpc-c/xmlparser.h>) from external API.
This is not specific to XML-RPC, so has no business being a
service of Xmlrpc-c. It is just an abstraction to allow us to
use various XML parsing libraries (to wit, Expat and Libxml2).
We don't think it was ever used externally.
* Build: make install does not create empty man page directory.
Release 1.43
============
Released 15.09.27.
Subversion directory release_number/01.43.00.
* Add xmlrpc_value_new(): deep copy of xmlrpc_value.
* Abyss C++: Add 'terminate' and 'resetTerminate' methods,
analogous to C Abyss 'ServerTerminate' and 'ServerResetTerminate'.
* Fix bug: infinite recursion if you try to format a floating
point value that was created from something other than a finite
number. Creation of a floating point XML-RPC value from something
other than a number now fails. Introduced in Xmlrpc-c 1.15
(June 2008).
* Curl client: fix garbage in message where explanation from Curl
library belongs. Always there, with some Curl libraries.
* Curl client: fix instantaneous timeout with some Curl libraries.
Introduced in Xmlrpc-c 1.41 (March 2015).
* Curl client: fix 'connect_timeout' transport parameter interpreted
as 'timeout'. Always broken ('connect_timeout' was new in
Xmlrpc-c 1.41 (March 2015)).
Release 1.42
============
Released 15.06.28.
Subversion directory release_number/01.42.00.
* AbysssServer: add 'Session::headerValue' and 'Session::getHeaderValue'.
* Fix crash in 'xmlrpc' program under most circumstances. Broken
in Xmlrpc-c 1.40 (December 2014).
* Packet socket: fix missing parenthesis in error message. Broken
in Xmlrpc-c 1.25 (December 2010).
Release 1.41
============
Released 15.03.26.
Subversion directory release_number/01.41.00.
* Fix crash: multithreaded client program that uses the Curl XML
transport and does not specify a Curl timeout transport parameter
crashes because of signal use inside the Curl library, unless
the Curl library is one that does DNS lookups with the ARES
library.
* Make a client that uses the Curl XML transport and does not
specify a Curl timeout transport parameter wait indefinitely
for a DNS lookup, or at least until the OS DNS lookup service
gives up, unless the Curl library is one that does DNS lookups
with the ARES library. In previous releases, the RPC failed
after waiting 5 minutes. This was not intended as an enhancement,
but rather is a side effect of fixing the crash described above.
But it also adds consistency, since the wait for the DNS lookup
was always indefinite, ironically, in the case that the program
specified timeout.
* Add connect_timeout curl transport parameter.
* Packet stream socket: fix: sends corrupted packet when the
packet contains an ESC character. Always broken. (packet stream
sockets were new in Xmlrpc-c 1.11 - June 2007).
* Add XMLRPC_TRACE_PACKETSOCKET environment variable: a means of
tracing communication at the packet socket level.
* Build: Use -pthread on compile and link instead of just linking
libpthread if compiler is GNU.
* Build: Don't rely on <features.h> to define __BEGIN_DECLS
* Build: don't ignore LDFLAGS in build of Gennmtab. Broken since
Xmlrpc-c 1.32 (September 2012).
* Many changes to accomodate Mingw. May not work completely yet.
* Build: fix a "recompile with -fPIC" failure in parallel make.
* Build: fix failure with configure --disable-abyss-threads.
Introduced in Xmlrpc-c 1.38 (March 2014).
Release 1.40
============
Released 14.12.28.
Subversion directory release_number/01.40.00.
* Fix AbyssServer::readRequestBody for chunked bodies. Always
broken (AbyssServer was new in Netpbm 1.39 (September 2014).
* Add pkg-config files (e.g. xmlrpc.pc)
* Build: fix 'make distclean' so it doesn't leave src/cpp/srcdir
and src/cpp/blddir.
Release 1.39
============
Released 14.09.27.
Subversion directory release_number/01.39.00.
* Add C++ Abyss server classes. Not documented yet.
* Abyss: with access control, send Access-Control-Allow-Headers
headers for Content-Type and Content-Length.
* Curl client: Fix bogus "please call curl_muti_perform()" error
with very old Curl library.
* Abyss: fix bug: RequestAuth() always says not authenticated.
Broken in 1.10 (March 2007).
* Abyss: fix missing prototype for RequestAuth(). Always broken.
* Install: fix bug: <xmlrpc-c/base64.hpp> not installed.
Release 1.38
============
Released 14.03.25.
Subversion directory release_number/01.38.00.
* Fix bug: When serializing a very large floating point number,
sender of an XML-RPC message adds some junk after the decimal
point. With assertion checking enabled, it just crashes. Broken
in 1.15 (June 2008).
* xmlrpc program: add ability to specify a struct or array RPC
parameter (struct/ and array/).
* Abyss: fix parsing of URI with %HH escape sequence - always
said invalid URI. Broken in 1.31 (June 2012).
* Abyss: Fail ServerRun() and ServerRunOnce() if user hasn't done
ServerInit() instead of trying to make the channel switch accept
a connection even though it isn't in listening state. Combined
with the two problems below, this caused POSIX socket servers
to go into an infinite loop if the user called ServerRun()
without a prior ServerInit().
* Abyss: Fail ChanSwitchAccept() if user hasn't done ChanSwitchListen()
instead of trying to make the OS do the accept.
* Abyss: Unix socket: Fix bug: POLLHUP and POLLERR state on
listening or interrupt socket caused accept function to return
as if the wait had simply been interrupted.
* Abyss: fix error HTTP response for invalid request line - showed
wrong request line. Always broken. (The request line in that
message was new in Xmlrpc-c 1.19 (June 2009).
* Abyss: add details to invalid request line error HTTP response.
* xmlrpc-c-config: add "abyss" target to get just the Abyss
library - no XML-RPC stuff.
Release 1.37
============
Released 13.12.31.
Subversion directory release_number/01.37.00.
* Abyss server: Fix bug: reported HTTP status 408 (Request timed
out) for all problems getting the request from the client. Also
add text detail of problems getting the request from the client
to the HTTP error response.
* Fix pervasive wild pointer dereference when memory allocation
of small string fails. Introduced in 1.01 (January 2005).
* Fixes for Windows build problems introduced in 1.33.
Release 1.36
============
Released 13.09.29.
Subversion directory release_number/01.36.00.
* C++ server: add versions of 'xmlrpc_c::registry::addMethod'
that takes a simple pointer to the method object, so you can
use it with automatic and static method objects. Same for
'xmlrpc_c::registry::setDefaultMethod'.
* Remove 128M limit on certain memory allocations.
* Change strategy for overallocating memory - grow blocks no more
than a megabyte at a time; shrink blocks sometimes.
* Fix interpretation of dateTime.iso8601 variant with timezone
information. As broken, it would add up to a second to the
correct datetime or reject the message claiming that it has
invalid syntax. Always broken (recognition of the timezone
variant was introduced in Xmlrpc-c 1.20 (September 2009).
* 'xmlrpc', 'xmlrpc_pstream', 'xmlrpc_parsecall': add ability to
display dateTime.iso8601.
* AIX build: various fixes.
* Windows build: fix reference to _snprintf; broke in Xmlrpc-c 1.34.
* Windows build: fix lock_windows.c so it compiles. File was new
in Xmlrpc-c 1.33 and never compiled. Fix girmem.cpp to use
lock_platform, etc. instead of pthreadx, which was removed in
Xmlrpc-c 1.33.
Release 1.35
============
Released 13.06.27.
Subversion directory release_number/01.35.00.
* Abyss: fix wrong peer address with Unix socket channel made
with ChannelUnixCreateFd(). Always broken (ability to get peer
address was added in Release 1.07 (October 2006)).
* JSON value formatting: Fix buffer overrun.
* Build: build 'configure' with Autoconf 2.69 (previously built
with 2.67).
Release 1.34
============
Released 13.03.30.
Subversion directory release_number/01.34.00
* Build: fix libpthread dependency bug introduced in 1.33.00.
* Test program build: include <unistd.h> instead of <sys/unistd.h>.
Release 1.33
============
Released 12.12.27.
Subversion directory release_number/01.33.00.
* Make xmlrpc_value thread-safe (after construction, when the
only modification allowed is to the reference count).
* Client with Curl transport: fix bug which disables interruption
unless you register a progress function for the transport.
Introduced in 1.24 (September 2010).
* Add xmlrpc_init(), xmlrpc_term().
* Server: fix method add failure when signature string contains
"I" (for 64 bit integer). Always broken (64 bit integer type
was new in Xmlrpc-c 1.07 (October 2006)).
* libxml2: fix memory leaks. Always broken (ability to use libxml2
was added in Release 1.00 (October 2004)).
* Abyss: Fix memory read through wild pointer upon interruption
of server. Probably harmless.
* Windows build: rename DLL configurations to avoid ambiguity
between DLL and static library builds.
Release 1.32
============
Released 12.09.28.
Subversion directory release_number/01.32.00.
* Abyss server: terminate sooner when the HTTP request handler
requests shutdown. Formerly, after e.g. a 'system.shutdown'
RPC, the server waited for the persistent TCP connections,
including the one in which the RPC transaction was transported,
to end (typically 15 seconds later). Now, it interrupts channel
reads and writes on all connections so they will notice they
are supposed to wind up and do so.
* Abyss server: add basic server operation tracing with
ABYSS_TRACE_SERVER environment variable.
* Abyss server, XML-RPC Abyss server: add control of number of
simultaneous connections and OS connection backlog.
* Use random salt in hash values in built-in XML parser. Without
this, a malicious user can create a putative XML-RPC call or
response that takes a long time to parse, thus using excessive
CPU resources. This code is adapted from true Expat's fix for
CVE-2012-0876 to XML-RPC's fork of Expat, by Tyler Hicks
<tyhicks@canonical.com>.
* Server: Fix crash when string value in parameter list contains
invalid UTF-8. Broken in 1.18 (March 2006). Diagnosed by Stephen
Hansen, Programmer <stephen@tlo.com>.
* Fix crash in built-in XML parser which causes a memory leak
when it can't get additional memory (re-allocation fails). This
code is adapted from true Expat's fix for CVE-2012-1148 to
XML-RPC's fork of Expat, by Tyler Hicks <tyhicks@canonical.com>.
* Build: fix build tree != source tree bug: no transport_config.mk.
Broken in 1.10 (March 2007).
* Windows build: properly export client class in xmlrpc-c_client++.dll.
By Maksym Veremeyenko <verem@m1stereo.tv>
* Build: don't build tools by default. Broken in 1.30 (March 2012).
* Build: fix up how LDFLAGS, CFLAGS, and CXXFLAGS (make variables)
are used. Deprecate LADD and CADD, which were meant for the
same thing.
* Build: fix make clean so it cleans src/cpp.
* Build: fix so build of test programs does not fail if you didn't
build client facilities.
* Build: fix 'check'. By Tyler Hicks <tyhicks@canonical.com>.
Release 1.31
============
Released 12.06.30.
Subversion directory release_number/01.31.00.
* Abyss XML-RPC server: make xmlrpc_server_abyss() fail instead
of exiting program when it can't bind and listen.
* Abyss server: Add ServerInit2() - fails instead of exiting
program if it can't bind and listen.
* Curl client XML transport: when server sends garbage instead
of valid HTTP response, put the garbage (which is often an
error message) in the error message.
* Add xmlrpc_read_datetime_8601(),
xmlrpc_c::value_datetime::iso8601Value().
* xmlrpc_c::value_datetime: add ability to construct from and
cast to xmlrpc_datetime.
* Fix crash due to bogus memory free when xmlrpc_parse_value()
fails. Broken in 1.07 (October 2006).
* Abyss server: Fix bug: rejects request with colons in the host
name (e.g. IPv6 address form "[::1]") as invalid.
* Curl client XML transport: Fix error message when servers
responds with non-HTTP garbage. Used to say HTTP response code
is zero.
* Curl client XML transport: fix occasional crash with modern
Curl introduced in 1.28.
* Abyss server: Fix crash when client doesn't specify access
control. Broken in 1.25 (December 2011).
* Abyss server: Improved formatting of IPv6 addresses for Abyss
"channel info.". Also no more build-time dependency on nonstandard
s6_addr16, introduced in 1.29.
* Windows: Remove #include <windows.h> from public header file
to avoid conflicts with other inclusions in user's program that
include other variations of <windows.h>. By Maksym Veremeyenko
<verem@m1stereo.tv>
* Install: fix install of man pages to wrong directory. Broken
in 1.18 (March 2009).
* Windows build: Fix winsock2 conflict.
Release 1.30
============
Released 12.03.31.
Subversion directory release_number/01.30.00.
* Add ability for Abyss and XML-RPC Abyss server to listen on a
particular interface (IP address).
* Abyss XML-RPC server: Fix bug in access control expiration.
* xmlrpc, xmlrpc_pstream client programs: fix bug in display of
unprintable ASCII as \xHH: shows \xff where it should be
something else.
* Windows Abyss: fix 16 byte per thread memory leak. Thanks Angelo Masci.
* Build: add missing include of <ostream> to base.hpp. Broken in 1.26.
* Build: remove --enable-tools option added in 1.18. User can
just do 'make -C tools ' or 'make all' to get that.
Release 1.29
============
Released 11.12.31.
Subversion directory release_number/01.29.00.
* Abyss: Add ChanSwitchUnixCreateIpV6Port: ability to listen for
client connections on an IP Version 6 TCP port.
* Curl client XML transport: Add 'referer' option.
* Improved invalid UTF-8 error message.
* xmlrpc client program: fix bug: doesn't accept b/f to mean
boolean false. Broken since 1.07.
* Fix crash when sending structure with a member value too large.
Introduced in 1.21.
* Fix Windows build, undefined macro XMLRPC_S_IWUSR introduced in 1.28.
Release 1.28
============
Released 11.09.27.
Subversion directory release_number/1.28.00.
* Curl client: add "gssapi_delegation" option. Needed in some
cases with newer Curl libraries to get back old function.
* Fix bug: infinite loop parsing XML when a string or character
data is longer than 1K in UTF-8. Introduced in 1.12.
* Curl client: fix libcurl version in user-agent header. Always
broken (user-agent function added in Release 1.03).
* Client curl transport: fix bug: multiple authentication methods
doesn't work; only one of them takes effect. Always broken.
* C++ Curl client: fix bug: ignores proxy Curl transport options.
Always broken.
* Windows: Add VS2008 64 bit static library building. Remove MSVC
6 project files. From now on, VS2008 will be the standard. The
single set of project files build static and DLL, 32 bit and
64.
* Accomodate newer libcurl, which does not have <curl/types.h>.
* Fix per-connection memory leak in libwww client XML transport.
Present since the beginning.
* Build: fix some parallel make forced ordering.
* Build with --disable-abyss-threads: include <sys/wait.h> instead
of <wait.h> in Abyss thread_fork.c.
* Build of test programs: Fix "struct sockaddr_in" not defined
in server_pstream.cpp.
* Build: fix undeclared struct timespec.
* Build: Work with systems that don't define S_IREAD in <sys/stat.h>.
* C++: Reorder arrayValueSlice() and arrayValueAvrray() definitions
in <xmlrpc-c/base.hpp> to please Clang.
Release 1.27
============
Released 11.06.27.
Subversion directory release_number/1.27.00.
* Many changes to accomodate Mingw. May not work completely yet.
By Maksym Veremeyenko <verem@m1stereo.tv>.
* Windows build: update non-DLL project files to accomodate recent
changes to tree. By Maksym Veremeyenko <verem@m1stereo.tv>.
* Windows build: add missing DLLEXPORT to some class declarations
so user programs build. By Maksym Veremeyenko <verem@m1stereo.tv>.
* Build: Fix detection of libwww, broken in 1.24.
* Build: Don't use trailing comma in enum; not accepted by some
C++ compilers.
* Build: Add a user-defined default constructor for class callInfo
to avoid compilation failure with recent GNU compilers.
* Mac OS X build: include -install_name on library link so
dependents can find it automatically. Thanks Joshua Root
(jmr@macports.org).
Release 1.26
============
Released 11.03.26.
Subversion directory release_number/1.26.00.
* Add output operator (operator<<) for xmlrpc-c::value::type_t.
* JSON serializer: eliminate trailing commas that Internet Explorer
doesn't like. Thanks Bo Lorentzen <bl@lue.dk>.
* JSON serializer: improve human readability of JSON. Thanks Bo
Lorentzen <bl@lue.dk>.
* Fix JSON integer parsing and formatting broken in 1.25.
* Build: Fix prototype/definition mismatch in libwww.cpp with
some compilers (e.g. Solaris).
* Build: Fix linking of xml-rpc-api2cpp with some linkers (e.g. Solaris).
* Don't assume that "char" is signed (array init'ed with -1 cells),
so use "int" instead.
* Add dependency on libidn2, since I otherwise got a link error.
Bump PKGREVISION.
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.
There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
Problems found locating distfiles:
Package cabocha: missing distfile cabocha-0.68.tar.bz2
Package convertlit: missing distfile clit18src.zip
Package php-enchant: missing distfile php-enchant/enchant-1.1.0.tgz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Remove all "#define _XOPEN_SOURCE" lines, as they break things horribly on
MirBSD for some reason. Sprinkle a few <sys/types.h> includes. Add support for
generating shared libraries on MirBSD.
Fix interpretation of dateTime.iso8601 variant with timezone information. As broken, it would add up to a second to the correct datetime or reject the message claiming that it has invalid syntax. Always broken (recognition of the timezone variant was introduced in Xmlrpc-c 1.20).
* base.hpp: Fix declarations out of order causing compile failure. Broken since Xmlrpc-c 1.19 (June 2009).
* Make distclean cleans up src/test/blddir and src/test/srcdir.
* Fix compile bug with some compilers on 64 bit.
Changes 1.16.33:
* Build: Fix prototype/definition mismatch in libwww.cpp with some compilers
(e.g. Solaris).
* Build: Fix linking of xml-rpc-api2cpp with some linkers (e.g. Solaris).
Changes 1.16.32:
* Windows Abyss server: properly handle wait for connection.
Changes 1.16.31:
* CGI XML-RPC server accepts (ignores) parameters after "text/xml" in
Content-type header from client.
* CGI XML-RPC server accepts (ignores) parameters after "text/xml" in
Content-type header from client.
* Build: replace <sys/signal.h> with <signal.h>.