forked from jsonn/pkgsrc
-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow Tomcat to bind 80 and 443 #157
Closed
AlainODea
wants to merge
1
commit into
TritonDataCenter:joyent/release/2013Q3
from
AlainODea:joyent/release/2013Q3
Closed
Allow Tomcat to bind 80 and 443 #157
AlainODea
wants to merge
1
commit into
TritonDataCenter:joyent/release/2013Q3
from
AlainODea:joyent/release/2013Q3
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jperkin
referenced
this pull request
Dec 11, 2013
jperkin
referenced
this pull request
Dec 12, 2013
jperkin
pushed a commit
that referenced
this pull request
Jan 21, 2014
Upstream changes since 1.0: log4cplus 1.1.1 - FileAppender - Accept also std::ios_base::ate as "append to a log file" specification. log4cplus 1.1.1-RC4 - Fixed bug #156 - Messages are truncated when produced using the LOG4CPLUS_*_FMT() macros. - Fixed bug #157 - Fedora package build failure. - Improved log4cplus initialization: - Use APC to initialize log4cplus outside loader lock. - Use Microsoft C runtime library TLS callbacks to initialize log4cplus as static library. - Warn during compilation that automatic initialization is not possible when log4cplus is being compiled with static Microsoft C runtime library. - Provide log4cplus::initialize() function to allow users to initialize log4cplus in situations where automatic initialization is not possible. - Several improvements to CMake build: - Fixed OpenBSD + CMake builds. - Fixed issues with Visual Studio 2005 CMake builds. - Added support for CMake builds on Android with NDK. (Sergey Nikulov) - The defines.hxx.cmake file is now generated out of defines.hxx.in. - Library version is parsed out of version.h. (Sergey Nikulov) - MDC formatter for PatternLayout ("%X") now expands into list of key value pairs if no specific key is given. (Yaqian Shen) - Avoid clock_nanosleep() on Android. - ServerSocket::accept() can now be interrupted from another thread using new function ServerSocket::interruptAccept(). log4cplus 1.1.1-RC3 - Fixed another MinGW related build failure. - Fixed mismatched #if/#endif in Windows builds. log4cplus 1.1.1-RC2 - Allow to disable TLS usage in macros through LOG4CPLUS_MACRO_DISABLE_TLS preprocessor symbol. - Fixed compilation with Clang on Cygwin. - Fixed SIGSEGV when built with some MinGW distributions. - Fixed build failure when using -march=i386. - Implemented thread callback to initialize log4cplus for Visual Studio builds of static library. - Fixed bug #154 - getHostname() failure because of uninitialized WinSock. - Fixed detection of C++11 thread_local keyword. - Fixed builds using DevKit-tdm-32-4.5.2-20111229-1559. log4cplus 1.1.1-RC1 - Improved documentation for various classes. - Cherry-picked various small improvements from trunk. - Fixed Unicode builds on *NIX. - Fixed static library builds from Visual Studio project. - Suppressed warning C4127 from MSVC. (Chris Steenwyk) - Improved MinGW32 and MinGW64 toolchains compatiblity. - Fixed encoding handling in Properties class. - Added include directive for properties files. (Jukka Lantto) - Added colored output for Win32ConsoleAppender. (Konstantin Baumann) - (Re)Introduced support for C++Builder (XE3) - Reimplemented acceptSocket() using select() on Windows to allow interrupting the accept() call from different thread. log4cplus 1.1.0 - Fixed MacOS X support - Reimplemented semaphores using named ones for Apple builds. - Fixed resource leak on failure in openSocket(). - Improved configuration file modification check to include file size, in addition to file modification time. log4cplus 1.1.0-RC10 - Fixed non-STLPort4 builds with Solaris Studio. Switch '-library=stlport4' is only added if CXXFLAGS does not already contain a switch matching -library=(stlport4|stdcxx4|Cstd). - Fixed --disable-shared MinGW builds. - Fixed non-working MinGW DLL binaries. DllMain() was not being called because of missing extern "C" in its definition. - CMake build configuration checks have been improved. (Chernyshev Vyacheslav) - GCC switch -O2 is only added if CXXFLAGS does not already contain any other -O. - Improved logging speed using SysLogAppender and Log4jUdpAppender by optimizations in both the loggers and in common sockets code. - FileAppender locale can now be specified in properties files using Locale property. See FileAppender Doxygen documentation for more details. log4cplus 1.1.0-RC9 - Improved Log4jUdpAppender compatibility with Chainsaw. - Fixed crash, bugs #3467112 and #3563699, related to thread-local storage destruction. - Fixed build with Visual Studio 2005, bug #3565529. (xg00) - Created Cygwin port's .cygport definition for log4cplus. - Improved hiding of private symbols using GCC's __attribute__((visibility("hidden"))) and Solaris Studio's __hidden. - Fixed build in environments where DEBUG (and other log level names) are macros. (Chernyshev Vyacheslav) - Improved configuration of threads support. (Jens Rehsack) log4cplus 1.1.0-RC8 - Turned on __thread (TLS) detection on NetBSD 5.1.0 and later that has been previously disabled. - Improved compatibility with log4cplus 1.0.x: allow using log4cplus 1.0.x log level to string callbacks in 1.1.x. - Improved various M4 macros. - Added detection and use C++11 thread_local. - Fixed XML entities escaping in Log4jUdpAppender. - Re-added synchronization between ConsoleAppender and LogLog. - Changed C logger API to return int instead of bool. - Added C logger API to Visual Studio 2010 projects. - Implemented remote syslog logging using UDP in SysLogAppender. - Enabled SysLogAppender on Windows with only remote syslog logging enabled. log4cplus 1.1.0-RC7 IMPORTANT: Builds with --with-iconv configure switch now assume UTF-8 for plain char strings. - Bumped up SO version for UDP sockets support related changes. - Removed Windows CE support. - Regenerated with Automake 1.12.2. - Fixed Fedora RPM builds spec file. - Implemented log4cplus.disableOverride similar to log4j's log4j.disableOverride. - Improved support of profiling and debugging builds with Sun CC. - Added documentation for configure script options. - Added detection and use of clock_nanosleep(). - Disabled __thread (TLS) detection for NetBSD. It is broken there. - New appender: Log4jUdpAppender. It allows logging using UDP with log4j XML payload to Chainsaw or Log2Console. (Siva Chandran P) - Added support for __func__ as function name source for logging events. log4cplus 1.1.0-RC6 - Fixed compilation for build with wchar_t being alias to unsigned short (/Zc:wchar_t-) (Windows). - Added new appender CLFSAppender (experimental), based on Microsoft Common Log File System API. - Added new appender Qt4DebugAppender (experimenta), based on Qt4's qDebug(), qWarning() and qCritical() functions. - Fixed bug #3530769 - compilation issues with Visual Studio 2011. - Added log4cplus.quietMode property handling to PropertyConfigurator. - Added #pragma once to all headers. - Implemented Time::gettimeofday() using Win32 API's GetSystemTimeAsFileTime(). - Moved file based locking from FileAppender to Appender to make it available for all appenders. - Changed Windows configuration to use __declspec(thread) when compiling for Windows Vista or later and TlsAlloc() otherwise. - Implemented %r PatternLayout format specifier - miliseconds since process start. - Fixed bug #3101459 - TTCCLayout time is not in milliseconds since process start by default. log4cplus 1.1.0-RC5 - Fixed single threaded log4cplus build issues. - Added ability to log to std::cerr (Andreas Bießmann). - Fixed disabling of LOG4CPLUS_*_FMT() macros. log4cplus 1.1.0-RC4 IMPORTANT: Compilation with Solaris Studio now depends on STLPort (-library=stlport4 switch). The default Cstd library is not conforming enough for use in log4cplus. - Improved behaviour of log4cplus as a component of larger CMake based project (Andreas Bießmann). - Updated various Autoconf detection scripts in m4/ directory to newer versions. - Fixed some signedness and overflow warnings. - Improved Autotools build system's behaviour for cross compilation. - Added detection of C++11 <atomic> header and related functions. Implemented SharedObject reference counting using C++11 atomics where possible. - Fixed compilation with GCC 4.6 in C++11 mode. - Fixed some single-threaded compilation and run time issues. - Fixed bug #3520891 - FileAppender buffering issue. - Updated to Autoconf 2.69, Automake 1.12 and Libtool 2.4.2. - Documented build procedure for Solaris Studio. - Improved support for Solaris Studio in configure.in. log4cplus 1.1.0-RC3 - Fixed log4cplusS.vcxproj - Added missing source files to the project. log4cplus 1.1.0-RC2 - CMake build system fixes. - Fixed TTCCLayout double time stamp issue. log4cplus 1.1.0-RC1 Important changes relative to PRODUCTION_1_0_x branch: - Added AsyncAppender. - Added simple C interface for interoperability with C. - Added inter-process file locking to file appenders to allow logging into a single log file from multiple processes. - Added Mapped Diagnostic Context (MDC) and associated converter (%X). - Added alternative thread identification (%T) converter to pattern layout. - Added function name converter (%M). - Added wchar_t <-> char conversion implementations based on standard C locale functions and based on iconv(). - Added DeviceAppender to allow use of Boost.IOStream's Sink as appender. - Added LOG4CPLUS_*_FMT() macros to allow printf-like formatted output where it is possible. - Logging macros now accept both logger name as string and Logger instance as their first parameter.
jperkin
pushed a commit
that referenced
this pull request
Jan 21, 2014
FITS (Flexible Image Transport System) is a data format most used in astronomy. PyFITS is a Python module for reading, writing, and manipulating FITS files. The module uses Python's object-oriented features to provide quick, easy, and efficient access to FITS files. The use of Python's array syntax enables immediate access to any FITS extension, header cards, or data items. Changes to 2.4.0 (in py-pyfits): Changelog =========== 3.2 (2013-11-26) ---------------- Highlights ^^^^^^^^^^ - Rewrote CFITSIO-based backend for handling tile compression of FITS files. It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO as before. PyFITS ships with its own copy of CFITSIO v3.35 which supports the latest version of the Tiled Image Convention (v2.3), but system packagers may choose instead to strip this out in favor of a system-installed version of CFITSIO. Earlier versions may work, but nothing earlier than 3.28 has been tested yet. (#169) - Added support for reading and writing tables using the Q format for columns. The Q format is identical to the P format (variable-length arrays) except that it uses 64-bit integers for the data descriptors, allowing more than 4 GB of variable-length array data in a single table. (#160) - Added initial support for table columns containing pseudo-unsigned integers. This is currently enabled by using the ``uint=True`` option when opening files; any table columns with the correct BZERO value will be interpreted and returned as arrays of unsigned integers. - Some refactoring of the table and ``FITS_rec`` modules in order to better separate the details of the FITS binary and ASCII table data structures from the HDU data structures that encapsulate them. Most of these changes should not be apparent to users (but see API Changes below). API Changes ^^^^^^^^^^^ - Assigning to values in ``ColDefs.names``, ``ColDefs.formats``, ``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return lists of column properties is no longer supported. Assigning to those lists will no longer update the corresponding columns. Instead, please just modify the ``Column`` instances directly (``Column.name``, ``Column.null``, etc.) - The ``pyfits.new_table`` function is marked "pending deprecation". This does not mean it will be removed outright or that its functionality has changed. It will likely be replaced in the future for a function with similar, if not subtly different functionality. A better, if not slightly more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create a new ``FITS_rec`` table--this has the same interface as ``pyfits.new_table``. The difference is that it returns a plan ``FITS_rec`` array, and not an HDU instance. This ``FITS_rec`` object can then be used as the data argument in the constructors for ``BinTableHDU`` (for binary tables) or ``TableHDU`` (for ASCII tables). This is analogous to creating an ``ImageHDU`` by passing in an image array. ``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a FITS-compatible recarray from a FITS column specification. - The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData`` methods of the ``CompDataHDU`` class are pending deprecation and moved to internal methods. The operation of these methods depended too much on internal state to be used safely by users; instead they are invoked automatically in the appropriate places when reading/writing compressed image HDUs. - The ``CompDataHDU.compData`` attribute is pending deprecation in favor of the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``. - The constructor for ``CompDataHDU`` has been changed to accept new keyword arguments. The new keyword arguments are essentially the same, but are in underscore_separated format rather than camelCase format. The old arguments are still pending deprecation. - The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and ``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``, and ``_data_size`` respectively. The old attribute names are still pending deprecation. This should only be of interest to advanced users who have created their own HDU subclasses. - The following previously deprecated functions and methods have been removed entirely: ``createCard``, ``createCardFromString``, ``upperKey``, ``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``, ``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``. If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with the ``python -Wd`` argument, warnings for all deprecated interfaces still in use will be displayed. - Interfaces that were pending deprecation are now fully deprecated. These include: ``create_card``, ``create_card_from_string``, ``upper_key``, ``Header.get_history``, and ``Header.get_comment``. - The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa. - The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to ``pyfits.file.PYFITS_MODES`` which better reflects its purpose. This is rarely used by client code, however. Support for the old name will be removed by PyFITS 3.4. Other Changes and Additions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - The new compression code also adds support for the ZQUANTIZ and ZDITHER0 keywords added in more recent versions of this FITS Tile Compression spec. This includes support for lossless compression with GZIP. (#198) By default no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and ``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct constants to the ``quantize_method`` argument to the ``CompImageHDU`` constuctor. A seed can be manually specified, or automatically generated using either the system clock or checksum-based methods via the ``dither_seed`` argument. See the documentation for ``CompImageHDU`` for more details. (#198) (spacetelescope/PYFITS#32) - Images compressed with the Tile Compression standard can now be larger than 4 GB through support of the Q format. (#159) - All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist. This was added for consistency with the ``.name`` attribute which returns the EXTNAME value from the header. - Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes which give the Numpy dtype for the column data in the first case, and the full Numpy compound dtype for each table row in the latter case. - There was an issue where new tables created defaulted the values in all string columns to '0.0'. Now string columns are filled with empty strings by default--this seems a less surprising default, but it may cause differences with tables created with older versions of PyFITS. - Improved round-tripping and preservation of manually assigned column attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers. (astropy/astropy#996) Bug Fixes ^^^^^^^^^ - Binary tables containing compressed images may, optionally, contain other columns unrelated to the tile compression convention. Although this is an uncommon use case, it is permitted by the standard. (#159) - Reworked some of the file I/O routines to allow simpler, more consistent mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more "PyFITS-specific" modes used by PyFITS like "readonly" and "update". That is, if reading a FITS file from an open file object, it doesn't matter as much what "mode" it was opened in so long as it has the right capabilities (read/write/etc.) Also works around bugs in the Python io module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33) - Fixed an obscure issue that can occur on systems that don't have flush to memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968) 3.1.3 (2013-11-26) ------------------ - Disallowed assigning NaN and Inf floating point values as header values, since the FITS standard does not define a way to represent them in. Because this is undefined, the previous behavior did not make sense and produced invalid FITS files. (spacetelescope/PyFITS#11) - Added a workaround for a bug in 64-bit OSX that could cause truncation when writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28) - Fixed a long-standing issue where writing binary tables did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). This was thought fixed in v3.1.2, but it was only fixed there for compressed image HDUs and not for binary tables in general. - Fixed an obscure issue that can occur on systems that don't have flush to memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2) 3.0.12 (2013-11-26) ------------------- - Disallowed assigning NaN and Inf floating point values as header values, since the FITS standard does not define a way to represent them in. Because this is undefined, the previous behavior did not make sense and produced invalid FITS files. (Backported from 3.1.3) - Added a workaround for a bug in 64-bit OSX that could cause truncation when writing files greater than 2^32 bytes in size. (Backported from 3.1.3) - Fixed a long-standing issue where writing binary tables did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). This was thought fixed in v3.1.2, but it was only fixed there for compressed image HDUs and not for binary tables in general. (Backported from 3.1.3) - Fixed an obscure issue that can occur on systems that don't have flush to memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2) 3.1.2 (2013-04-22) ------------------ - When an error occurs opening a file in fitsdiff the exception message will now at least mention which file had the error. (#168) - Fixed support for opening gzipped FITS files by filename in a writeable mode (PyFITS has supported writing to gzip files for some time now, but only enabled it when GzipFile objects were passed to ``pyfits.open()`` due to some legacy code preventing full gzip support. (#195) - Added a more helpful error message in the case of malformatted FITS files that contain non-float NULL values in an ASCII table but are missing the required TNULLn keywords in the header. (#197) - Fixed an (apparently long-standing) issue where writing compressed images did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). (#199) - Slightly refactored how tables containing variable-length array columns are handled to add two improvements: Fixes an issue where accessing the data after a call to the `pyfits.getdata` convenience function caused an exception, and allows the VLA data to be read from an existing mmap of the FITS file. (#200) - Fixed a bug that could occur when opening a table containing multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it out to a new file. (#201) - Added use of the console_scripts entry point to install the fitsdiff and fitscheck scripts, which if nothing else provides better Windows support. The generated scripts now override the ones explicitly defined in the scripts/ directory (which were just trivial stubs to begin with). (#202) - Fixed a bug on Python 3 where attempting to open a non-existent file on Python 3 caused a seemingly unrelated traceback. (#203) - Fixed a bug in fitsdiff that reported two header keywords containing NaN as value as different. (#204) - Fixed an issue in the tests that caused some tests to fail if pyfits is installed with read-only permissions. (#208) - Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array containing boolean fields converted all the values to ``False``. (#215) - Fixed an issue where passing an array of integers into the constructor of ``Column()`` when the column type is floats of the same byte width caused the column array to become garbled. (#218) - Fixed inconsistent behavior in creating CONTINUE cards from byte strings versus unicode strings in Python 2--CONTINUE cards can now be created properly from unicode strings (so long as they are convertable to ASCII). (spacetelescope/PyFITS#1) - Fixed a couple cases where creating a new table using TDIMn in some of the columns could caused a crash. (spacetelescope/PyFITS#3) - Fixed a bug in parsing HIERARCH keywords that do not have a space after the first equals sign (before the value). (spacetelescope/PyFITS#5) - Prevented extra leading whitespace on HIERARCH keywords from being treated as part of the keyword. (spacetelescope/PyFITS#6) - Fixed a bug where HIERARCH keywords containing lower-case letters was mistakenly marked as invalid during header validation. (spacetelescope/PyFITS#7) - Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the ``Header.index()`` method did not work correctly with HIERARCH keywords containing lower-case letters. 3.0.11 (2013-04-17) ------------------- - Fixed support for opening gzipped FITS files by filename in a writeable mode (PyFITS has supported writing to gzip files for some time now, but only enabled it when GzipFile objects were passed to ``pyfits.open()`` due to some legacy code preventing full gzip support. Backported from 3.1.2. (#195) - Added a more helpful error message in the case of malformatted FITS files that contain non-float NULL values in an ASCII table but are missing the required TNULLn keywords in the header. Backported from 3.1.2. (#197) - Fixed an (apparently long-standing) issue where writing compressed images did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). Backported from 3.1.2. (#199) - Slightly refactored how tables containing variable-length array columns are handled to add two improvements: Fixes an issue where accessing the data after a call to the `pyfits.getdata` convenience function caused an exception, and allows the VLA data to be read from an existing mmap of the FITS file. Backported from 3.1.2. (#200) - Fixed a bug that could occur when opening a table containing multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it out to a new file. Backported from 3.1.2. (#201) - Fixed a bug on Python 3 where attempting to open a non-existent file on Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2. (#203) - Fixed a bug in fitsdiff that reported two header keywords containing NaN as value as different. Backported from 3.1.2. (#204) - Fixed an issue in the tests that caused some tests to fail if pyfits is installed with read-only permissions. Backported from 3.1.2. (#208) - Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array containing boolean fields converted all the values to ``False``. Backported from 3.1.2. (#215) - Fixed an issue where passing an array of integers into the constructor of ``Column()`` when the column type is floats of the same byte width caused the column array to become garbled. Backported from 3.1.2. (#218) - Fixed a couple cases where creating a new table using TDIMn in some of the columns could caused a crash. Backported from 3.1.2. (spacetelescope/PyFITS#3) 3.1.1 (2013-01-02) ------------------ This is a bug fix release for the 3.1.x series. Bug Fixes ^^^^^^^^^ - Improved handling of scaled images and pseudo-unsigned integer images in compressed image HDUs. They now work more transparently like normal image HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options, as well as ``scale_back`` and ``save_backup``. The ``.scale()`` method works better too. (#88) - Permits non-string values for the EXTNAME keyword when reading in a file, rather than throwing an exception due to the malformatting. Added verification for the format of the EXTNAME keyword when writing. (#96) - Added support for EXTNAME and EXTVER in PRIMARY HDUs. That is, if EXTNAME is specified in the header, it will also be reflected in the ``.name`` attribute and in ``pyfits.info()``. These keywords used to be verboten in PRIMARY HDUs, but the latest version of the FITS standard allows them. (#151) - HCOMPRESS can again be used to compress data cubes (and higher-dimensional arrays) so long as the tile size is effectively 2-dimensional. In fact, PyFITS will automatically use compatible tile sizes even if they're not explicitly specified. (#171) - Added support for the optional ``endcard`` parameter in the ``Header.fromtextfile()`` and ``Header.totextfile()`` methods. Although ``endcard=False`` was a reasonable default assumption, there are still text dumps of FITS headers that include the END card, so this should have been more flexible. (#176) - Fixed a crash when running fitsdiff on two empty (that is, zero row) tables. (#178) - Fixed an issue where opening files containing random groups HDUs in update mode could cause an unnecessary rewrite of the file even if none of the data is modified. (#179) - Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS is used with Numpy 1.7 in some cases. (#180) - Fixed a crash when generating diff reports from diffs using the ``ignore_comments`` options. (#181) - Fixed some bugs with WCS Paper IV record-valued keyword cards: - Cards that looked kind of like RVKCs but were not intended to be were over-permissively treated as such--commentary keywords like COMMENT and HISTORY were particularly affected. (#183) - Looking up a card in a header by its standard FITS keyword only should always return the raw value of that card. That way cards containing values that happen to valid RVKCs but were not intended to be will still be treated like normal cards. (#184) - Looking up a RVKC in a header with only part of the field-specifier (for example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a wildcard lookup. (#184) - Fixed a crash when diffing two FITS files where at least one contains a compressed image HDU which was not recognized as an image instead of a table. (#187) - Fixed bugs in the backwards compatibility layer for the ``CardList.index`` and ``CardList.count`` methods. (#190) - Improved ``__repr__`` and text file representation of cards with long values that are split into CONTINUE cards. (#193) - Fixed a crash when trying to assign a long (> 72 character) value to blank ('') keywords. This also changed how blank keywords are represented--there are still exactly 8 spaces before any commentary content can begin; this *may* affect the exact display of header cards that assumed there could be fewer spaces in a blank keyword card before the content begins. However, the current approach is more in line with the requirements of the FITS standard. (#194) 3.0.10 (2013-01-02) ------------------- - Improved handling of scaled images and pseudo-unsigned integer images in compressed image HDUs. They now work more transparently like normal image HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options, as well as ``scale_back`` and ``save_backup``. The ``.scale()`` method works better too. Backported from 3.1.1. (#88) - Permits non-string values for the EXTNAME keyword when reading in a file, rather than throwing an exception due to the malformatting. Added verification for the format of the EXTNAME keyword when writing. Backported from 3.1.1. (#96) - Added support for EXTNAME and EXTVER in PRIMARY HDUs. That is, if EXTNAME is specified in the header, it will also be reflected in the ``.name`` attribute and in ``pyfits.info()``. These keywords used to be verbotten in PRIMARY HDUs, but the latest version of the FITS standard allows them. Backported from 3.1.1. (#151) - HCOMPRESS can again be used to compress data cubes (and higher-dimensional arrays) so long as the tile size is effectively 2-dimensional. In fact, PyFITS will not automatically use compatible tile sizes even if they're not explicitly specified. Backported from 3.1.1. (#171) - Fixed a bug when writing out files containing zero-width table columns, where the TFIELDS keyword would be updated incorrectly, leaving the table largely unreadable. Backported from 3.1.0. (#174) - Fixed an issue where opening files containing random groups HDUs in update mode could cause an unnecessary rewrite of the file even if none of the data is modified. Backported from 3.1.1. (#179) - Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180) 3.1 (2012-08-08) ---------------- Highlights ^^^^^^^^^^ - The ``Header`` object has been significantly reworked, and ``CardList`` objects are now deprecated (their functionality folded into the ``Header`` class). See API Changes below for more details. - Memory maps are now used by default to access HDU data. See API Changes below for more details. - Now includes a new version of the ``fitsdiff`` program for comparing two FITS files, and a new FITS comparison API used by ``fitsdiff``. See New Features below. API Changes ^^^^^^^^^^^ - The ``Header`` class has been rewritten, and the ``CardList`` class is deprecated. Most of the basic details of working with FITS headers are unchanged, and will not be noticed by most users. But there are differences in some areas that will be of interest to advanced users, and to application developers. For full details of the changes, see the "Header Interface Transition Guide" section in the PyFITS documentation. See ticket #64 on the PyFITS Trac for futher details and background. Some highlights are listed below: * The Header class now fully implements the Python dict interface, and can be used interchangably with a dict, where the keys are header keywords. * New keywords can be added to the header using normal keyword assignment (previously it was necessary to use ``Header.update`` to add new keywords). For example:: >>> header['NAXIS'] = 2 will update the existing 'FOO' keyword if it already exists, or add a new one if it doesn't exist, just like a dict. * It is possible to assign both a value and a comment at the same time using a tuple:: >>> header['NAXIS'] = (2, 'Number of axes') * To add/update a new card and ensure it's added in a specific location, use ``Header.set()``:: >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX') This works the same as the old ``Header.update()``. ``Header.update()`` still works in the old way too, but is deprecated. * Although ``Card`` objects still exist, it generally is not necessary to work with them directly. ``Header.ascardlist()``/``Header.ascard`` are deprecated and should not be used. To directly access the ``Card`` objects in a header, use ``Header.cards``. * To access card comments, it is still possible to either go through the card itself, or through ``Header.comments``. For example:: >>> header.cards['NAXIS'].comment Number of axes >>> header.comments['NAXIS'] Number of axes * ``Card`` objects can now be used interchangeably with ``(keyword, value, comment)`` 3-tuples. They still have ``.value`` and ``.comment`` attributes as well. The ``.key`` attribute has been renamed to ``.keyword`` for consistency, though ``.key`` is still supported (but deprecated). - Memory mapping is now used by default to access HDU data. That is, ``pyfits.open()`` uses ``memmap=True`` as the default. This provides better performance in the majority of use cases--there are only some I/O intensive applications where it might not be desirable. Enabling mmap by default also enabled finding and fixing a large number of bugs in PyFITS' handling of memory-mapped data (most of these bug fixes were backported to PyFITS 3.0.5). (#85) * A new ``pyfits.USE_MEMMAP`` global variable was added. Set ``pyfits.USE_MEMMAP = False`` to change the default memmap setting for opening files. This is especially useful for controlling the behavior in applications where pyfits is deeply embedded. * Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported. Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default behavior. - The ``size()`` method on HDU objects is now a ``.size`` property--this returns the size in bytes of the data portion of the HDU, and in most cases is equivalent to ``hdu.data.nbytes`` (#83) - ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use ``BinTableHDU.dump`` and ``BinTableHDU.load`` instead. The new methods output the table data in a slightly different format from previous versions, which places quotes around each value. This format is compatible with data dumps from previous versions of PyFITS, but not vice-versa due to a parsing bug in older versions. - Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function versions of these methods have been renamed ``pyfits.tabledump`` and ``pyfits.tableload``. The old deprecated, but currently retained for backwards compatibility. (r1125) - A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added. This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive`` which is not deprecated and may be removed in a future version. To enable case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI') set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``. The default is ``False``. (r1139) - A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was added. By default, if a string value in a header contains trailing whitespace, that whitespace is automatically removed when the value is read. Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is preserved. (#146) - The old ``classExtensions`` extension mechanism (which was deprecated in PyFITS 3.0) is removed outright. To our knowledge it was no longer used anywhere. (r1309) - Warning messages from PyFITS issued through the Python warnings API are now output to stderr instead of stdout, as is the default. PyFITS no longer modifies the default behavior of the warnings module with respect to which stream it outputs to. (r1319) - The ``checksum`` argument to ``pyfits.open()`` now accepts a value of 'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored, and removed when the file is saved. New Features ^^^^^^^^^^^^ - Added support for the proposed "FITS" extension HDU type. See http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html. FITS HDUs contain an entire FITS file embedded in their data section. `FitsHDU` objects work like other HDU types in PyFITS. Their ``.data`` attribute returns the raw data array. However, they have a special ``.hdulist`` attribute which processes the data as a FITS file and returns it as an in-memory HDUList object. FitsHDU objects also support a ``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object that embeds the supplied HDUList. (#80) - Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU data is an 'image' as opposed to a table or something else. Here the meaning of 'image' is fairly loose, and mostly just means a Primary or Image extension HDU, or possibly a compressed image HDU (#71) - Added an ``HDUList.fromstring`` classmethod which can parse a FITS file already in memory and instantiate and ``HDUList`` object from it. This could be useful for integrating PyFITS with other libraries that work on FITS file, such as CFITSIO. It may also be useful in streaming applications. The name is a slight misnomer, in that it actually accepts any Python object that implements the buffer interface, which includes ``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90) - Added a new ``pyfits.diff`` module which contains facilities for comparing FITS files. One can use the ``pyfits.diff.FITSDiff`` class to compare two FITS files in their entirety. There is also a ``pyfits.diff.HeaderDiff`` class for just comparing two FITS headers, and other similar interfaces. See the PyFITS Documentation for more details on this interface. The ``pyfits.diff`` module powers the new ``fitsdiff`` program installed with PyFITS. After installing PyFITS, run ``fitsdiff --help`` for usage details. - ``pyfits.open()`` now accepts a ``scale_back`` argument. If set to ``True``, this automatically scales the data using the original BZERO and BSCALE parameters the file had when it was first opened, if any, as well as the original BITPIX. For example, if the original BITPIX were 16, this would be equivalent to calling ``hdu.scale('int16', 'old')`` just before calling ``flush()`` or ``close()`` on the file. This option applies to all HDUs in the file. (#120) - ``pyfits.open()`` now accepts a ``save_backup`` argument. If set to ``True``, this automatically saves a backup of the original file before flushing any changes to it (this of course only applies to update and append mode). This may be especially useful when working with scaled image data. (#121) Changes in Behavior ^^^^^^^^^^^^^^^^^^^ - Warnings from PyFITS are not output to stderr by default, instead of stdout as it has been for some time. This is contrary to most users' expectations and makes it more difficult for them to separate output from PyFITS from the desired output for their scripts. (r1319) Bug Fixes ^^^^^^^^^ - Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust when encountering blank lines in a column definition file (#14) - Fixed a fairly rare crash that could occur in the handling of CONTINUE cards when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by PyFITS). (r1330) - Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU object from a string/buffer containing the header and data of that HDU. This allowed for the implementation of ``HDUList.fromstring`` described above. (#90) - Fixed a rare corner case where, in some use cases, (mildly, recoverably) malformatted float values in headers were not properly returned as floats. (#137) - Fixed a corollary to the previous bug where float values with a leading zero before the decimal point had the leading zero unnecessarily removed when saving changes to the file (eg. "0.001" would be written back as ".001" even if no changes were otherwise made to the file). (#137) - When opening a file containing CHECKSUM and/or DATASUM keywords in update mode, the CHECKSUM/DATASUM are updated and preserved even if the file was opened with checksum=False. This change in behavior prevents checksums from being unintentionally removed. (#148) - Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it was not restoring the image to its original BSCALE and BZERO values. (#162) - Fixed a bug when writing out files containing zero-width table columns, where the TFIELDS keyword would be updated incorrectly, leaving the table largely unreadable. This fix will be backported to the 3.0.x series in version 3.0.10. (#174) 3.0.9 (2012-08-06) ------------------ This is a bug fix release for the 3.0.x series. Bug Fixes ^^^^^^^^^ - Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/ ``Header.iteritems()`` to correctly return the different values for duplicate keywords (particularly commentary keywords like HISTORY and COMMENT). This makes the old Header implementation slightly more compatible with the new implementation in PyFITS 3.1. (#127) .. note:: This fix did not change the existing behavior from earlier PyFITS versions where ``Header.keys()`` returns all keywords in the header with duplicates removed. PyFITS 3.1 changes that behavior, so that ``Header.keys()`` includes duplicates. - Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it was not restoring the image to its original BSCALE and BZERO values. (#162) - Fixed a bug where opening a file containing compressed image HDUs in 'update' mode and then immediately closing it without making any changes caused the file to be rewritten unncessarily. (#167) - Fixed two memory leaks that could occur when writing compressed image data, or in some cases when opening files containing compressed image HDUs in 'update' mode. (#168) 3.0.8 (2012-06-04) ------------------ Changes in Behavior ^^^^^^^^^^^^^^^^^^^ - Prior to this release, image data sections did not work with scaled data--that is, images with non-trivial BSCALE and/or BZERO values. Previously, in order to read such images in sections, it was necessary to manually apply the BSCALE+BZERO to each section. It's worth noting that sections *did* support pseudo-unsigned ints (flakily). This change just extends that support for general BSCALE+BZERO values. Bug Fixes ^^^^^^^^^ - Fixed a bug that prevented updates to values in boolean table columns from being saved. This turned out to be a symptom of a deeper problem that could prevent other table updates from being saved as well. (#139) - Fixed a corner case in which a keyword comment ending with the string "END" could, in some circumstances, cause headers (and the rest of the file after that point) to be misread. (#142) - Fixed support for scaled image data and psuedo-unsigned ints in image data sections (``hdu.section``). Previously this was not supported at all. At some point support was supposedly added, but it was buggy and incomplete. Now the feature seems to work much better. (#143) - Fixed the documentation to point out that image data sections *do* support non-contiguous slices (and have for a long time). The documentation was never updated to reflect this, and misinformed users that only contiguous slices were supported, leading to some confusion. (#144) - Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY HDUs caused an infinite recursion when validating the object prior to writing to a file. (#145) - Fixed a rare but serious case where saving an update to a file that previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum in saving, could cause the file to be slightly corrupted and unreadable. (#147) - Fixed problems with reading "non-standard" FITS files with primary headers containing SIMPLE = F. PyFITS has never made many guarantees as to how such files are handled. But it should at least be possible to read their headers, and the data if possible. Saving changes to such a file should not try to prepend an unwanted valid PRIMARY HDU. (#157) - Fixed a bug where opening an image with ``disable_image_compression = True`` caused compression to be disabled for all subsequent ``pyfits.open()`` calls. (r1651) 3.0.7 (2012-04-10) ------------------ Changes in Behavior ^^^^^^^^^^^^^^^^^^^ - Slices of GroupData objects now return new GroupData objects instead of extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed FITS_rec slicing, and should have been fixed for GroupData at the same time. The old behavior caused bugs where functions internal to Numpy expected that slicing an ndarray would return a new ndarray. As this is a rare usecase with a rare feature most users are unlikely to be affected by this change. - The previously internal _Group object for representing individual group records in a GroupData object are renamed Group and are now a public interface. However, there's almost no good reason to create Group objects directly, so it shouldn't be considered a "new feature". - An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND keyword was always being set to F if there are not actually any extension HDUs. It was unnecessary to modify this value. Bug Fixes ^^^^^^^^^ - Fixed GroupData objects to return new GroupData objects when sliced instead of _Group record objects. See "Changes in behavior" above for more details. - Fixed slicing of Group objects--previously it was not possible to slice slice them at all. - Made it possible to assign `np.bool_` objects as header values. (#123) - Fixed overly strict handling of the EXTEND keyword; see "Changes in behavior" above. (#124) - Fixed many cases where an HDU's header would be marked as "modified" by PyFITS and rewritten, even when no changes to the header are necessary. (#125) - Fixed a bug where the values of the PTYPEn keywords in a random groups HDU were forced to be all lower-case when saving the file. (#130) - Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was causing some slowdown when opening files containing a large number of extensions, plus a few other small (but not insignficant) performance improvements thanks to Julian Taylor. (#133) - Fixed a regression where header blocks containing invalid end-of-header padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS. Such headers can be parsed again, but a warning is raised, as such headers are not valid FITS. (#136) - Fixed a memory leak where table data in random groups HDUs weren't being garbage collected. (#138) 3.0.6 (2012-02-29) ------------------ Highlights ^^^^^^^^^^ The main reason for this release is to fix an issue that was introduced in PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data to be automatically rescaled--possibly converting the data from ints to floats--as soon as the file is closed, even if the application did not touch the data. Now PyFITS will only rescale the data in an extension when the data is actually accessed by the application. So opening a file in 'update' mode in order to modify the header or append new extensions will not cause any change to the data in existing extensions. This release also fixes a few Windows-specific bugs found through more extensive Windows testing, and other miscellaneous bugs. Bug Fixes ^^^^^^^^^ - More accurate error messages when opening files containing invalid header cards. (#109) - Fixed a possible reference cycle/memory leak that was caught through more extensive testing on Windows. (#112) - Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w' mode. (#112) - Fixed a Windows-only issue where trying to save updates to a resized FITS file could result in a crash due to there being open mmaps on that file. (#112) - Fixed a crash when trying to create a FITS table (i.e. with new_table()) from a Numpy array containing bool fields. (#113) - Fixed a bug where manually initializing an ``HDUList`` with a list of of HDUs wouldn't set the correct EXTEND keyword value on the primary HDU. (#114) - Fixed a crash that could occur when trying to deepcopy a Header in Python < 2.7. (#115) - Fixed an issue where merely opening a scaled image in 'update' mode would cause the data to be converted to floats when the file is closed. (#119) 3.0.5 (2012-01-30) ------------------ - Fixed a crash that could occur when accessing image sections of files opened with memmap=True. (r1211) - Fixed the inconsistency in the behavior of files opened in 'readonly' mode when memmap=True vs. when memmap=False. In the latter case, although changes to array data were not saved to disk, it was possible to update the array data in memory. On the other hand with memmap=True, 'readonly' mode prevented even in-memory modification to the data. This is what 'copyonwrite' mode was for, but difference in behavior was confusing. Now 'readonly' is equivalent to 'copyonwrite' when using memmap. If the old behavior of denying changes to the array data is necessary, a new 'denywrite' mode may be used, though it is only applicable to files opened with memmap. (r1275) - Fixed an issue where files opened with memmap=True would return image data as a raw numpy.memmap object, which can cause some unexpected behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285) - Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3 interacted badly with some other software, namely to vo.table package (and possibly others). (r1320, r1337, and #110) - Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard interrupts) while flushing changes to a FITS file. PyFITS already prevented SIGINTs from causing an incomplete flush, but did not clean up the signal handlers properly afterwards, or reraise the keyboard interrupt once the flush was complete. (r1321) - Fixed a crash that could occur in Python 3 when opening files with checksum checking enabled. (r1336) - Fixed a small bug that could cause a crash in the `StreamingHDU` interface when using Numpy below version 1.5. - Fixed a crash that could occur when creating a new `CompImageHDU` from an array of big-endian data. (#104) - Fixed a crash when opening a file with extra zero padding at the end. Though FITS files should not have such padding, it's not explictly forbidden by the format either, and PyFITS shouldn't stumble over it. (#106) - Fixed a major slowdown in opening tables containing large columns of string values. (#111) 3.0.4 (2011-11-22) ------------------ - Fixed a crash when writing HCOMPRESS compressed images that could happen on Python 2.5 and 2.6. (r1217) - Fixed a crash when slicing an table in a file opened in 'readonly' mode with memmap=True. (r1230) - Writing changes to a file or writing to a new file verifies the output in 'fix' mode by default instead of 'exception'--that is, PyFITS will automatically fix common FITS format errors rather than raising an exception. (r1243) - Fixed a bug where convenience functions such as getval() and getheader() crashed when specifying just 'PRIMARY' as the extension to use (r1263). - Fixed a bug that prevented passing keyword arguments (beyond the standard data and header arguments) as positional arguments to the constructors of extension HDU classes. - Fixed some tests that were failing on Windows--in this case the tests themselves failed to close some temp files and Windows refused to delete them while there were still open handles on them. (r1295) - Fixed an issue with floating point formatting in header values on Python 2.5 for Windows (and possibly other platforms). The exponent was zero-padded to 3 digits; although the FITS standard makes no specification on this, the formatting is now normalized to always pad the exponent to two digits. (r1295) - Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were broken into multiple CONTINUE cards. However, commentary cards are not expected to be found in CONTINUE cards. Instead these long cards are broken into multiple commentary cards. (#97) - GZIP/ZIP-compressed FITS files can be detected and opened regardless of their filename extension. (#99) - Fixed a serious bug where opening scaled images in 'update' mode and then closing the file without touching the data would cause the file to be corrupted. (#101) 3.0.3 (2011-10-05) ------------------ - Fixed several small bugs involving corner cases in record-valued keyword cards (#70) - In some cases HDU creation failed if the first keyword value in the header was not a string value (#89) - Fixed a crash when trying to compute the HDU checksum when the data array contains an odd number of bytes (#91) - Disabled an unnecessary warning that was displayed on opening compressed HDUs with disable_image_compression = True (#92) - Fixed a typo in code for handling HCOMPRESS compressed images. 3.0.2 (2011-09-23) ------------------ - The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate`` function don't get tripped up by blank lines anymore (#14) - The presence, value, and position of the EXTEND keyword in Primary HDUs is verified when reading/writing a FITS file (#32) - Improved documentation (in warning messages as well as in the handbook) that PyFITS uses zero-based indexing (as one would expect for C/Python code, but contrary to the PyFITS standard which was written with FORTRAN in mind) (#68) - Fixed a bug where updating a header card comment could cause the value to be lost if it had not already been read from the card image string. - Fixed a related bug where changes made directly to Card object in a header (i.e. assigning directly to card.value or card.comment) would not propagate when flushing changes to the file (#69) [Note: This and the bug above it were originally reported as being fixed in version 3.0.1, but the fix was never included in the release.] - Improved file handling, particularly in Python 3 which had a few small file I/O-related bugs (#76) - Fixed a bug where updating a FITS file would sometimes cause it to lose its original file permissions (#79) - Fixed the handling of TDIMn keywords; 3.0 added support for them, but got the axis order backards (they were treated as though they were row-major) (#82) - Fixed a crash when a FITS file containing scaled data is opened and immediately written to a new file without explicitly viewing the data first (#84) - Fixed a bug where creating a table with columns named either 'names' or 'formats' resulted in an infinite recursion (#86) 3.0.1 (2011-09-12) ------------------ - Fixed a bug where updating a header card comment could cause the value to be lost if it had not already been read from the card image string. - Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a ``FITS_rec`` object with zero rows is returned rather than ``None``. - The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full keyword+field-specifier value, instead of just the plain keyword (#46) - Fixed a related bug where changes made directly to Card object in a header (i.e. assigning directly to card.value or card.comment) would not propagate when flushing changes to the file (#69) - Fixed a bug where writing a table with zero rows could fail in some cases (#72) - Miscellanous small bug fixes that were causing some tests to fail, particularly on Python 3 (#74, #75) - Fixed a bug where creating a table column from an array in non-native byte order would not preserve the byte order, thus interpreting the column array using the wrong byte order (#77) 3.0.0 (2011-08-23) -------------------- - Contains major changes, bumping the version to 3.0 - Large amounts of refactoring and reorganization of the code; tried to preserve public API backwards-compatibility with older versions (private API has many changes and is not guaranteed to be backwards-compatible). There are a few small public API changes to be aware of: * The pyfits.rec module has been removed completely. If your version of numpy does not have the numpy.core.records module it is too old to be used with PyFITS. * The ``Header.ascardlist()`` method is deprecated--use the ``.ascard`` attribute instead. * ``Card`` instances have a new ``.cardimage`` attribute that should be used rather than ``.ascardimage()``, which may become deprecated. * The ``Card.fromstring()`` method is now a classmethod. It returns a new ``Card`` instance rather than modifying an existing instance. * The ``req_cards()`` method on HDU instances has changed: The ``pos`` argument is not longer a string. It is either an integer value (meaning the card's position must match that value) or it can be a function that takes the card's position as it's argument, and returns True if the position is valid. Likewise, the ``test`` argument no longer takes a string, but instead a function that validates the card's value and returns True or False. * The ``get_coldefs()`` method of table HDUs is deprecated. Use the ``.columns`` attribute instead. * The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns`` instead (though in general you shouldn't mess with it directly--it might become internal at some point). * ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of ``startColumn`` and ``endColumn`` (these are rarely created manually, so it's unlikely that this change will affect anyone). * ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new ``BinTableHDU`` instance. * Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU classes. They are now public interfaces, wheres previously they were private and prefixed with underscores. * Possibly others--please report if you find any changes that cause difficulties. - Calls to deprecated functions will display a Deprecation warning. However, in Python 2.7 and up Deprecation warnings are ignored by default, so run Python with the `-Wd` option to see if you're using any deprecated functions. If we get close to actually removing any functions, we might make the Deprecation warnings display by default. - Added basic Python 3 support - Added support for multi-dimensional columns in tables as specified by the TDIMn keywords (#47) - Fixed a major memory leak that occurred when creating new tables with the ``new_table()`` function (#49) be padded with zero-bytes) vs ASCII tables (where strings are padded with spaces) (#15) - Fixed a bug in which the case of Random Access Group parameters names was not preserved when writing (#41) - Added support for binary table fields with zero width (#42) - Added support for wider integer types in ASCII tables; although this is non- standard, some GEIS images require it (#45) - Fixed a bug that caused the index_of() method of HDULists to crash when the HDUList object is created from scratch (#48) - Fixed the behavior of string padding in binary tables (where strings should be padded with nulls instead of spaces) - Fixed a rare issue that caused excessive memory usage when computing checksums using a non-standard block size (see r818) - Add support for forced uint data in image sections (#53) - Fixed an issue where variable-length array columns were not extended when creating a new table with more rows than the original (#54) - Fixed tuple and list-based indexing of FITS_rec objects (#55) - Fixed an issue where BZERO and BSCALE keywords were appended to headers in the wrong location (#56) - ``FITS_record`` objects (table rows) have full slicing support, including stepping, etc. (#59) - Fixed a bug where updating multiple files simultaneously (such as when running parallel processes) could lead to a race condition with mktemp() (#61) - Fixed a bug where compressed image headers were not in the order expected by the funpack utility (#62)
jperkin
pushed a commit
that referenced
this pull request
Mar 14, 2014
Upstream changes since 1.0: log4cplus 1.1.1 - FileAppender - Accept also std::ios_base::ate as "append to a log file" specification. log4cplus 1.1.1-RC4 - Fixed bug #156 - Messages are truncated when produced using the LOG4CPLUS_*_FMT() macros. - Fixed bug #157 - Fedora package build failure. - Improved log4cplus initialization: - Use APC to initialize log4cplus outside loader lock. - Use Microsoft C runtime library TLS callbacks to initialize log4cplus as static library. - Warn during compilation that automatic initialization is not possible when log4cplus is being compiled with static Microsoft C runtime library. - Provide log4cplus::initialize() function to allow users to initialize log4cplus in situations where automatic initialization is not possible. - Several improvements to CMake build: - Fixed OpenBSD + CMake builds. - Fixed issues with Visual Studio 2005 CMake builds. - Added support for CMake builds on Android with NDK. (Sergey Nikulov) - The defines.hxx.cmake file is now generated out of defines.hxx.in. - Library version is parsed out of version.h. (Sergey Nikulov) - MDC formatter for PatternLayout ("%X") now expands into list of key value pairs if no specific key is given. (Yaqian Shen) - Avoid clock_nanosleep() on Android. - ServerSocket::accept() can now be interrupted from another thread using new function ServerSocket::interruptAccept(). log4cplus 1.1.1-RC3 - Fixed another MinGW related build failure. - Fixed mismatched #if/#endif in Windows builds. log4cplus 1.1.1-RC2 - Allow to disable TLS usage in macros through LOG4CPLUS_MACRO_DISABLE_TLS preprocessor symbol. - Fixed compilation with Clang on Cygwin. - Fixed SIGSEGV when built with some MinGW distributions. - Fixed build failure when using -march=i386. - Implemented thread callback to initialize log4cplus for Visual Studio builds of static library. - Fixed bug #154 - getHostname() failure because of uninitialized WinSock. - Fixed detection of C++11 thread_local keyword. - Fixed builds using DevKit-tdm-32-4.5.2-20111229-1559. log4cplus 1.1.1-RC1 - Improved documentation for various classes. - Cherry-picked various small improvements from trunk. - Fixed Unicode builds on *NIX. - Fixed static library builds from Visual Studio project. - Suppressed warning C4127 from MSVC. (Chris Steenwyk) - Improved MinGW32 and MinGW64 toolchains compatiblity. - Fixed encoding handling in Properties class. - Added include directive for properties files. (Jukka Lantto) - Added colored output for Win32ConsoleAppender. (Konstantin Baumann) - (Re)Introduced support for C++Builder (XE3) - Reimplemented acceptSocket() using select() on Windows to allow interrupting the accept() call from different thread. log4cplus 1.1.0 - Fixed MacOS X support - Reimplemented semaphores using named ones for Apple builds. - Fixed resource leak on failure in openSocket(). - Improved configuration file modification check to include file size, in addition to file modification time. log4cplus 1.1.0-RC10 - Fixed non-STLPort4 builds with Solaris Studio. Switch '-library=stlport4' is only added if CXXFLAGS does not already contain a switch matching -library=(stlport4|stdcxx4|Cstd). - Fixed --disable-shared MinGW builds. - Fixed non-working MinGW DLL binaries. DllMain() was not being called because of missing extern "C" in its definition. - CMake build configuration checks have been improved. (Chernyshev Vyacheslav) - GCC switch -O2 is only added if CXXFLAGS does not already contain any other -O. - Improved logging speed using SysLogAppender and Log4jUdpAppender by optimizations in both the loggers and in common sockets code. - FileAppender locale can now be specified in properties files using Locale property. See FileAppender Doxygen documentation for more details. log4cplus 1.1.0-RC9 - Improved Log4jUdpAppender compatibility with Chainsaw. - Fixed crash, bugs #3467112 and #3563699, related to thread-local storage destruction. - Fixed build with Visual Studio 2005, bug #3565529. (xg00) - Created Cygwin port's .cygport definition for log4cplus. - Improved hiding of private symbols using GCC's __attribute__((visibility("hidden"))) and Solaris Studio's __hidden. - Fixed build in environments where DEBUG (and other log level names) are macros. (Chernyshev Vyacheslav) - Improved configuration of threads support. (Jens Rehsack) log4cplus 1.1.0-RC8 - Turned on __thread (TLS) detection on NetBSD 5.1.0 and later that has been previously disabled. - Improved compatibility with log4cplus 1.0.x: allow using log4cplus 1.0.x log level to string callbacks in 1.1.x. - Improved various M4 macros. - Added detection and use C++11 thread_local. - Fixed XML entities escaping in Log4jUdpAppender. - Re-added synchronization between ConsoleAppender and LogLog. - Changed C logger API to return int instead of bool. - Added C logger API to Visual Studio 2010 projects. - Implemented remote syslog logging using UDP in SysLogAppender. - Enabled SysLogAppender on Windows with only remote syslog logging enabled. log4cplus 1.1.0-RC7 IMPORTANT: Builds with --with-iconv configure switch now assume UTF-8 for plain char strings. - Bumped up SO version for UDP sockets support related changes. - Removed Windows CE support. - Regenerated with Automake 1.12.2. - Fixed Fedora RPM builds spec file. - Implemented log4cplus.disableOverride similar to log4j's log4j.disableOverride. - Improved support of profiling and debugging builds with Sun CC. - Added documentation for configure script options. - Added detection and use of clock_nanosleep(). - Disabled __thread (TLS) detection for NetBSD. It is broken there. - New appender: Log4jUdpAppender. It allows logging using UDP with log4j XML payload to Chainsaw or Log2Console. (Siva Chandran P) - Added support for __func__ as function name source for logging events. log4cplus 1.1.0-RC6 - Fixed compilation for build with wchar_t being alias to unsigned short (/Zc:wchar_t-) (Windows). - Added new appender CLFSAppender (experimental), based on Microsoft Common Log File System API. - Added new appender Qt4DebugAppender (experimenta), based on Qt4's qDebug(), qWarning() and qCritical() functions. - Fixed bug #3530769 - compilation issues with Visual Studio 2011. - Added log4cplus.quietMode property handling to PropertyConfigurator. - Added #pragma once to all headers. - Implemented Time::gettimeofday() using Win32 API's GetSystemTimeAsFileTime(). - Moved file based locking from FileAppender to Appender to make it available for all appenders. - Changed Windows configuration to use __declspec(thread) when compiling for Windows Vista or later and TlsAlloc() otherwise. - Implemented %r PatternLayout format specifier - miliseconds since process start. - Fixed bug #3101459 - TTCCLayout time is not in milliseconds since process start by default. log4cplus 1.1.0-RC5 - Fixed single threaded log4cplus build issues. - Added ability to log to std::cerr (Andreas Bießmann). - Fixed disabling of LOG4CPLUS_*_FMT() macros. log4cplus 1.1.0-RC4 IMPORTANT: Compilation with Solaris Studio now depends on STLPort (-library=stlport4 switch). The default Cstd library is not conforming enough for use in log4cplus. - Improved behaviour of log4cplus as a component of larger CMake based project (Andreas Bießmann). - Updated various Autoconf detection scripts in m4/ directory to newer versions. - Fixed some signedness and overflow warnings. - Improved Autotools build system's behaviour for cross compilation. - Added detection of C++11 <atomic> header and related functions. Implemented SharedObject reference counting using C++11 atomics where possible. - Fixed compilation with GCC 4.6 in C++11 mode. - Fixed some single-threaded compilation and run time issues. - Fixed bug #3520891 - FileAppender buffering issue. - Updated to Autoconf 2.69, Automake 1.12 and Libtool 2.4.2. - Documented build procedure for Solaris Studio. - Improved support for Solaris Studio in configure.in. log4cplus 1.1.0-RC3 - Fixed log4cplusS.vcxproj - Added missing source files to the project. log4cplus 1.1.0-RC2 - CMake build system fixes. - Fixed TTCCLayout double time stamp issue. log4cplus 1.1.0-RC1 Important changes relative to PRODUCTION_1_0_x branch: - Added AsyncAppender. - Added simple C interface for interoperability with C. - Added inter-process file locking to file appenders to allow logging into a single log file from multiple processes. - Added Mapped Diagnostic Context (MDC) and associated converter (%X). - Added alternative thread identification (%T) converter to pattern layout. - Added function name converter (%M). - Added wchar_t <-> char conversion implementations based on standard C locale functions and based on iconv(). - Added DeviceAppender to allow use of Boost.IOStream's Sink as appender. - Added LOG4CPLUS_*_FMT() macros to allow printf-like formatted output where it is possible. - Logging macros now accept both logger name as string and Logger instance as their first parameter.
jperkin
pushed a commit
that referenced
this pull request
Mar 14, 2014
FITS (Flexible Image Transport System) is a data format most used in astronomy. PyFITS is a Python module for reading, writing, and manipulating FITS files. The module uses Python's object-oriented features to provide quick, easy, and efficient access to FITS files. The use of Python's array syntax enables immediate access to any FITS extension, header cards, or data items. Changes to 2.4.0 (in py-pyfits): Changelog =========== 3.2 (2013-11-26) ---------------- Highlights ^^^^^^^^^^ - Rewrote CFITSIO-based backend for handling tile compression of FITS files. It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO as before. PyFITS ships with its own copy of CFITSIO v3.35 which supports the latest version of the Tiled Image Convention (v2.3), but system packagers may choose instead to strip this out in favor of a system-installed version of CFITSIO. Earlier versions may work, but nothing earlier than 3.28 has been tested yet. (#169) - Added support for reading and writing tables using the Q format for columns. The Q format is identical to the P format (variable-length arrays) except that it uses 64-bit integers for the data descriptors, allowing more than 4 GB of variable-length array data in a single table. (#160) - Added initial support for table columns containing pseudo-unsigned integers. This is currently enabled by using the ``uint=True`` option when opening files; any table columns with the correct BZERO value will be interpreted and returned as arrays of unsigned integers. - Some refactoring of the table and ``FITS_rec`` modules in order to better separate the details of the FITS binary and ASCII table data structures from the HDU data structures that encapsulate them. Most of these changes should not be apparent to users (but see API Changes below). API Changes ^^^^^^^^^^^ - Assigning to values in ``ColDefs.names``, ``ColDefs.formats``, ``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return lists of column properties is no longer supported. Assigning to those lists will no longer update the corresponding columns. Instead, please just modify the ``Column`` instances directly (``Column.name``, ``Column.null``, etc.) - The ``pyfits.new_table`` function is marked "pending deprecation". This does not mean it will be removed outright or that its functionality has changed. It will likely be replaced in the future for a function with similar, if not subtly different functionality. A better, if not slightly more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create a new ``FITS_rec`` table--this has the same interface as ``pyfits.new_table``. The difference is that it returns a plan ``FITS_rec`` array, and not an HDU instance. This ``FITS_rec`` object can then be used as the data argument in the constructors for ``BinTableHDU`` (for binary tables) or ``TableHDU`` (for ASCII tables). This is analogous to creating an ``ImageHDU`` by passing in an image array. ``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a FITS-compatible recarray from a FITS column specification. - The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData`` methods of the ``CompDataHDU`` class are pending deprecation and moved to internal methods. The operation of these methods depended too much on internal state to be used safely by users; instead they are invoked automatically in the appropriate places when reading/writing compressed image HDUs. - The ``CompDataHDU.compData`` attribute is pending deprecation in favor of the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``. - The constructor for ``CompDataHDU`` has been changed to accept new keyword arguments. The new keyword arguments are essentially the same, but are in underscore_separated format rather than camelCase format. The old arguments are still pending deprecation. - The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and ``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``, and ``_data_size`` respectively. The old attribute names are still pending deprecation. This should only be of interest to advanced users who have created their own HDU subclasses. - The following previously deprecated functions and methods have been removed entirely: ``createCard``, ``createCardFromString``, ``upperKey``, ``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``, ``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``. If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with the ``python -Wd`` argument, warnings for all deprecated interfaces still in use will be displayed. - Interfaces that were pending deprecation are now fully deprecated. These include: ``create_card``, ``create_card_from_string``, ``upper_key``, ``Header.get_history``, and ``Header.get_comment``. - The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa. - The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to ``pyfits.file.PYFITS_MODES`` which better reflects its purpose. This is rarely used by client code, however. Support for the old name will be removed by PyFITS 3.4. Other Changes and Additions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - The new compression code also adds support for the ZQUANTIZ and ZDITHER0 keywords added in more recent versions of this FITS Tile Compression spec. This includes support for lossless compression with GZIP. (#198) By default no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and ``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct constants to the ``quantize_method`` argument to the ``CompImageHDU`` constuctor. A seed can be manually specified, or automatically generated using either the system clock or checksum-based methods via the ``dither_seed`` argument. See the documentation for ``CompImageHDU`` for more details. (#198) (spacetelescope/PYFITS#32) - Images compressed with the Tile Compression standard can now be larger than 4 GB through support of the Q format. (#159) - All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist. This was added for consistency with the ``.name`` attribute which returns the EXTNAME value from the header. - Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes which give the Numpy dtype for the column data in the first case, and the full Numpy compound dtype for each table row in the latter case. - There was an issue where new tables created defaulted the values in all string columns to '0.0'. Now string columns are filled with empty strings by default--this seems a less surprising default, but it may cause differences with tables created with older versions of PyFITS. - Improved round-tripping and preservation of manually assigned column attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers. (astropy/astropy#996) Bug Fixes ^^^^^^^^^ - Binary tables containing compressed images may, optionally, contain other columns unrelated to the tile compression convention. Although this is an uncommon use case, it is permitted by the standard. (#159) - Reworked some of the file I/O routines to allow simpler, more consistent mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more "PyFITS-specific" modes used by PyFITS like "readonly" and "update". That is, if reading a FITS file from an open file object, it doesn't matter as much what "mode" it was opened in so long as it has the right capabilities (read/write/etc.) Also works around bugs in the Python io module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33) - Fixed an obscure issue that can occur on systems that don't have flush to memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968) 3.1.3 (2013-11-26) ------------------ - Disallowed assigning NaN and Inf floating point values as header values, since the FITS standard does not define a way to represent them in. Because this is undefined, the previous behavior did not make sense and produced invalid FITS files. (spacetelescope/PyFITS#11) - Added a workaround for a bug in 64-bit OSX that could cause truncation when writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28) - Fixed a long-standing issue where writing binary tables did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). This was thought fixed in v3.1.2, but it was only fixed there for compressed image HDUs and not for binary tables in general. - Fixed an obscure issue that can occur on systems that don't have flush to memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2) 3.0.12 (2013-11-26) ------------------- - Disallowed assigning NaN and Inf floating point values as header values, since the FITS standard does not define a way to represent them in. Because this is undefined, the previous behavior did not make sense and produced invalid FITS files. (Backported from 3.1.3) - Added a workaround for a bug in 64-bit OSX that could cause truncation when writing files greater than 2^32 bytes in size. (Backported from 3.1.3) - Fixed a long-standing issue where writing binary tables did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). This was thought fixed in v3.1.2, but it was only fixed there for compressed image HDUs and not for binary tables in general. (Backported from 3.1.3) - Fixed an obscure issue that can occur on systems that don't have flush to memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2) 3.1.2 (2013-04-22) ------------------ - When an error occurs opening a file in fitsdiff the exception message will now at least mention which file had the error. (#168) - Fixed support for opening gzipped FITS files by filename in a writeable mode (PyFITS has supported writing to gzip files for some time now, but only enabled it when GzipFile objects were passed to ``pyfits.open()`` due to some legacy code preventing full gzip support. (#195) - Added a more helpful error message in the case of malformatted FITS files that contain non-float NULL values in an ASCII table but are missing the required TNULLn keywords in the header. (#197) - Fixed an (apparently long-standing) issue where writing compressed images did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). (#199) - Slightly refactored how tables containing variable-length array columns are handled to add two improvements: Fixes an issue where accessing the data after a call to the `pyfits.getdata` convenience function caused an exception, and allows the VLA data to be read from an existing mmap of the FITS file. (#200) - Fixed a bug that could occur when opening a table containing multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it out to a new file. (#201) - Added use of the console_scripts entry point to install the fitsdiff and fitscheck scripts, which if nothing else provides better Windows support. The generated scripts now override the ones explicitly defined in the scripts/ directory (which were just trivial stubs to begin with). (#202) - Fixed a bug on Python 3 where attempting to open a non-existent file on Python 3 caused a seemingly unrelated traceback. (#203) - Fixed a bug in fitsdiff that reported two header keywords containing NaN as value as different. (#204) - Fixed an issue in the tests that caused some tests to fail if pyfits is installed with read-only permissions. (#208) - Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array containing boolean fields converted all the values to ``False``. (#215) - Fixed an issue where passing an array of integers into the constructor of ``Column()`` when the column type is floats of the same byte width caused the column array to become garbled. (#218) - Fixed inconsistent behavior in creating CONTINUE cards from byte strings versus unicode strings in Python 2--CONTINUE cards can now be created properly from unicode strings (so long as they are convertable to ASCII). (spacetelescope/PyFITS#1) - Fixed a couple cases where creating a new table using TDIMn in some of the columns could caused a crash. (spacetelescope/PyFITS#3) - Fixed a bug in parsing HIERARCH keywords that do not have a space after the first equals sign (before the value). (spacetelescope/PyFITS#5) - Prevented extra leading whitespace on HIERARCH keywords from being treated as part of the keyword. (spacetelescope/PyFITS#6) - Fixed a bug where HIERARCH keywords containing lower-case letters was mistakenly marked as invalid during header validation. (spacetelescope/PyFITS#7) - Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the ``Header.index()`` method did not work correctly with HIERARCH keywords containing lower-case letters. 3.0.11 (2013-04-17) ------------------- - Fixed support for opening gzipped FITS files by filename in a writeable mode (PyFITS has supported writing to gzip files for some time now, but only enabled it when GzipFile objects were passed to ``pyfits.open()`` due to some legacy code preventing full gzip support. Backported from 3.1.2. (#195) - Added a more helpful error message in the case of malformatted FITS files that contain non-float NULL values in an ASCII table but are missing the required TNULLn keywords in the header. Backported from 3.1.2. (#197) - Fixed an (apparently long-standing) issue where writing compressed images did not correctly write the TFORMn keywords for variable-length array columns (they ommitted the max array length parameter of the format). Backported from 3.1.2. (#199) - Slightly refactored how tables containing variable-length array columns are handled to add two improvements: Fixes an issue where accessing the data after a call to the `pyfits.getdata` convenience function caused an exception, and allows the VLA data to be read from an existing mmap of the FITS file. Backported from 3.1.2. (#200) - Fixed a bug that could occur when opening a table containing multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it out to a new file. Backported from 3.1.2. (#201) - Fixed a bug on Python 3 where attempting to open a non-existent file on Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2. (#203) - Fixed a bug in fitsdiff that reported two header keywords containing NaN as value as different. Backported from 3.1.2. (#204) - Fixed an issue in the tests that caused some tests to fail if pyfits is installed with read-only permissions. Backported from 3.1.2. (#208) - Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array containing boolean fields converted all the values to ``False``. Backported from 3.1.2. (#215) - Fixed an issue where passing an array of integers into the constructor of ``Column()`` when the column type is floats of the same byte width caused the column array to become garbled. Backported from 3.1.2. (#218) - Fixed a couple cases where creating a new table using TDIMn in some of the columns could caused a crash. Backported from 3.1.2. (spacetelescope/PyFITS#3) 3.1.1 (2013-01-02) ------------------ This is a bug fix release for the 3.1.x series. Bug Fixes ^^^^^^^^^ - Improved handling of scaled images and pseudo-unsigned integer images in compressed image HDUs. They now work more transparently like normal image HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options, as well as ``scale_back`` and ``save_backup``. The ``.scale()`` method works better too. (#88) - Permits non-string values for the EXTNAME keyword when reading in a file, rather than throwing an exception due to the malformatting. Added verification for the format of the EXTNAME keyword when writing. (#96) - Added support for EXTNAME and EXTVER in PRIMARY HDUs. That is, if EXTNAME is specified in the header, it will also be reflected in the ``.name`` attribute and in ``pyfits.info()``. These keywords used to be verboten in PRIMARY HDUs, but the latest version of the FITS standard allows them. (#151) - HCOMPRESS can again be used to compress data cubes (and higher-dimensional arrays) so long as the tile size is effectively 2-dimensional. In fact, PyFITS will automatically use compatible tile sizes even if they're not explicitly specified. (#171) - Added support for the optional ``endcard`` parameter in the ``Header.fromtextfile()`` and ``Header.totextfile()`` methods. Although ``endcard=False`` was a reasonable default assumption, there are still text dumps of FITS headers that include the END card, so this should have been more flexible. (#176) - Fixed a crash when running fitsdiff on two empty (that is, zero row) tables. (#178) - Fixed an issue where opening files containing random groups HDUs in update mode could cause an unnecessary rewrite of the file even if none of the data is modified. (#179) - Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS is used with Numpy 1.7 in some cases. (#180) - Fixed a crash when generating diff reports from diffs using the ``ignore_comments`` options. (#181) - Fixed some bugs with WCS Paper IV record-valued keyword cards: - Cards that looked kind of like RVKCs but were not intended to be were over-permissively treated as such--commentary keywords like COMMENT and HISTORY were particularly affected. (#183) - Looking up a card in a header by its standard FITS keyword only should always return the raw value of that card. That way cards containing values that happen to valid RVKCs but were not intended to be will still be treated like normal cards. (#184) - Looking up a RVKC in a header with only part of the field-specifier (for example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a wildcard lookup. (#184) - Fixed a crash when diffing two FITS files where at least one contains a compressed image HDU which was not recognized as an image instead of a table. (#187) - Fixed bugs in the backwards compatibility layer for the ``CardList.index`` and ``CardList.count`` methods. (#190) - Improved ``__repr__`` and text file representation of cards with long values that are split into CONTINUE cards. (#193) - Fixed a crash when trying to assign a long (> 72 character) value to blank ('') keywords. This also changed how blank keywords are represented--there are still exactly 8 spaces before any commentary content can begin; this *may* affect the exact display of header cards that assumed there could be fewer spaces in a blank keyword card before the content begins. However, the current approach is more in line with the requirements of the FITS standard. (#194) 3.0.10 (2013-01-02) ------------------- - Improved handling of scaled images and pseudo-unsigned integer images in compressed image HDUs. They now work more transparently like normal image HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options, as well as ``scale_back`` and ``save_backup``. The ``.scale()`` method works better too. Backported from 3.1.1. (#88) - Permits non-string values for the EXTNAME keyword when reading in a file, rather than throwing an exception due to the malformatting. Added verification for the format of the EXTNAME keyword when writing. Backported from 3.1.1. (#96) - Added support for EXTNAME and EXTVER in PRIMARY HDUs. That is, if EXTNAME is specified in the header, it will also be reflected in the ``.name`` attribute and in ``pyfits.info()``. These keywords used to be verbotten in PRIMARY HDUs, but the latest version of the FITS standard allows them. Backported from 3.1.1. (#151) - HCOMPRESS can again be used to compress data cubes (and higher-dimensional arrays) so long as the tile size is effectively 2-dimensional. In fact, PyFITS will not automatically use compatible tile sizes even if they're not explicitly specified. Backported from 3.1.1. (#171) - Fixed a bug when writing out files containing zero-width table columns, where the TFIELDS keyword would be updated incorrectly, leaving the table largely unreadable. Backported from 3.1.0. (#174) - Fixed an issue where opening files containing random groups HDUs in update mode could cause an unnecessary rewrite of the file even if none of the data is modified. Backported from 3.1.1. (#179) - Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180) 3.1 (2012-08-08) ---------------- Highlights ^^^^^^^^^^ - The ``Header`` object has been significantly reworked, and ``CardList`` objects are now deprecated (their functionality folded into the ``Header`` class). See API Changes below for more details. - Memory maps are now used by default to access HDU data. See API Changes below for more details. - Now includes a new version of the ``fitsdiff`` program for comparing two FITS files, and a new FITS comparison API used by ``fitsdiff``. See New Features below. API Changes ^^^^^^^^^^^ - The ``Header`` class has been rewritten, and the ``CardList`` class is deprecated. Most of the basic details of working with FITS headers are unchanged, and will not be noticed by most users. But there are differences in some areas that will be of interest to advanced users, and to application developers. For full details of the changes, see the "Header Interface Transition Guide" section in the PyFITS documentation. See ticket #64 on the PyFITS Trac for futher details and background. Some highlights are listed below: * The Header class now fully implements the Python dict interface, and can be used interchangably with a dict, where the keys are header keywords. * New keywords can be added to the header using normal keyword assignment (previously it was necessary to use ``Header.update`` to add new keywords). For example:: >>> header['NAXIS'] = 2 will update the existing 'FOO' keyword if it already exists, or add a new one if it doesn't exist, just like a dict. * It is possible to assign both a value and a comment at the same time using a tuple:: >>> header['NAXIS'] = (2, 'Number of axes') * To add/update a new card and ensure it's added in a specific location, use ``Header.set()``:: >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX') This works the same as the old ``Header.update()``. ``Header.update()`` still works in the old way too, but is deprecated. * Although ``Card`` objects still exist, it generally is not necessary to work with them directly. ``Header.ascardlist()``/``Header.ascard`` are deprecated and should not be used. To directly access the ``Card`` objects in a header, use ``Header.cards``. * To access card comments, it is still possible to either go through the card itself, or through ``Header.comments``. For example:: >>> header.cards['NAXIS'].comment Number of axes >>> header.comments['NAXIS'] Number of axes * ``Card`` objects can now be used interchangeably with ``(keyword, value, comment)`` 3-tuples. They still have ``.value`` and ``.comment`` attributes as well. The ``.key`` attribute has been renamed to ``.keyword`` for consistency, though ``.key`` is still supported (but deprecated). - Memory mapping is now used by default to access HDU data. That is, ``pyfits.open()`` uses ``memmap=True`` as the default. This provides better performance in the majority of use cases--there are only some I/O intensive applications where it might not be desirable. Enabling mmap by default also enabled finding and fixing a large number of bugs in PyFITS' handling of memory-mapped data (most of these bug fixes were backported to PyFITS 3.0.5). (#85) * A new ``pyfits.USE_MEMMAP`` global variable was added. Set ``pyfits.USE_MEMMAP = False`` to change the default memmap setting for opening files. This is especially useful for controlling the behavior in applications where pyfits is deeply embedded. * Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported. Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default behavior. - The ``size()`` method on HDU objects is now a ``.size`` property--this returns the size in bytes of the data portion of the HDU, and in most cases is equivalent to ``hdu.data.nbytes`` (#83) - ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use ``BinTableHDU.dump`` and ``BinTableHDU.load`` instead. The new methods output the table data in a slightly different format from previous versions, which places quotes around each value. This format is compatible with data dumps from previous versions of PyFITS, but not vice-versa due to a parsing bug in older versions. - Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function versions of these methods have been renamed ``pyfits.tabledump`` and ``pyfits.tableload``. The old deprecated, but currently retained for backwards compatibility. (r1125) - A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added. This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive`` which is not deprecated and may be removed in a future version. To enable case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI') set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``. The default is ``False``. (r1139) - A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was added. By default, if a string value in a header contains trailing whitespace, that whitespace is automatically removed when the value is read. Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is preserved. (#146) - The old ``classExtensions`` extension mechanism (which was deprecated in PyFITS 3.0) is removed outright. To our knowledge it was no longer used anywhere. (r1309) - Warning messages from PyFITS issued through the Python warnings API are now output to stderr instead of stdout, as is the default. PyFITS no longer modifies the default behavior of the warnings module with respect to which stream it outputs to. (r1319) - The ``checksum`` argument to ``pyfits.open()`` now accepts a value of 'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored, and removed when the file is saved. New Features ^^^^^^^^^^^^ - Added support for the proposed "FITS" extension HDU type. See http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html. FITS HDUs contain an entire FITS file embedded in their data section. `FitsHDU` objects work like other HDU types in PyFITS. Their ``.data`` attribute returns the raw data array. However, they have a special ``.hdulist`` attribute which processes the data as a FITS file and returns it as an in-memory HDUList object. FitsHDU objects also support a ``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object that embeds the supplied HDUList. (#80) - Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU data is an 'image' as opposed to a table or something else. Here the meaning of 'image' is fairly loose, and mostly just means a Primary or Image extension HDU, or possibly a compressed image HDU (#71) - Added an ``HDUList.fromstring`` classmethod which can parse a FITS file already in memory and instantiate and ``HDUList`` object from it. This could be useful for integrating PyFITS with other libraries that work on FITS file, such as CFITSIO. It may also be useful in streaming applications. The name is a slight misnomer, in that it actually accepts any Python object that implements the buffer interface, which includes ``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90) - Added a new ``pyfits.diff`` module which contains facilities for comparing FITS files. One can use the ``pyfits.diff.FITSDiff`` class to compare two FITS files in their entirety. There is also a ``pyfits.diff.HeaderDiff`` class for just comparing two FITS headers, and other similar interfaces. See the PyFITS Documentation for more details on this interface. The ``pyfits.diff`` module powers the new ``fitsdiff`` program installed with PyFITS. After installing PyFITS, run ``fitsdiff --help`` for usage details. - ``pyfits.open()`` now accepts a ``scale_back`` argument. If set to ``True``, this automatically scales the data using the original BZERO and BSCALE parameters the file had when it was first opened, if any, as well as the original BITPIX. For example, if the original BITPIX were 16, this would be equivalent to calling ``hdu.scale('int16', 'old')`` just before calling ``flush()`` or ``close()`` on the file. This option applies to all HDUs in the file. (#120) - ``pyfits.open()`` now accepts a ``save_backup`` argument. If set to ``True``, this automatically saves a backup of the original file before flushing any changes to it (this of course only applies to update and append mode). This may be especially useful when working with scaled image data. (#121) Changes in Behavior ^^^^^^^^^^^^^^^^^^^ - Warnings from PyFITS are not output to stderr by default, instead of stdout as it has been for some time. This is contrary to most users' expectations and makes it more difficult for them to separate output from PyFITS from the desired output for their scripts. (r1319) Bug Fixes ^^^^^^^^^ - Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust when encountering blank lines in a column definition file (#14) - Fixed a fairly rare crash that could occur in the handling of CONTINUE cards when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by PyFITS). (r1330) - Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU object from a string/buffer containing the header and data of that HDU. This allowed for the implementation of ``HDUList.fromstring`` described above. (#90) - Fixed a rare corner case where, in some use cases, (mildly, recoverably) malformatted float values in headers were not properly returned as floats. (#137) - Fixed a corollary to the previous bug where float values with a leading zero before the decimal point had the leading zero unnecessarily removed when saving changes to the file (eg. "0.001" would be written back as ".001" even if no changes were otherwise made to the file). (#137) - When opening a file containing CHECKSUM and/or DATASUM keywords in update mode, the CHECKSUM/DATASUM are updated and preserved even if the file was opened with checksum=False. This change in behavior prevents checksums from being unintentionally removed. (#148) - Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it was not restoring the image to its original BSCALE and BZERO values. (#162) - Fixed a bug when writing out files containing zero-width table columns, where the TFIELDS keyword would be updated incorrectly, leaving the table largely unreadable. This fix will be backported to the 3.0.x series in version 3.0.10. (#174) 3.0.9 (2012-08-06) ------------------ This is a bug fix release for the 3.0.x series. Bug Fixes ^^^^^^^^^ - Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/ ``Header.iteritems()`` to correctly return the different values for duplicate keywords (particularly commentary keywords like HISTORY and COMMENT). This makes the old Header implementation slightly more compatible with the new implementation in PyFITS 3.1. (#127) .. note:: This fix did not change the existing behavior from earlier PyFITS versions where ``Header.keys()`` returns all keywords in the header with duplicates removed. PyFITS 3.1 changes that behavior, so that ``Header.keys()`` includes duplicates. - Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it was not restoring the image to its original BSCALE and BZERO values. (#162) - Fixed a bug where opening a file containing compressed image HDUs in 'update' mode and then immediately closing it without making any changes caused the file to be rewritten unncessarily. (#167) - Fixed two memory leaks that could occur when writing compressed image data, or in some cases when opening files containing compressed image HDUs in 'update' mode. (#168) 3.0.8 (2012-06-04) ------------------ Changes in Behavior ^^^^^^^^^^^^^^^^^^^ - Prior to this release, image data sections did not work with scaled data--that is, images with non-trivial BSCALE and/or BZERO values. Previously, in order to read such images in sections, it was necessary to manually apply the BSCALE+BZERO to each section. It's worth noting that sections *did* support pseudo-unsigned ints (flakily). This change just extends that support for general BSCALE+BZERO values. Bug Fixes ^^^^^^^^^ - Fixed a bug that prevented updates to values in boolean table columns from being saved. This turned out to be a symptom of a deeper problem that could prevent other table updates from being saved as well. (#139) - Fixed a corner case in which a keyword comment ending with the string "END" could, in some circumstances, cause headers (and the rest of the file after that point) to be misread. (#142) - Fixed support for scaled image data and psuedo-unsigned ints in image data sections (``hdu.section``). Previously this was not supported at all. At some point support was supposedly added, but it was buggy and incomplete. Now the feature seems to work much better. (#143) - Fixed the documentation to point out that image data sections *do* support non-contiguous slices (and have for a long time). The documentation was never updated to reflect this, and misinformed users that only contiguous slices were supported, leading to some confusion. (#144) - Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY HDUs caused an infinite recursion when validating the object prior to writing to a file. (#145) - Fixed a rare but serious case where saving an update to a file that previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum in saving, could cause the file to be slightly corrupted and unreadable. (#147) - Fixed problems with reading "non-standard" FITS files with primary headers containing SIMPLE = F. PyFITS has never made many guarantees as to how such files are handled. But it should at least be possible to read their headers, and the data if possible. Saving changes to such a file should not try to prepend an unwanted valid PRIMARY HDU. (#157) - Fixed a bug where opening an image with ``disable_image_compression = True`` caused compression to be disabled for all subsequent ``pyfits.open()`` calls. (r1651) 3.0.7 (2012-04-10) ------------------ Changes in Behavior ^^^^^^^^^^^^^^^^^^^ - Slices of GroupData objects now return new GroupData objects instead of extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed FITS_rec slicing, and should have been fixed for GroupData at the same time. The old behavior caused bugs where functions internal to Numpy expected that slicing an ndarray would return a new ndarray. As this is a rare usecase with a rare feature most users are unlikely to be affected by this change. - The previously internal _Group object for representing individual group records in a GroupData object are renamed Group and are now a public interface. However, there's almost no good reason to create Group objects directly, so it shouldn't be considered a "new feature". - An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND keyword was always being set to F if there are not actually any extension HDUs. It was unnecessary to modify this value. Bug Fixes ^^^^^^^^^ - Fixed GroupData objects to return new GroupData objects when sliced instead of _Group record objects. See "Changes in behavior" above for more details. - Fixed slicing of Group objects--previously it was not possible to slice slice them at all. - Made it possible to assign `np.bool_` objects as header values. (#123) - Fixed overly strict handling of the EXTEND keyword; see "Changes in behavior" above. (#124) - Fixed many cases where an HDU's header would be marked as "modified" by PyFITS and rewritten, even when no changes to the header are necessary. (#125) - Fixed a bug where the values of the PTYPEn keywords in a random groups HDU were forced to be all lower-case when saving the file. (#130) - Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was causing some slowdown when opening files containing a large number of extensions, plus a few other small (but not insignficant) performance improvements thanks to Julian Taylor. (#133) - Fixed a regression where header blocks containing invalid end-of-header padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS. Such headers can be parsed again, but a warning is raised, as such headers are not valid FITS. (#136) - Fixed a memory leak where table data in random groups HDUs weren't being garbage collected. (#138) 3.0.6 (2012-02-29) ------------------ Highlights ^^^^^^^^^^ The main reason for this release is to fix an issue that was introduced in PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data to be automatically rescaled--possibly converting the data from ints to floats--as soon as the file is closed, even if the application did not touch the data. Now PyFITS will only rescale the data in an extension when the data is actually accessed by the application. So opening a file in 'update' mode in order to modify the header or append new extensions will not cause any change to the data in existing extensions. This release also fixes a few Windows-specific bugs found through more extensive Windows testing, and other miscellaneous bugs. Bug Fixes ^^^^^^^^^ - More accurate error messages when opening files containing invalid header cards. (#109) - Fixed a possible reference cycle/memory leak that was caught through more extensive testing on Windows. (#112) - Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w' mode. (#112) - Fixed a Windows-only issue where trying to save updates to a resized FITS file could result in a crash due to there being open mmaps on that file. (#112) - Fixed a crash when trying to create a FITS table (i.e. with new_table()) from a Numpy array containing bool fields. (#113) - Fixed a bug where manually initializing an ``HDUList`` with a list of of HDUs wouldn't set the correct EXTEND keyword value on the primary HDU. (#114) - Fixed a crash that could occur when trying to deepcopy a Header in Python < 2.7. (#115) - Fixed an issue where merely opening a scaled image in 'update' mode would cause the data to be converted to floats when the file is closed. (#119) 3.0.5 (2012-01-30) ------------------ - Fixed a crash that could occur when accessing image sections of files opened with memmap=True. (r1211) - Fixed the inconsistency in the behavior of files opened in 'readonly' mode when memmap=True vs. when memmap=False. In the latter case, although changes to array data were not saved to disk, it was possible to update the array data in memory. On the other hand with memmap=True, 'readonly' mode prevented even in-memory modification to the data. This is what 'copyonwrite' mode was for, but difference in behavior was confusing. Now 'readonly' is equivalent to 'copyonwrite' when using memmap. If the old behavior of denying changes to the array data is necessary, a new 'denywrite' mode may be used, though it is only applicable to files opened with memmap. (r1275) - Fixed an issue where files opened with memmap=True would return image data as a raw numpy.memmap object, which can cause some unexpected behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285) - Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3 interacted badly with some other software, namely to vo.table package (and possibly others). (r1320, r1337, and #110) - Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard interrupts) while flushing changes to a FITS file. PyFITS already prevented SIGINTs from causing an incomplete flush, but did not clean up the signal handlers properly afterwards, or reraise the keyboard interrupt once the flush was complete. (r1321) - Fixed a crash that could occur in Python 3 when opening files with checksum checking enabled. (r1336) - Fixed a small bug that could cause a crash in the `StreamingHDU` interface when using Numpy below version 1.5. - Fixed a crash that could occur when creating a new `CompImageHDU` from an array of big-endian data. (#104) - Fixed a crash when opening a file with extra zero padding at the end. Though FITS files should not have such padding, it's not explictly forbidden by the format either, and PyFITS shouldn't stumble over it. (#106) - Fixed a major slowdown in opening tables containing large columns of string values. (#111) 3.0.4 (2011-11-22) ------------------ - Fixed a crash when writing HCOMPRESS compressed images that could happen on Python 2.5 and 2.6. (r1217) - Fixed a crash when slicing an table in a file opened in 'readonly' mode with memmap=True. (r1230) - Writing changes to a file or writing to a new file verifies the output in 'fix' mode by default instead of 'exception'--that is, PyFITS will automatically fix common FITS format errors rather than raising an exception. (r1243) - Fixed a bug where convenience functions such as getval() and getheader() crashed when specifying just 'PRIMARY' as the extension to use (r1263). - Fixed a bug that prevented passing keyword arguments (beyond the standard data and header arguments) as positional arguments to the constructors of extension HDU classes. - Fixed some tests that were failing on Windows--in this case the tests themselves failed to close some temp files and Windows refused to delete them while there were still open handles on them. (r1295) - Fixed an issue with floating point formatting in header values on Python 2.5 for Windows (and possibly other platforms). The exponent was zero-padded to 3 digits; although the FITS standard makes no specification on this, the formatting is now normalized to always pad the exponent to two digits. (r1295) - Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were broken into multiple CONTINUE cards. However, commentary cards are not expected to be found in CONTINUE cards. Instead these long cards are broken into multiple commentary cards. (#97) - GZIP/ZIP-compressed FITS files can be detected and opened regardless of their filename extension. (#99) - Fixed a serious bug where opening scaled images in 'update' mode and then closing the file without touching the data would cause the file to be corrupted. (#101) 3.0.3 (2011-10-05) ------------------ - Fixed several small bugs involving corner cases in record-valued keyword cards (#70) - In some cases HDU creation failed if the first keyword value in the header was not a string value (#89) - Fixed a crash when trying to compute the HDU checksum when the data array contains an odd number of bytes (#91) - Disabled an unnecessary warning that was displayed on opening compressed HDUs with disable_image_compression = True (#92) - Fixed a typo in code for handling HCOMPRESS compressed images. 3.0.2 (2011-09-23) ------------------ - The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate`` function don't get tripped up by blank lines anymore (#14) - The presence, value, and position of the EXTEND keyword in Primary HDUs is verified when reading/writing a FITS file (#32) - Improved documentation (in warning messages as well as in the handbook) that PyFITS uses zero-based indexing (as one would expect for C/Python code, but contrary to the PyFITS standard which was written with FORTRAN in mind) (#68) - Fixed a bug where updating a header card comment could cause the value to be lost if it had not already been read from the card image string. - Fixed a related bug where changes made directly to Card object in a header (i.e. assigning directly to card.value or card.comment) would not propagate when flushing changes to the file (#69) [Note: This and the bug above it were originally reported as being fixed in version 3.0.1, but the fix was never included in the release.] - Improved file handling, particularly in Python 3 which had a few small file I/O-related bugs (#76) - Fixed a bug where updating a FITS file would sometimes cause it to lose its original file permissions (#79) - Fixed the handling of TDIMn keywords; 3.0 added support for them, but got the axis order backards (they were treated as though they were row-major) (#82) - Fixed a crash when a FITS file containing scaled data is opened and immediately written to a new file without explicitly viewing the data first (#84) - Fixed a bug where creating a table with columns named either 'names' or 'formats' resulted in an infinite recursion (#86) 3.0.1 (2011-09-12) ------------------ - Fixed a bug where updating a header card comment could cause the value to be lost if it had not already been read from the card image string. - Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a ``FITS_rec`` object with zero rows is returned rather than ``None``. - The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full keyword+field-specifier value, instead of just the plain keyword (#46) - Fixed a related bug where changes made directly to Card object in a header (i.e. assigning directly to card.value or card.comment) would not propagate when flushing changes to the file (#69) - Fixed a bug where writing a table with zero rows could fail in some cases (#72) - Miscellanous small bug fixes that were causing some tests to fail, particularly on Python 3 (#74, #75) - Fixed a bug where creating a table column from an array in non-native byte order would not preserve the byte order, thus interpreting the column array using the wrong byte order (#77) 3.0.0 (2011-08-23) -------------------- - Contains major changes, bumping the version to 3.0 - Large amounts of refactoring and reorganization of the code; tried to preserve public API backwards-compatibility with older versions (private API has many changes and is not guaranteed to be backwards-compatible). There are a few small public API changes to be aware of: * The pyfits.rec module has been removed completely. If your version of numpy does not have the numpy.core.records module it is too old to be used with PyFITS. * The ``Header.ascardlist()`` method is deprecated--use the ``.ascard`` attribute instead. * ``Card`` instances have a new ``.cardimage`` attribute that should be used rather than ``.ascardimage()``, which may become deprecated. * The ``Card.fromstring()`` method is now a classmethod. It returns a new ``Card`` instance rather than modifying an existing instance. * The ``req_cards()`` method on HDU instances has changed: The ``pos`` argument is not longer a string. It is either an integer value (meaning the card's position must match that value) or it can be a function that takes the card's position as it's argument, and returns True if the position is valid. Likewise, the ``test`` argument no longer takes a string, but instead a function that validates the card's value and returns True or False. * The ``get_coldefs()`` method of table HDUs is deprecated. Use the ``.columns`` attribute instead. * The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns`` instead (though in general you shouldn't mess with it directly--it might become internal at some point). * ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of ``startColumn`` and ``endColumn`` (these are rarely created manually, so it's unlikely that this change will affect anyone). * ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new ``BinTableHDU`` instance. * Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU classes. They are now public interfaces, wheres previously they were private and prefixed with underscores. * Possibly others--please report if you find any changes that cause difficulties. - Calls to deprecated functions will display a Deprecation warning. However, in Python 2.7 and up Deprecation warnings are ignored by default, so run Python with the `-Wd` option to see if you're using any deprecated functions. If we get close to actually removing any functions, we might make the Deprecation warnings display by default. - Added basic Python 3 support - Added support for multi-dimensional columns in tables as specified by the TDIMn keywords (#47) - Fixed a major memory leak that occurred when creating new tables with the ``new_table()`` function (#49) be padded with zero-bytes) vs ASCII tables (where strings are padded with spaces) (#15) - Fixed a bug in which the case of Random Access Group parameters names was not preserved when writing (#41) - Added support for binary table fields with zero width (#42) - Added support for wider integer types in ASCII tables; although this is non- standard, some GEIS images require it (#45) - Fixed a bug that caused the index_of() method of HDULists to crash when the HDUList object is created from scratch (#48) - Fixed the behavior of string padding in binary tables (where strings should be padded with nulls instead of spaces) - Fixed a rare issue that caused excessive memory usage when computing checksums using a non-standard block size (see r818) - Add support for forced uint data in image sections (#53) - Fixed an issue where variable-length array columns were not extended when creating a new table with more rows than the original (#54) - Fixed tuple and list-based indexing of FITS_rec objects (#55) - Fixed an issue where BZERO and BSCALE keywords were appended to headers in the wrong location (#56) - ``FITS_record`` objects (table rows) have full slicing support, including stepping, etc. (#59) - Fixed a bug where updating multiple files simultaneously (such as when running parallel processes) could lead to a race condition with mktemp() (#61) - Fixed a bug where compressed image headers were not in the order expected by the funpack utility (#62)
jperkin
pushed a commit
that referenced
this pull request
Mar 14, 2014
--- 3.1 --- * Issue #161: Restore Features functionality to allow backward compatibility (for Features) until the uses of that functionality is sufficiently removed. ----- 3.0.2 ----- * Correct typo in previous bugfix. ----- 3.0.1 ----- * Issue #157: Restore support for Python 2.6 in bootstrap script where ``zipfile.ZipFile`` does not yet have support for context managers. --- 3.0 --- * Issue #125: Prevent Subversion support from creating a ~/.subversion directory just for checking the presence of a Subversion repository. * Issue #12: Namespace packages are now imported lazily. That is, the mere declaration of a namespace package in an egg on ``sys.path`` no longer causes it to be imported when ``pkg_resources`` is imported. Note that this change means that all of a namespace package's ``__init__.py`` files must include a ``declare_namespace()`` call in order to ensure that they will be handled properly at runtime. In 2.x it was possible to get away without including the declaration, but only at the cost of forcing namespace packages to be imported early, which 3.0 no longer does. * Issue #148: When building (bdist_egg), setuptools no longer adds ``__init__.py`` files to namespace packages. Any packages that rely on this behavior will need to create ``__init__.py`` files and include the ``declare_namespace()``. * Issue #7: Setuptools itself is now distributed as a zip archive in addition to tar archive. ez_setup.py now uses zip archive. This approach avoids the potential security vulnerabilities presented by use of tar archives in ez_setup.py. It also leverages the security features added to ZipFile.extract in Python 2.7.4. * Issue #65: Removed deprecated Features functionality. * Pull Request #28: Remove backport of ``_bytecode_filenames`` which is available in Python 2.6 and later, but also has better compatibility with Python 3 environments. * Issue #156: Fix spelling of __PYVENV_LAUNCHER__ variable.
jperkin
pushed a commit
that referenced
this pull request
Mar 17, 2014
# Release Notes ## 1.0.0 ### External changes * Assume 'mocha' has been required when requiring 'mocha/setup'. * Provide shortcuts for integrating with specific test library i.e. `require 'mocha/test_unit'` or `require 'mocha/mini_test'` as alternatives to `require 'mocha/setup'`. * Do not automatically try to integrate with test libraries. Since the automatic test library integration functionality requires the test library to be loaded and this doesn't usually happen until *after* the bundle is loaded, it makes things simpler if we use `require 'mocha/setup'` to explicitly setup Mocha when we know the test library has been loaded. Fixes #146 & #155. * Consider stubs on superclasses if none exist on primary receiver. Largely based on changes suggested by @ccutrer in #145. Note: this may break existing tests which rely on the old behaviour. Stubbing a superclass method and then invoking that method on a child class would previously cause an unexpected invocation error. By searching up through the inheritance hierarchy for each of the delegate mock objects, we can provide more intuitive behaviour. Instead of an unexpected invocation error, invoking the method on the child class will cause the stubbed method on the superclass to be used. * Avoid recursion when constructing unexpected invocation message. Fixes #168. * Add explanation of method dispatch. Heavily based on the relevant jMock v1 documentation. Fixes #172. * Make class_eval line number more accurate. This sets the line number as the line number of the `def` statement. Closes #169. * Allow nesting of `responds_with` parameter matcher. Closes #166. * Define `Mocha` module before it's referenced. The test helper defines a class `TestCase` within the `Mocha` module. When running the tests inside the bundle, the `Mocha` module happens to be defined at this point. However when running the tests outside the bundle, it is not defined and so an exception is raised: `uninitialized constant Mocha (NameError)`. Fixes #163. * Document lack of thread-safety. Fixes #154. * Document how to use the build-matrix script. Fixes #160. * Stubbing non-public method should use same visibility. This will probably break some existing tests that were somehow relying on the stubbed method being public while the original method was protected or private. Fixes #150. ### Internal changes * Use lastest Rubygems in Travis CI builds. * Run the standard test suite against Ruby 2.1.0 in the build matrix. * Run integration tests against Ruby 2.0.0 with latest Test::Unit gem in the build matrix. * Test::Unit is not available in Ruby v1.9.3 standard library, so remove it from the build matrix. * Force use of Test::Unit runner, etc in relevant integration tests. Prior to this, I don't think we were really testing the Mocha integration with Test::Unit much, because, although `TestUnitTest` was a subclass of `Test::Unit::TestCase`, the important test case instances are the temporary ones built by `TestRunner#run_as_test` et al. Prior to this change, these would only have used Test::Unit where MiniTest was not available *at all* i.e. only in early versions of Ruby and when the MiniTest gem was not loaded. * Reset environment variables between build matrix builds. * Only activate integration with relevant test library for each of the integration tests. * Include standard build combinations from Travis CI config i.e. builds using standard library versions of test libraries. * Fix `build-matrix.rb` script. Also use `.travis.yml` to decide what combinations to run. This means we can now simulate the Travis CI build locally and avoid duplication. Fixes #157. * Remove Ruby version map from build matrix script. I'm using the `rbenv-aliases` plugin to alias minor versions to the relevant patch version.
jperkin
pushed a commit
that referenced
this pull request
Mar 18, 2014
# Release Notes ## 1.0.0 ### External changes * Assume 'mocha' has been required when requiring 'mocha/setup'. * Provide shortcuts for integrating with specific test library i.e. `require 'mocha/test_unit'` or `require 'mocha/mini_test'` as alternatives to `require 'mocha/setup'`. * Do not automatically try to integrate with test libraries. Since the automatic test library integration functionality requires the test library to be loaded and this doesn't usually happen until *after* the bundle is loaded, it makes things simpler if we use `require 'mocha/setup'` to explicitly setup Mocha when we know the test library has been loaded. Fixes #146 & #155. * Consider stubs on superclasses if none exist on primary receiver. Largely based on changes suggested by @ccutrer in #145. Note: this may break existing tests which rely on the old behaviour. Stubbing a superclass method and then invoking that method on a child class would previously cause an unexpected invocation error. By searching up through the inheritance hierarchy for each of the delegate mock objects, we can provide more intuitive behaviour. Instead of an unexpected invocation error, invoking the method on the child class will cause the stubbed method on the superclass to be used. * Avoid recursion when constructing unexpected invocation message. Fixes #168. * Add explanation of method dispatch. Heavily based on the relevant jMock v1 documentation. Fixes #172. * Make class_eval line number more accurate. This sets the line number as the line number of the `def` statement. Closes #169. * Allow nesting of `responds_with` parameter matcher. Closes #166. * Define `Mocha` module before it's referenced. The test helper defines a class `TestCase` within the `Mocha` module. When running the tests inside the bundle, the `Mocha` module happens to be defined at this point. However when running the tests outside the bundle, it is not defined and so an exception is raised: `uninitialized constant Mocha (NameError)`. Fixes #163. * Document lack of thread-safety. Fixes #154. * Document how to use the build-matrix script. Fixes #160. * Stubbing non-public method should use same visibility. This will probably break some existing tests that were somehow relying on the stubbed method being public while the original method was protected or private. Fixes #150. ### Internal changes * Use lastest Rubygems in Travis CI builds. * Run the standard test suite against Ruby 2.1.0 in the build matrix. * Run integration tests against Ruby 2.0.0 with latest Test::Unit gem in the build matrix. * Test::Unit is not available in Ruby v1.9.3 standard library, so remove it from the build matrix. * Force use of Test::Unit runner, etc in relevant integration tests. Prior to this, I don't think we were really testing the Mocha integration with Test::Unit much, because, although `TestUnitTest` was a subclass of `Test::Unit::TestCase`, the important test case instances are the temporary ones built by `TestRunner#run_as_test` et al. Prior to this change, these would only have used Test::Unit where MiniTest was not available *at all* i.e. only in early versions of Ruby and when the MiniTest gem was not loaded. * Reset environment variables between build matrix builds. * Only activate integration with relevant test library for each of the integration tests. * Include standard build combinations from Travis CI config i.e. builds using standard library versions of test libraries. * Fix `build-matrix.rb` script. Also use `.travis.yml` to decide what combinations to run. This means we can now simulate the Travis CI build locally and avoid duplication. Fixes #157. * Remove Ruby version map from build matrix script. I'm using the `rbenv-aliases` plugin to alias minor versions to the relevant patch version.
jacques
pushed a commit
to oldbayindustries/pkgsrc
that referenced
this pull request
Apr 7, 2014
Upstream changes since 1.0: log4cplus 1.1.1 - FileAppender - Accept also std::ios_base::ate as "append to a log file" specification. log4cplus 1.1.1-RC4 - Fixed bug TritonDataCenter#156 - Messages are truncated when produced using the LOG4CPLUS_*_FMT() macros. - Fixed bug TritonDataCenter#157 - Fedora package build failure. - Improved log4cplus initialization: - Use APC to initialize log4cplus outside loader lock. - Use Microsoft C runtime library TLS callbacks to initialize log4cplus as static library. - Warn during compilation that automatic initialization is not possible when log4cplus is being compiled with static Microsoft C runtime library. - Provide log4cplus::initialize() function to allow users to initialize log4cplus in situations where automatic initialization is not possible. - Several improvements to CMake build: - Fixed OpenBSD + CMake builds. - Fixed issues with Visual Studio 2005 CMake builds. - Added support for CMake builds on Android with NDK. (Sergey Nikulov) - The defines.hxx.cmake file is now generated out of defines.hxx.in. - Library version is parsed out of version.h. (Sergey Nikulov) - MDC formatter for PatternLayout ("%X") now expands into list of key value pairs if no specific key is given. (Yaqian Shen) - Avoid clock_nanosleep() on Android. - ServerSocket::accept() can now be interrupted from another thread using new function ServerSocket::interruptAccept(). log4cplus 1.1.1-RC3 - Fixed another MinGW related build failure. - Fixed mismatched #if/#endif in Windows builds. log4cplus 1.1.1-RC2 - Allow to disable TLS usage in macros through LOG4CPLUS_MACRO_DISABLE_TLS preprocessor symbol. - Fixed compilation with Clang on Cygwin. - Fixed SIGSEGV when built with some MinGW distributions. - Fixed build failure when using -march=i386. - Implemented thread callback to initialize log4cplus for Visual Studio builds of static library. - Fixed bug TritonDataCenter#154 - getHostname() failure because of uninitialized WinSock. - Fixed detection of C++11 thread_local keyword. - Fixed builds using DevKit-tdm-32-4.5.2-20111229-1559. log4cplus 1.1.1-RC1 - Improved documentation for various classes. - Cherry-picked various small improvements from trunk. - Fixed Unicode builds on *NIX. - Fixed static library builds from Visual Studio project. - Suppressed warning C4127 from MSVC. (Chris Steenwyk) - Improved MinGW32 and MinGW64 toolchains compatiblity. - Fixed encoding handling in Properties class. - Added include directive for properties files. (Jukka Lantto) - Added colored output for Win32ConsoleAppender. (Konstantin Baumann) - (Re)Introduced support for C++Builder (XE3) - Reimplemented acceptSocket() using select() on Windows to allow interrupting the accept() call from different thread. log4cplus 1.1.0 - Fixed MacOS X support - Reimplemented semaphores using named ones for Apple builds. - Fixed resource leak on failure in openSocket(). - Improved configuration file modification check to include file size, in addition to file modification time. log4cplus 1.1.0-RC10 - Fixed non-STLPort4 builds with Solaris Studio. Switch '-library=stlport4' is only added if CXXFLAGS does not already contain a switch matching -library=(stlport4|stdcxx4|Cstd). - Fixed --disable-shared MinGW builds. - Fixed non-working MinGW DLL binaries. DllMain() was not being called because of missing extern "C" in its definition. - CMake build configuration checks have been improved. (Chernyshev Vyacheslav) - GCC switch -O2 is only added if CXXFLAGS does not already contain any other -O. - Improved logging speed using SysLogAppender and Log4jUdpAppender by optimizations in both the loggers and in common sockets code. - FileAppender locale can now be specified in properties files using Locale property. See FileAppender Doxygen documentation for more details. log4cplus 1.1.0-RC9 - Improved Log4jUdpAppender compatibility with Chainsaw. - Fixed crash, bugs #3467112 and #3563699, related to thread-local storage destruction. - Fixed build with Visual Studio 2005, bug #3565529. (xg00) - Created Cygwin port's .cygport definition for log4cplus. - Improved hiding of private symbols using GCC's __attribute__((visibility("hidden"))) and Solaris Studio's __hidden. - Fixed build in environments where DEBUG (and other log level names) are macros. (Chernyshev Vyacheslav) - Improved configuration of threads support. (Jens Rehsack) log4cplus 1.1.0-RC8 - Turned on __thread (TLS) detection on NetBSD 5.1.0 and later that has been previously disabled. - Improved compatibility with log4cplus 1.0.x: allow using log4cplus 1.0.x log level to string callbacks in 1.1.x. - Improved various M4 macros. - Added detection and use C++11 thread_local. - Fixed XML entities escaping in Log4jUdpAppender. - Re-added synchronization between ConsoleAppender and LogLog. - Changed C logger API to return int instead of bool. - Added C logger API to Visual Studio 2010 projects. - Implemented remote syslog logging using UDP in SysLogAppender. - Enabled SysLogAppender on Windows with only remote syslog logging enabled. log4cplus 1.1.0-RC7 IMPORTANT: Builds with --with-iconv configure switch now assume UTF-8 for plain char strings. - Bumped up SO version for UDP sockets support related changes. - Removed Windows CE support. - Regenerated with Automake 1.12.2. - Fixed Fedora RPM builds spec file. - Implemented log4cplus.disableOverride similar to log4j's log4j.disableOverride. - Improved support of profiling and debugging builds with Sun CC. - Added documentation for configure script options. - Added detection and use of clock_nanosleep(). - Disabled __thread (TLS) detection for NetBSD. It is broken there. - New appender: Log4jUdpAppender. It allows logging using UDP with log4j XML payload to Chainsaw or Log2Console. (Siva Chandran P) - Added support for __func__ as function name source for logging events. log4cplus 1.1.0-RC6 - Fixed compilation for build with wchar_t being alias to unsigned short (/Zc:wchar_t-) (Windows). - Added new appender CLFSAppender (experimental), based on Microsoft Common Log File System API. - Added new appender Qt4DebugAppender (experimenta), based on Qt4's qDebug(), qWarning() and qCritical() functions. - Fixed bug #3530769 - compilation issues with Visual Studio 2011. - Added log4cplus.quietMode property handling to PropertyConfigurator. - Added #pragma once to all headers. - Implemented Time::gettimeofday() using Win32 API's GetSystemTimeAsFileTime(). - Moved file based locking from FileAppender to Appender to make it available for all appenders. - Changed Windows configuration to use __declspec(thread) when compiling for Windows Vista or later and TlsAlloc() otherwise. - Implemented %r PatternLayout format specifier - miliseconds since process start. - Fixed bug #3101459 - TTCCLayout time is not in milliseconds since process start by default. log4cplus 1.1.0-RC5 - Fixed single threaded log4cplus build issues. - Added ability to log to std::cerr (Andreas Bießmann). - Fixed disabling of LOG4CPLUS_*_FMT() macros. log4cplus 1.1.0-RC4 IMPORTANT: Compilation with Solaris Studio now depends on STLPort (-library=stlport4 switch). The default Cstd library is not conforming enough for use in log4cplus. - Improved behaviour of log4cplus as a component of larger CMake based project (Andreas Bießmann). - Updated various Autoconf detection scripts in m4/ directory to newer versions. - Fixed some signedness and overflow warnings. - Improved Autotools build system's behaviour for cross compilation. - Added detection of C++11 <atomic> header and related functions. Implemented SharedObject reference counting using C++11 atomics where possible. - Fixed compilation with GCC 4.6 in C++11 mode. - Fixed some single-threaded compilation and run time issues. - Fixed bug #3520891 - FileAppender buffering issue. - Updated to Autoconf 2.69, Automake 1.12 and Libtool 2.4.2. - Documented build procedure for Solaris Studio. - Improved support for Solaris Studio in configure.in. log4cplus 1.1.0-RC3 - Fixed log4cplusS.vcxproj - Added missing source files to the project. log4cplus 1.1.0-RC2 - CMake build system fixes. - Fixed TTCCLayout double time stamp issue. log4cplus 1.1.0-RC1 Important changes relative to PRODUCTION_1_0_x branch: - Added AsyncAppender. - Added simple C interface for interoperability with C. - Added inter-process file locking to file appenders to allow logging into a single log file from multiple processes. - Added Mapped Diagnostic Context (MDC) and associated converter (%X). - Added alternative thread identification (%T) converter to pattern layout. - Added function name converter (%M). - Added wchar_t <-> char conversion implementations based on standard C locale functions and based on iconv(). - Added DeviceAppender to allow use of Boost.IOStream's Sink as appender. - Added LOG4CPLUS_*_FMT() macros to allow printf-like formatted output where it is possible. - Logging macros now accept both logger name as string and Logger instance as their first parameter.
jperkin
pushed a commit
that referenced
this pull request
Aug 30, 2014
jperkin
pushed a commit
that referenced
this pull request
Dec 9, 2014
4.11 2014-12-02 [ SPEC / BUG FIXES ] - more hash key ordering bugs fixed in HTML attribute output (GH #158, thanks to Marcus Meissner for the patch and test case) [ REFACTORING ] - escapeHTML (and unescapeHTML) have been refactored to use the functions exported by the HTML::Entities module (GH #157) - change BUILD_REQUIRES to TEST_REQUIRES in Makefile.PL as these are test dependencies not build dependencies (GH #159) [ DOCUMENTATION ] - replace any remaining uses of indirect object notation (new Object) with the safer Object->new syntax (GH #156)
jperkin
pushed a commit
that referenced
this pull request
Mar 16, 2015
Changelog: Summary of changes from RPM 4.12.0 Package building Fix RPMTAG_ARCHIVESIZE / RPMTAG_LONGARCHIVESIZE generation (RhBug:1142949) Reduce double separator in dependency EVR error into a warning (RhBug:1065563) Build process Add testcase for RhBug:1142949 Summary of changes from RPM 4.11.2 General bugfixes and enhancements New --nopretrans and --noposttrans disabler switches (previously tied to --nopre/--nopost) New --noplugins switch to disable all plugins New --reinstall mode which can handle changing file policies (RhBug:966715) New --exportdb and --importdb switches in rpmdb(8) New --recommends, --suggests, --supplements and --enhances query aliases for querying weak dependencies New optional payload format to support large (> 4GB) files within packages (ticket #41) New rpm2archive utility for converting rpm payload to tar archives Fix curl globbing being enabled on remote retrieval (RhBug:1076277) Fix $1 argument to %pretrans, %posttrans and %verifyscript to behave like all other scripts Fix mixed binary + source rpm installation progress (RhBug:984724) Fix file actions sometimes carrying state across multiple rpmtsRun() calls (RhBug:1076552) Fix duplicate usernames causing false positives on verification (ticket #872) Fix ordering to prefer self-provides on ordering when appropriate (RhBug:1111349) Fix a double-free on unpadded signature header Add support for "new" architectures: m68k (again) Sparc Niagara (detection) ARM v6 and v7 (hardware FPU detection) Documentation, translation updates Package building New warnings on invalid / dubious spec constructs: Detect multiple %files sections per package Detect empty %files -f manifest files Detect multiple %changelog sections per spec Detect duplicate Group, Summary, Description, Distribution, Vendor, License and Packager tags per package (ticket #27) Add support for specifying weak dependencies (Recommends, Suggests, Supplements and Enhances) tags in spec Add support for automatic generation of weak dependencies (RhBug:1117912) New %{load:<path>} macro to load custom macro files (from eg spec) New %_smp_ncpus_max macro to configure CPU limit for parallel builds (related to RhBug:669638) New %make_build macro for hiding parallel-build magic from specs (ticket #115) New %_rundir macro for referring to /run (formerly /var/run) directory New %__gpg_reserved_space macro allows preallocating space for signatures which allows very fast package signing Add support for detecting and warning on macro scoping violations (RhBug:552944) when %trace is active Add support for %autosetup -S git_am variant (RhBug:???) Fix parametrized macros eating newlines (RhBug:1045723) Fix around macro scoping problems in %autosetup (RhBug:???) Fix ELF soname dependencies getting generated for non-library DSO's too (RhBug:???) Fix garbage sonames sometimes getting added as dependencies (ticket #158) Fix various issues in dependency generator Fix libtool dependency generation with libtool >= 2.4.2 version Fix external dependency generator to use the same generators as internal one by default Fix crash on missing name-argument to %package (RhBug:1123722) Fix non-canonical path usage for matching in debugedit (RhBug:1077148) Fix PPC ABI change in default configuration (RhBug:1085127) Removed features Remove support for %_noPayloadPrefix (rpm < 3.0.5 compatibility) Remove experimental support for "collections", added in 4.9.0 API changes New rpmtxnBegin() and rpmtxnEnd() to permit clients to control transaction locking New rpmtsImportHeader() to permit importing "detached" headers into rpmdb New rpmtsAddReinstallElement() function for reinstalling packages New rpmdbIndexIteratorNextTd() provides a nicer iterator interface to rpmdb indexes New file info set iterator functions: rpmfiFLinks(), rpmfiFindFN(), rpmfiStat()... New file info set iterator functions for accessing original paths from relocated packages: rpmfiOFN(), rpmfiOBN(), rpmfiODN(), rpmfiFindOFN() New archive API on top of file info iterators: (FIXME: describe...) New "rpmfiles" object + related API for random access to file info sets Many new file info set iteration modes (FIXME: describe...) New rpmteFiles() to return transaction element file info set, to be used instead of rpmteFI() New rpmdsTagF(), rpmdsTagEVR(), rpmdsD(), rpmdsPutToHeader(), rpmdsTi(), rpmdsTagTi() and rpmdsSinglePoolTix() methods to rpmds objects Internal improvements and cleanups Lots of cleanups all over the codebase Former "file state manager" eliminated and rewritten "Package state manager" largely eliminated File IO subsystem sanity & improvements Berkeley DB dependencies isolated to backend code File info sets are finally properly opaque Handle trigger indexes within rpmds objects Partial thread-safety by added locks/mutexes (FIXME: describe...) Configuration and macros Logging Keyrings and keys ... Fix symlink timestamp on install on systems which support it Fix problematic license on internal mergesort() implementation (removed) Fix rpm dependency on libselinux (moved to a plugin) Fix installation to always use header, not payload metadata Fix global macro state side-effects from rpmInstallSourcePackage() Fix oversized stack allocation on verify (RhBug:1106594) Fix buffer overflows on malformed macro define/undefine (RhBug:1087000) Optimize package generation and signing considerably Optimize file requires processing Optimize installed dependency processing Plugins A new plugin system, internal-only for now (FIXME: describe...) Plugins included in this release: systemd_inhibit plugin - preventing shutdown while transaction is in progress (RhBug:1109927) selinux plugin - basic SELinux support, previously in librpm directly syslog - example plugin for logging rpm activity to syslog Python bindings Database index iteration returns proper types for non-strings New rpm.fi methods: FLinks(), FindFN(), OFN()... New fi.FLinks() method added New rpm.files object + related API for random access to file info sets New rpm.archive object + related API for manipulating package payloads New te.Files() method added New addReinstall() method in transaction set objects (related to RhBug:966715, RhBug:1071854...) New rpm.strpool object for utilizing shared string pool with eg rpm.fi and rpm.ds objects New rpm.header_magic constant exported Fix several Python 3 compatibility issues (RhBug:1064758 Fix build- and sign-module initialization (RhBug:1064758) Fix sign-module missing module methods Fix incompatible module name usage (foomodule.so vs foo.so) Fix misc Python 2 vs 3 API difference issues ... FIXME:this list is very incomplete Lua interface New rpm.load() function for loading macro files Build process New test-cases for various issues Fix dist tarballs to use PAX format to overcome UID/GID limitations Fix in-tree python binding build with setup.py (related to RhBug:531543) Fix librpmsign library to follow same versioning as other rpm libraries for consistency's sake Summary of changes from RPM 4.11.1 General bugfixes and enhancements Fix removed symlinks affecting fingerprinting (RhBug:???) Fix bogus dependency check errors from installed packages with self-obsoletes and -conflicts Fix bogus header growth on export in some circumstances, such as install (RhBug:953719) Fix byteorder for 64bit tags on big-endian systems (RhBug:1012946) Fix signature generation using RPMSIGTAG_LONGSIZE when not needed (RhBug:1012595) Fix segfault executing a -p <lua> scriptlet without a body (RhBug:1004062) Fix failure to install relocated package with unowned directories (RhBug:1001553) Fix scriptlets in relocatable packages not always executing with $RPM_INSTALL_PREFIX* defined (RhBug:979443) Fix RPMTAG_NOSOURCE and RPMTAG_NOPATCH tags defined as non-arrays (RhBug:991329) Fix a possible loophole in file triplet sanity-checking Fix name service initialization where passwd and group service differs from host (ticket #157) Add support for ppc64le architecture Package building Fix double-free on %caps() wildcard %files entry (RhBug:956190) Fix sub-package names not getting sanity-checked (RhBug:1039520) Fix invalid separators in EVR passing sanity checking Fix some invalid characters in dependency range operators passing sanity checking Fix autogenerated dependencies bypassing sanity-checking (related to RhBug:503846) Fix python libdirs in non-root prefix not getting bytecompiled (RhBug:868332) Fix (remove) bogus __find_requires|provides macro definitions in macros.perl (RhBug:1043149) Fix (really) debugedit choking on .debug_gdb_scripts section (SuseBug:818502) Fix %autosetup git patch application to handle file additions (RhBug:1059285) Add automatic generation for appdata() and application() provides Add support for (quoted) whitespace in automatically generated dependencies (RhBug:503846) Python bindings Fix mode and flags not honored when reopening a file descriptor as rpm.fd Fix RPMFILE_ICON and RPMFILE_SPECFILE constants missing Fix rpm.dsSingle() swapped arguments (regession introduced in rpm 4.8.0) Fix Python 3 compatibility issues in rpm.TransactionSet class Fix module import succeeding on rpm initialization failure Add .open() class-method to rpm.fd Add open-mode and -flags to rpm.fd as properties Add support for reopening an rpm.fd file descriptor Add accessor for spec %check section Add bindings for rpm stringpool Add support for shared stringpool with rpm.fi and rpm.ds objects (optional pool argument to constructor) Internal improvements and cleanups Fix minor memory leak in %files parsing Fix rpmstrPoolRehash() missing last id Fix string pool artifacts (unreliable rpmstrPoolNumStr(), empty strings showing up on rehash etc) caused by dummy entries Fix unnecessary /proc dependency if getauxval(3) is available Fix various minor issues in beecrypt crypto backend Fix possible mishandling of handing environment open on EACCESS and EROFS returns Optimize / cleanup %attr() and %defattr() string storage Optimize dependency set management in file classifier Optimize MPI length validation Optimize beecrypt crypto backend Build process Add upport 7za and 7z as alternatives to 7-zip Fix an include portability issue Add several new test-cases
jperkin
pushed a commit
that referenced
this pull request
Mar 16, 2015
Make DB_SIGNINGTABLE symbol available in Lua scripts. Fix bug #214: Handle arbitrarily large From: fields. LIBOPENDKIM: Fix bug #213: Remove "dkim_default_senderhdrs" from dkim.h. LIBOPENDKIM: Fix bug #219: Unresolved CNAMEs are not failures, according to the DNS (see RFC6604), so report them as NXDOMAIN or similar. 2.10.0 2014/12/27 Feature request #182: Remove "AddAllSignatureResults". All signature results will now be added via Authentication-Results header fields. Feature request #180: Rename "LDAPSoftStart" to "SoftStart" and apply it to SQL connections as well. Feature request #179: Add "IgnoreMalformedMail" option. Fix bug #183: Discontinue support for ADSP. This removes the following configuration file items: AddAllSignatureResults LocalADSP ADSPAction NoDiscardableMailTo ADSPNoSuchDomain On-PolicyError BogusPolicy SendADSPReports DisableADSP SenderHeaders LDAPSoftStart UnprotectedPolicy Make "rrvs" and "smime" recognized Authentication-Results methods. LIBOPENDKIM: Feature request #157: Add dkim_mail_parse_multi(). LIBOPENDKIM: Feature request #185: Add dkim_set_dnssec(). LIBOPENDKIM: Fix bug #183: Discontinue support for ADSP. This means all of the following: - the dkim_policy_t type has been removed - the DKIM_POLICY_* constants have been removed - the DKIM_PRESULT_* constants have been removed - passing DKIM_OPTS_SENDERHDRS to dkim_options() now results in an error - the DKIM_PSTATE structure has been removed - all of the following functions have been removed: dkim_policy(), dkim_policy_dnssec(), dkim_policy_getqueries(), dkim_policy_getreportinfo(), dkim_policy_state_free(), dkim_policy_state_new(), dkim_policy_syntax(), dkim_getpolicystr(), dkim_getpresult(), dkim_getpresultstr(), dkim_set_policy_lookup(), dkim_test_adsp() LIBOPENDKIM: DKIM_LIBFLAGS_STRICTHDRS now also confirms syntactical validity of the From field before proceeding with a signing or verifying operation. CONTRIB: Fix bug #207: Clean up the "stats" directory. CONTRIB: Add "repute" directory which could eventually replace the PHP implementation. CONTRIB: Patches to systemd and init/redhat.
jperkin
pushed a commit
that referenced
this pull request
Apr 3, 2015
Remove DateY and replace it by real XY datetime, date, time and timedelta support. (#188) Introduce new XY configuration options: `xrange`, `x_value_formatter`. Add show_x_labels option to remove them and the x axis. Set print_values to False by default. Fix secondary serie text values when None in data. (#192) V 1.6.2 Add margin_top, margin_right, margin_bottom, margin_left options which defaults to margin. (thanks djt) Update django mime parameter from mimetype to content_type. (thanks kswiat) Allow a color and a style parameter to value metadata. V 1.6.1 Fix Decimal incompatibility V 1.6.0 Adds config option missing_value_fill_truncation. (thanks sirlark) Avoid HTTP 301 Moved Permanently (thanks jean) Add a Django response method (thanks inlanger) Fix setup.py (#170) Fix format error on list like in table Add legend_at_bottom_columns option to specify number of columns in legend when at bottom. (#157) Fix secondary interpolation (#165) Adds an extra class (axis) to horizontal guides if the label is "0" (#147) (thanks sirlark) Add line stroke customization parameters to style.py (#154) (thanks blakev)
jperkin
pushed a commit
that referenced
this pull request
Apr 16, 2015
4.14 2015-04-01 [ RELEASE NOTES ] - This release removes the AUTOLOAD and compile optimisations from CGI.pm that were introduced into CGI.pm twenty (20) years ago as a response to its large size, which meant there was a significant compile time penalty. - This optimisation is no longer relevant and makes the code difficult to deal with as well as making test coverage metrics incorrect. Benchmarks show that advantages of AUTOLOAD / lazy loading / deferred compile are less than 0.05s, which will be dwarfed by just about any meaningful code in a cgi script. If this is an issue for you then you should look at running CGI.pm in a persistent environment (FCGI, etc) - To offset some of the time added by removing the AUTOLOAD functionality the dependencies have been made runtime rather than compile time. The POD has also been split into its own file. CGI.pm now contains around 4000 lines of code, which compared to some modules on CPAN isn't really that much - This essentially deprecates the -compile pragma and ->compile method. The -compile pragma will no longer do anything, whereas the ->compile method will raise a deprecation warning. More importantly this also REMOVES the -any pragma because as per the documentation this pragma needed to be "used with care or not at all" and allowing arbitrary HTML tags is almost certainly a bad idea. If you are using the -any pragma and using arbitrary tags (or have typo's in your code) your code will *BREAK* - Although this release should be back compatible (with the exception of any code using the -any pragma) you are encouraged to test it throughly as if you are doing anything out of the ordinary with CGI.pm (i.e. have bugs that may have been masked by the AUTOLOAD feature) you may see some issues. - References: GH #162, GH #137, GH #164 [ FEATURES ] - CGI::Carp now has $CGI::Carp::FULL_PATH for displaying the full path to the offending script in error messages - CGI now has env_query_string() for getting the value of QUERY_STRING from the environment and not that fiddled with by CGI.pm (which is what query_string() does) (GH #161) - CGI::ENCODE_ENTITIES var added to control which chracters are encoded by the call to the HTML::Entities module - defaults to &<>"\x8b\x9b' (GH #157) [ SPEC / BUG FIXES ] - Add the multi_param method to :cgi export (thanks to xblitz for the patch and tests. GH #167) - Fix warning for lack of HTTP_USER_AGENT in CGI::Carp (GH #168) - Fix imports when called from CGI::Fast, restores the import of CGI functions into the callers namespace for users of CGI::Fast (GH leejo/cgi-fast#11 and GH leejo/cgi-fast#12) [ INTERNALS ] - Remove dependency on constant - internal DEBUG, XHTML_DTD and EBCDIC constants changes to $_DEBUG, $_XHTML_DTD, and $_EBCDIC [ DOCUMENTATION ] - Add missing documentation for env variable fetching routines (GH #163)
jperkin
pushed a commit
that referenced
this pull request
Apr 24, 2015
4.15 2015-04-20 [ RELEASE NOTES ] - This release removes the AUTOLOAD and compile optimisations from CGI.pm that were introduced into CGI.pm twenty (20) years ago as a response to its large size, which meant there was a significant compile time penalty. - This optimisation is no longer relevant and makes the code difficult to deal with as well as making test coverage metrics incorrect. Benchmarks show that advantages of AUTOLOAD / lazy loading / deferred compile are less than 0.05s, which will be dwarfed by just about any meaningful code in a cgi script. If this is an issue for you then you should look at running CGI.pm in a persistent environment (FCGI, etc) - To offset some of the time added by removing the AUTOLOAD functionality the dependencies have been made runtime rather than compile time. The POD has also been split into its own file. CGI.pm now contains around 4000 lines of code, which compared to some modules on CPAN isn't really that much - This essentially deprecates the -compile pragma and ->compile method. The -compile pragma will no longer do anything, whereas the ->compile method will raise a deprecation warning. More importantly this also REMOVES the -any pragma because as per the documentation this pragma needed to be "used with care or not at all" and allowing arbitrary HTML tags is almost certainly a bad idea. If you are using the -any pragma and using arbitrary tags (or have typo's in your code) your code will *BREAK* - Although this release should be back compatible (with the exception of any code using the -any pragma) you are encouraged to test it throughly as if you are doing anything out of the ordinary with CGI.pm (i.e. have bugs that may have been masked by the AUTOLOAD feature) you may see some issues. - References: GH #162, GH #137, GH #164 [ SPEC / BUG FIXES ] - make the list context warning in param show the filename rather than the package so we have more information on exactly where the warning has been raised from (GH #171) - correct self_url when PATH_INFO and SCRIPT_NAME are the same but we are not running under IIS (GH #176) - Add the multi_param method to :cgi export (thanks to xblitz for the patch and tests. GH #167) - Fix warning for lack of HTTP_USER_AGENT in CGI::Carp (GH #168) - Fix imports when called from CGI::Fast, restores the import of CGI functions into the callers namespace for users of CGI::Fast (GH leejo/cgi-fast#11 and GH leejo/cgi-fast#12) [ FEATURES ] - CGI::Carp now has $CGI::Carp::FULL_PATH for displaying the full path to the offending script in error messages - CGI now has env_query_string() for getting the value of QUERY_STRING from the environment and not that fiddled with by CGI.pm (which is what query_string() does) (GH #161) - CGI::ENCODE_ENTITIES var added to control which chracters are encoded by the call to the HTML::Entities module - defaults to &<>"\x8b\x9b' (GH #157) [ DOCUMENTATION ] - Fix some typos (GH #173, GH #174) - All *documentation* for HTML functionality in CGI has been moved into its own namespace: CGI::HTML::Functions - although the functionality continues to exist within CGI.pm so there are no code changes required (GH #142) - Add missing documentation for env variable fetching routines (GH #163) [ TESTING ] - Increase test coverage (GH #3) [ INTERNALS ] - Cwd made a TEST_REQUIRES rather than a BUILD_REQUIRES in Makefile.PL (GH #170) - AutoloadClass variables have been removed as AUTOLOAD was removed in v4.14 so these are no longer necessary (GH #172 thanks to alexmv) - Remove dependency on constant - internal DEBUG, XHTML_DTD and EBCDIC constants changes to $_DEBUG, $_XHTML_DTD, and $_EBCDIC
jperkin
pushed a commit
that referenced
this pull request
May 22, 2015
Upstream changes: 1.2.0 2015-04-14 07:13:00+0000 - [core] bundle libyaml #248 (Kazuho Oku) - [core] implement master-worker process mode and daemon mode (bundles Server::Starter) #258 #270 (Kazuho Oku) - [file] more mime-types by default #250 #254 #280 (Tatsuhiko Kubo, George Liu, Kazuho Oku) - [file][http1] fix connection being closed if the length of content is zero #276 (Kazuho Oku) - [headers] fix heap overrun during configuration #251 (Kazuho Oku) - [http2] do not delay sending PUSH_PROMISE #221 (Kazuho Oku) - [http2] reduce memory footprint under high load #271 (Kazuho Oku) - [http2] fix incorrect error sent when number of streams exceed the limit #268 (Kazuho Oku) - [proxy] fix heap overrun when building request sent to upstream #266 #269 (Moto Ishizawa, Kazuho Oku) - [proxy] fix laggy response in case the length of content is zero #274 #276 (Kazuho Oku) - [SSL] fix potential stall while reading data from client #268 (Kazuho Oku) - [SSL] bundle LibreSSL #236 #272 (Kazuho Oku) - [SSL] obtain source-level compatibility with BoringSSL #228 (Kazuho Oku) - [SSL] add directive `listen.ssl.cipher-preference` for controlling the selection logic of cipher-suites #233 (Kazuho Oku) - [SSL] disable TLS compression #252 (bisho) - [libh2o] fix C++ compatibility (do not use empty struct) #225 (Kazuho Oku) - [libh2o] search external dependencies using pkg-config #227 (Kazuho Oku) - [misc] fix GCC version detection bug used for controlling compiler warnings #224 (Kazuho Oku) - [misc] check merory allocation failures in socket pool #265 (Tatsuhiko Kubo) 1.1.1 2015-03-09 06:12:00+0000 - [proxy] fix crash on NetBSD when upstream connection is persistent #217 (Kazuho Oku) - [misc] fix compile error on FreeBSD #211 #212 (Syohei Yoshida) 1.1.0 2015-03-06 06:41:00+0000 - [core][file] send redirects appending '/' as abs-path redirects #209 (Kazuho Oku) - [headers] add directives for manipulating response headers #204 (Kazuho Oku) - [http2] do not send a corrupt response if header value is longer than 126 bytes #193 (Kazuho Oku) - [http2] fix interoperability issue with nghttp2 0.7.5 and above 5c42eb1 (Kazuho Oku) - [proxy] send `via` header to upstream #191 (Kazuho Oku) - [proxy] resolve hostname asynchronously #207 (Kazuho Oku) - [proxy] distribute load between upstream servers (using `rand()`) #208 (Kazuho Oku) - [proxy] fix a bug that may cause a corrupt `location` header being forwarded #190 (Kazuho Oku) - [reproxy] add support for `x-reproxy-url` header #187 #197 (Daisuke Maki, Kazuho Oku) 1.0.1 2015-02-23 05:50:00+0000 - [core] change backlog size from 65,536 to 65,535 #183 (Tatsuhiko Kubo) - [http2] fix assertion failure in HPACK encoder #186 (Kazuho Oku) - [http2] add `extern` to some global variables that were not marked as such #178 (Kazuho Oku) - [proxy] close persistent upstream connection if client abruptly closes the stream #188 (Kazuho Oku) - [proxy] fix internal state corruption in case upstream sends response headers divided into multpile packets #189 (Kazuho Oku) - [SSL] add host header to OCSP request #176 (Masaaki Hirose) - [libh2o] do not require header files under `deps/` when using libh2o #173 (Kazuho Oku) - [libh2o] fix compile error in examples when compiled with `H2O_USE_LIBUV=0` #177 (Kazuho Oku) - [libh2o] in example, add missing / after the reference path #180 (Matthieu Garrigues) - [misc] fix invalid HTML in sample page #175 (Deepak Prakash) 1.0.0 2015-02-18 20:01:00+0000 - [core] add redirect handler #150 (Kazuho Oku) - [core] add `pid-file` directive for specifying the pid file #164 (Kazuho Oku) - [core] connections accepted by host-specific listeners should not be handled by handlers of other hosts #163 (Kazuho Oku) - [core] (FreeBSD) fix a bug that prevented the standalone server from booting when run as root #160 (Kazuho Oku) - [core] switch to pipe-based interthread messaging #154 (Kazuho Oku) - [core] use kqueue on all BSDs #156 (Kazuho Oku) - [access-log] more logging directives: %H, %m, %q, %U, %V, %v #158 (Kazuho Oku) - [access-log] bugfix: header values were not logged when specified using uppercase letters #157 (Kazuho Oku) - [file] add application/json to defalt MIME-types #159 (Tatsuhiko Kubo) - [http2] add support for the finalized version of HTTP/2 #166 (Kazuho Oku) - [http2] fix issues reported by h2spec v0.0.6 #165 (Kazuho Oku) - [proxy] merge the cookie headers before sending to upstream #161 (Kazuho Oku) - [proxy] simplify the configuration directives (and make persistent upstream connections as default) #162 (Kazuho Oku) - [SSL] add configuration directive to preload DH params #148 (Jeff Marrison) - [libh2o] separate versioning scheme using H2O_LIBRARY_VERSION_* #167 (Kazuho Oku) 0.9.2 2015-02-10 04:17:00+0000 - [core] graceful shutdown on SIGTERM #119 (Kazuho Oku) - [core] less TCP errors under high load #81 (Kazuho Oku) - [file] add support for HEAD requests #110 (Mark Hoersken) - [http1] MSIE workaround (send `Cache-Control: private` in place of Vary) #114 (Kazuho Oku) - [http2] support server-push #133 (Kazuho Oku) - [http2] fix spurious RST_STREAMS being sent #132 (Kazuho Oku) - [http2] weight-based distribution of bandwidth #135 (Kazuho Oku) - [proxy] added configuration directive `proxy.preserve-host` #112 (Masahiro Nagano) - [proxy] sends X-Forwarded-For and X-Forwarded-Proto headers #112 (Masahiro Nagano) - [proxy] stability improvements #61 (Kazuho Oku) - [misc] adjustments to make the source code more analyzer-friendly #113,#117 (Nick Desaulniers, Maks Naumov) 0.9.1 2015-01-19 21:13:00+0000 - added configuration directives: ssl/cipher-suite, ssl/ocsp-update-interval, ssl/ocsp-max-failures, expires, file.send-gzip - [http2] added support for draft-16 (draft-14 is also supported) - [http2] dependency-based prioritization - [http2] improved conformance to the specification - [SSL] OCSP stapling (automatically enabled by default) - [SSL] fix compile error with OpenSSL below version 1.0.1 - [file] content negotiation (serving .gz files) - [expires] added support for Cache-Control: max-age - [libh2o] libh2o and the header files installed by `make install` - [libh2o] fix compile error when used from C++ - automatically setuids to nobody when run as root and if `user` directive is not set - automatically raises RLIMIT_NOFILE - uses all CPU cores by default - now compiles on NetBSD and other BSD-based systems
jperkin
pushed a commit
that referenced
this pull request
Jun 1, 2015
4.20 2015-05-29 [ RELEASE NOTES ] - CGI.pm is now considered "done". See also "mature" and "legacy" Features requests and none critical issues will be outright rejected. The module is now in maintenance mode for critical issues only. - This release removes the AUTOLOAD and compile optimisations from CGI.pm that were introduced into CGI.pm twenty (20) years ago as a response to its large size, which meant there was a significant compile time penalty. - This optimisation is no longer relevant and makes the code difficult to deal with as well as making test coverage metrics incorrect. Benchmarks show that advantages of AUTOLOAD / lazy loading / deferred compile are less than 0.05s, which will be dwarfed by just about any meaningful code in a cgi script. If this is an issue for you then you should look at running CGI.pm in a persistent environment (FCGI, etc) - To offset some of the time added by removing the AUTOLOAD functionality the dependencies have been made runtime rather than compile time. The POD has also been split into its own file. CGI.pm now contains around 4000 lines of code, which compared to some modules on CPAN isn't really that much - This essentially deprecates the -compile pragma and ->compile method. The -compile pragma will no longer do anything, whereas the ->compile method will raise a deprecation warning. More importantly this also REMOVES the -any pragma because as per the documentation this pragma needed to be "used with care or not at all" and allowing arbitrary HTML tags is almost certainly a bad idea. If you are using the -any pragma and using arbitrary tags (or have typo's in your code) your code will *BREAK* - Although this release should be back compatible (with the exception of any code using the -any pragma) you are encouraged to test it throughly as if you are doing anything out of the ordinary with CGI.pm (i.e. have bugs that may have been masked by the AUTOLOAD feature) you may see some issues. - References: GH #162, GH #137, GH #164 [ SPEC / BUG FIXES ] - make the list context warning in param show the filename rather than the package so we have more information on exactly where the warning has been raised from (GH #171) - correct self_url when PATH_INFO and SCRIPT_NAME are the same but we are not running under IIS (GH #176) - Add the multi_param method to :cgi export (thanks to xblitz for the patch and tests. GH #167) - Fix warning for lack of HTTP_USER_AGENT in CGI::Carp (GH #168) - Fix imports when called from CGI::Fast, restores the import of CGI functions into the callers namespace for users of CGI::Fast (GH leejo/cgi-fast#11 and GH leejo/cgi-fast#12) [ FEATURES ] - CGI::Carp now has $CGI::Carp::FULL_PATH for displaying the full path to the offending script in error messages - CGI now has env_query_string() for getting the value of QUERY_STRING from the environment and not that fiddled with by CGI.pm (which is what query_string() does) (GH #161) - CGI::ENCODE_ENTITIES var added to control which chracters are encoded by the call to the HTML::Entities module - defaults to &<>"' (GH #157 - the \x8b and \x9b chars have been removed from this list as we are concerned more about unicode compat these days than old browser support.) [ DOCUMENTATION ] - Fix some typos (GH #173, GH #174) - All *documentation* for HTML functionality in CGI has been moved into its own namespace: CGI::HTML::Functions - although the functionality continues to exist within CGI.pm so there are no code changes required (GH #142) - Add missing documentation for env variable fetching routines (GH #163) [ TESTING ] - Increase test coverage (GH #3) [ INTERNALS ] - Cwd made a TEST_REQUIRES rather than a BUILD_REQUIRES in Makefile.PL (GH #170) - AutoloadClass variables have been removed as AUTOLOAD was removed in v4.14 so these are no longer necessary (GH #172 thanks to alexmv) - Remove dependency on constant - internal DEBUG, XHTML_DTD and EBCDIC constants changes to $_DEBUG, $_XHTML_DTD, and $_EBCDIC
jperkin
pushed a commit
that referenced
this pull request
Dec 14, 2015
Pkgsrc changes: - use ${PREFIX} for icon path in example.jwmrc - rename patch files per new format - add patch comments - take maintainership Upstream changes list from http://joewing.net/projects/jwm/release-2.3.shtml JWM v2.3 Release Notes This is a collection of major changes between JWM v2.2 and JWM v2.3. Version 2.3.0 was released 20150618. You can download the latest snapshot of JWM here: jwm-1356.tar.xz. New Features * Added support for client requested XRaiseWindow (issue #117). * Added native language support for the confirm dialog. * Added support for _NET_RESTACK_WINDOW (issue #118). * Added key binding to send the current window to a different desktop (issue #119). * Support the specification of an alternate configuration file (patch from Brian Bidulock) * Added Corner option to configure the roundedness of windows. * Updated the look of borders around menus and trays. * Add support for _NET_WM_MOVERESIZE (issue #142). * Add the fullscreen group option (patch from George Shaw). * Made window style configuration more consistent (may break old configuration files). * Add scale background type. * Added group options: nomin, nomax, noclose, nomove, noresize (issue #152), and nofullscreen (issue #163). * Added the Outline tag to MenuStyle to specify the color of menu outlines (issue #31). * Added the Outline tag to TrayStyle to specify the color of tray outlines. * To conform with GNU standards, running "make install" no longer strips the executable. To strip the executable, "make install?strip" can be used instead. * Added the ability to swallow the same client into a tray multiple times. * Added the ability to specify where the tray is hidden when auto-hide is enabled (issue #34). * Menu Includes are now loaded dynamically when a menu is shown rather than when JWM starts. * Added the sendu, sendd, sendl and sendr key bindings to send a window to a different desktop (issue #119). * Added the maxh, maxv, maxtop, maxbottom, maxleft and maxright key bindings (issues #120 and #157). * Added the ability to have separate actions per mouse button for tray buttons (issue #171). This is accomplished using the Button tag. For example: <TrayButton label="My Button"> <Button mask="1"> exec:program_for_left_click </Button> <Button mask="45"> exec:program_for_scroll_wheel </Button> </TrayButton> The Button tags are optional. By default the action will use mouse button mask 123. * Add the ability to have separate actions per mouse button for clock tray components (issue #171) and the ability to have clock tray components run actions like tray buttons (issue #172). * Add support for more than 10 menus. Now 26 additional menus can be defined using the letters a through z. Configuration Changes The following XSLT is available to update JWM v2.2 configuration files for use with JWM v2.3: jwm-2.3.xslt. To convert an existing v2.2 configuration file using xsltproc, run: cp ~/.jwmrc ~/.jwmrc.old xsltproc jwm-2.3.xslt ~/.jwmrc.old > ~/.jwmrc If you have multiple configuration files, it may be necessary to apply the XSLT to some or all of them depending on what configuration options are stored in the file. A summary of configuration changes follows. * The ActiveBackground and ActiveForeground tags have been replaced by Background and Foreground under the Active tag. This applies to TrayStyle, TaskListStyle, TrayButtonStyle, PagerStyle, and MenuStyle. * The Inactive tag under WindowStyle has been removed. The tags that used to go within this tag now go directly under the WindowStyle tag. * The autohide attribute in Tray now determines where the tray should be hidden (left, right, top, bottom, or off) instead of true or false. * Now actions in the Clock tag must be prefixed with exec: to run an external program. See the configuration documentation for documentation on all configuration options. Bug Fixes * ICCCM 2.0 WM_S selection compliance (patch from Brian Bidulock). * Fixed client window position after maximize/restore (issue #115, patch from Biran Bidulock). * Fixed window mapping bug with show desktop (issue #114). * Give focus to the top-most window after show desktop (issue #64). * Fix uninitialized memory when loading images (patch from Brian Bidulock). * Fix overlapping string issue with FriBidi (patch from Brian Bidulock). * Fixed non-UTF8 locales (issue #56). * Fixed transparency issue with some applications (issue #130). * Fixed focus after key events (patch from Brian Bidulock). * Fixed loss of focus after restoring windows (issue #131). * Fix setting of _NET_WM_STATE_HIDDEN when a window is minimized (issue #133, patch from Brian Bidulock). * Grab input focus at startup if not already set (issue #148). Updated Translations * Russian (Aleksandr Samusenko) * French (Pierrick) * Italian (Flavio aka Man from Mars) * Spanish (Pablo Lezaeta) Changes in 2.3.1 (20150628) * Added an option to group windows by class in the task bar. (the group attribute of the TrayStyle tag). * Fixed an issue with menus showing up across monitors when Xinerama is enabled. * Added the ability to show Motif-style handles on windows (the decorations attribute of WindowStyle). * Fixed an issue where the next/prev key bindings would not advance past a window that does not accept input focus. * Fixed the behavior of the Include tag within menus so that it no longer creates a submenu. * Menus included using Include are no longer loaded each time the menu is accessed. * Added a Dynamic submenu that will re-load its menu contents each time it is accessed. Changes in 2.3.2 (20150913) * Restored the ability to specifiy that windows should not have an icon (using the "icon:" group option). * JWM will now try several common extensions when loading icons. * Fixed the height and default label for dynamic menus (issue #188). * Improved handling of colormaps for pseudo-color displays. * Fixed handling of WM_STATE on big-endian machines. * Fixed an issue with menus getting stuck open. * Removed the TaskListStyle, TrayButtonStyle, and ClockStyle configuration options. These options are now set from TrayStyle. * Added the Hungarian translation (from Hermit). * Added the ability to give a 3D look to menus and trays by specifying decorations="motif" in MenuStyle and TrayStyle respectively. * Fixed an issue where JWM key bindings would not be available to applications (issue #201). * JWM now highlights the first menu item when opening a menu with the keyboard (issue #102). * Add the ability to selectively enable popups (issue #189). * Various other fixes. Changes in 2.3.3 (20151118) * JWM windows now set _NET_WM_WINDOW_TYPE (issue #223). * Added the Chinese translation (from Christopher Meng). * Added the height attribute to TaskList (issue #227). * Fixed tray button mouse bindings for the scroll wheel buttons (issue #229). * Added the restore key binding (issue #233). * Made middle-click on a task list item close the window (issue #232). * Added support for tooltips in menus (issue #111). * Added Portuguese (Brazil) translation (from Holmes). * Fixed an issue where the dock would change size if its size was not explicitly set (issue #238). * Fixed the height calculation of vertical trays (issue #228). Changes in 2.3.4 (20151122) * Now a negative tray width/height can be specified to subtract from the screen width/height (issue #250). * Added the list configuration option to TrayStyle to allow displaying windows from all desktops (all) or only the current desktop (the default, desktop) in task lists. * Improved scaling of JPEG and SVG images (issue #253). * Fixed the rendering of fixed-aspect background images. * Added the drag group option (issue #235). * Fixed rendering of window borders without a title bar.
jperkin
pushed a commit
that referenced
this pull request
Dec 30, 2015
Ok MAINTAINER bsiegert. While doing that, update to current release, 0.29.0. Changes since 0.24.0: Version 0.29.0 -------------- Compatibility notes: - when upgrading to 0.29.0 you need to upgrade client as well as server installations due to the locking and commandline interface changes otherwise you'll get an error msg about a RPC protocol mismatch or a wrong commandline option. if you run a server that needs to support both old and new clients, it is suggested that you have a "borg-0.28.2" and a "borg-0.29.0" command. clients then can choose via e.g. "borg --remote-path=borg-0.29.0 ...". - the default waiting time for a lock changed from infinity to 1 second for a better interactive user experience. if the repo you want to access is currently locked, borg will now terminate after 1s with an error message. if you have scripts that shall wait for the lock for a longer time, use --lock-wait N (with N being the maximum wait time in seconds). Bug fixes: - hash table tuning (better chosen hashtable load factor 0.75 and prime initial size of 1031 gave ~1000x speedup in some scenarios) - avoid creation of an orphan lock for one case, #285 - --keep-tag-files: fix file mode and multiple tag files in one directory, #432 - fixes for "borg upgrade" (attic repo converter), #466 - remove --progress isatty magic (and also --no-progress option) again, #476 - borg init: display proper repo URL - fix format of umask in help pages, #463 New features: - implement --lock-wait, support timeout for UpgradableLock, #210 - implement borg break-lock command, #157 - include system info below traceback, #324 - sane remote logging, remote stderr, #461: - remote log output: intercept it and log it via local logging system, with "Remote: " prefixed to message. log remote tracebacks. - remote stderr: output it to local stderr with "Remote: " prefixed. - add --debug and --info (same as --verbose) to set the log level of the builtin logging configuration (which otherwise defaults to warning), #426 note: there are few messages emitted at DEBUG level currently. - optionally configure logging via env var BORG_LOGGING_CONF - add --filter option for status characters: e.g. to show only the added or modified files (and also errors), use "borg create -v --filter=AME ...". - more progress indicators, #394 - use ISO-8601 date and time format, #375 - "borg check --prefix" to restrict archive checking to that name prefix, #206 Other changes: - hashindex_add C implementation (speed up cache re-sync for new archives) - increase FUSE read_size to 1024 (speed up metadata operations) - check/delete/prune --save-space: free unused segments quickly, #239 - increase rpc protocol version to 2 (see also Compatibility notes), #458 - silence borg by default (via default log level WARNING) - get rid of C compiler warnings, #391 - upgrade OS X FUSE to 3.0.9 on the OS X binary build system - use python 3.5.1 to build binaries - docs: - new mailing list borgbackup@python.org, #468 - readthedocs: color and logo improvements - load coverage icons over SSL (avoids mixed content) - more precise binary installation steps - update release procedure docs about OS X FUSE - FAQ entry about unexpected 'A' status for unchanged file(s), #403 - add docs about 'E' file status - add "borg upgrade" docs, #464 - add developer docs about output and logging - clarify encryption, add note about client-side encryption - add resources section, with videos, talks, presentations, #149 - Borg moved to Arch Linux [community] - fix wrong installation instructions for archlinux Version 0.28.2 -------------- New features: - borg create --exclude-if-present TAGFILE - exclude directories that have the given file from the backup. You can additionally give --keep-tag-files to preserve just the directory roots and the tag-files (but not backup other directory contents), #395, attic #128, attic #142 Other changes: - do not create docs sources at build time (just have them in the repo), completely remove have_cython() hack, do not use the "mock" library at build time, #384 - avoid hidden import, make it easier for PyInstaller, easier fix for #218 - docs: - add description of item flags / status output, fixes #402 - explain how to regenerate usage and API files (build_api or build_usage) and when to commit usage files directly into git, #384 - minor install docs improvements Version 0.28.1 -------------- Bug fixes: - do not try to build api / usage docs for production install, fixes unexpected "mock" build dependency, #384 Other changes: - avoid using msgpack.packb at import time - fix formatting issue in changes.rst - fix build on readthedocs Version 0.28.0 -------------- Compatibility notes: - changed return codes (exit codes), see docs. in short: old: 0 = ok, 1 = error. now: 0 = ok, 1 = warning, 2 = error New features: - refactor return codes (exit codes), fixes #61 - add --show-rc option enable "terminating with X status, rc N" output, fixes 58, #351 - borg create backups atime and ctime additionally to mtime, fixes #317 - extract: support atime additionally to mtime - FUSE: support ctime and atime additionally to mtime - support borg --version - emit a warning if we have a slow msgpack installed - borg list --prefix=thishostname- REPO, fixes #205 - Debug commands (do not use except if you know what you do: debug-get-obj, debug-put-obj, debug-delete-obj, debug-dump-archive-items. Bug fixes: - setup.py: fix bug related to BORG_LZ4_PREFIX processing - fix "check" for repos that have incomplete chunks, fixes #364 - borg mount: fix unlocking of repository at umount time, fixes #331 - fix reading files without touching their atime, #334 - non-ascii ACL fixes for Linux, FreeBSD and OS X, #277 - fix acl_use_local_uid_gid() and add a test for it, attic #359 - borg upgrade: do not upgrade repositories in place by default, #299 - fix cascading failure with the index conversion code, #269 - borg check: implement 'cmdline' archive metadata value decoding, #311 - fix RobustUnpacker, it missed some metadata keys (new atime and ctime keys were missing, but also bsdflags). add check for unknown metadata keys. - create from stdin: also save atime, ctime (cosmetic) - use default_notty=False for confirmations, fixes #345 - vagrant: fix msgpack installation on centos, fixes #342 - deal with unicode errors for symlinks in same way as for regular files and have a helpful warning message about how to fix wrong locale setup, fixes #382 - add ACL keys the RobustUnpacker must know about Other changes: - improve file size displays, more flexible size formatters - explicitly commit to the units standard, #289 - archiver: add E status (means that an error occured when processing this (single) item - do binary releases via "github releases", closes #214 - create: use -x and --one-file-system (was: --do-not-cross-mountpoints), #296 - a lot of changes related to using "logging" module and screen output, #233 - show progress display if on a tty, output more progress information, #303 - factor out status output so it is consistent, fix surrogates removal, maybe fixes #309 - move away from RawConfigParser to ConfigParser - archive checker: better error logging, give chunk_id and sequence numbers (can be used together with borg debug-dump-archive-items). - do not mention the deprecated passphrase mode - emit a deprecation warning for --compression N (giving a just a number) - misc .coverragerc fixes (and coverage measurement improvements), fixes #319 - refactor confirmation code, reduce code duplication, add tests - prettier error messages, fixes #307, #57 - tests: - add a test to find disk-full issues, #327 - travis: also run tests on Python 3.5 - travis: use tox -r so it rebuilds the tox environments - test the generated pyinstaller-based binary by archiver unit tests, #215 - vagrant: tests: announce whether fakeroot is used or not - vagrant: add vagrant user to fuse group for debianoid systems also - vagrant: llfuse install on darwin needs pkgconfig installed - vagrant: use pyinstaller from develop branch, fixes #336 - benchmarks: test create, extract, list, delete, info, check, help, fixes #146 - benchmarks: test with both the binary and the python code - archiver tests: test with both the binary and the python code, fixes #215 - make basic test more robust - docs: - moved docs to borgbackup.readthedocs.org, #155 - a lot of fixes and improvements, use mobile-friendly RTD standard theme - use zlib,6 compression in some examples, fixes #275 - add missing rename usage to docs, closes #279 - include the help offered by borg help <topic> in the usage docs, fixes #293 - include a list of major changes compared to attic into README, fixes #224 - add OS X install instructions, #197 - more details about the release process, #260 - fix linux glibc requirement (binaries built on debian7 now) - build: move usage and API generation to setup.py - update docs about return codes, #61 - remove api docs (too much breakage on rtd) - borgbackup install + basics presentation (asciinema) - describe the current style guide in documentation - add section about debug commands - warn about not running out of space - add example for rename - improve chunker params docs, fixes #362 - minor development docs update Version 0.27.0 -------------- New features: - "borg upgrade" command - attic -> borg one time converter / migration, #21 - temporary hack to avoid using lots of disk space for chunks.archive.d, #235: To use it: rm -rf chunks.archive.d ; touch chunks.archive.d - respect XDG_CACHE_HOME, attic #181 - add support for arbitrary SSH commands, attic #99 - borg delete --cache-only REPO (only delete cache, not REPO), attic #123 Bug fixes: - use Debian 7 (wheezy) to build pyinstaller borgbackup binaries, fixes slow down observed when running the Centos6-built binary on Ubuntu, #222 - do not crash on empty lock.roster, fixes #232 - fix multiple issues with the cache config version check, #234 - fix segment entry header size check, attic #352 plus other error handling improvements / code deduplication there. - always give segment and offset in repo IntegrityErrors Other changes: - stop producing binary wheels, remove docs about it, #147 - docs: - add warning about prune - generate usage include files only as needed - development docs: add Vagrant section - update / improve / reformat FAQ - hint to single-file pyinstaller binaries from README Version 0.26.1 -------------- This is a minor update, just docs and new pyinstaller binaries. - docs update about python and binary requirements - better docs for --read-special, fix #220 - re-built the binaries, fix #218 and #213 (glibc version issue) - update web site about single-file pyinstaller binaries Note: if you did a python-based installation, there is no need to upgrade. Version 0.26.0 -------------- New features: - Faster cache sync (do all in one pass, remove tar/compression stuff), #163 - BORG_REPO env var to specify the default repo, #168 - read special files as if they were regular files, #79 - implement borg create --dry-run, attic issue #267 - Normalize paths before pattern matching on OS X, #143 - support OpenBSD and NetBSD (except xattrs/ACLs) - support / run tests on Python 3.5 Bug fixes: - borg mount repo: use absolute path, attic #200, attic #137 - chunker: use off_t to get 64bit on 32bit platform, #178 - initialize chunker fd to -1, so it's not equal to STDIN_FILENO (0) - fix reaction to "no" answer at delete repo prompt, #182 - setup.py: detect lz4.h header file location - to support python < 3.2.4, add less buggy argparse lib from 3.2.6 (#194) - fix for obtaining ``char *`` from temporary Python value (old code causes a compile error on Mint 17.2) - llfuse 0.41 install troubles on some platforms, require < 0.41 (UnicodeDecodeError exception due to non-ascii llfuse setup.py) - cython code: add some int types to get rid of unspecific python add / subtract operations (avoid ``undefined symbol FPE_``... error on some platforms) - fix verbose mode display of stdin backup - extract: warn if a include pattern never matched, fixes #209, implement counters for Include/ExcludePatterns - archive names with slashes are invalid, attic issue #180 - chunker: add a check whether the POSIX_FADV_DONTNEED constant is defined - fixes building on OpenBSD. Other changes: - detect inconsistency / corruption / hash collision, #170 - replace versioneer with setuptools_scm, #106 - docs: - pkg-config is needed for llfuse installation - be more clear about pruning, attic issue #132 - unit tests: - xattr: ignore security.selinux attribute showing up - ext3 seems to need a bit more space for a sparse file - do not test lzma level 9 compression (avoid MemoryError) - work around strange mtime granularity issue on netbsd, fixes #204 - ignore st_rdev if file is not a block/char device, fixes #203 - stay away from the setgid and sticky mode bits - use Vagrant to do easy cross-platform testing (#196), currently: - Debian 7 "wheezy" 32bit, Debian 8 "jessie" 64bit - Ubuntu 12.04 32bit, Ubuntu 14.04 64bit - Centos 7 64bit - FreeBSD 10.2 64bit - OpenBSD 5.7 64bit - NetBSD 6.1.5 64bit - Darwin (OS X Yosemite) Version 0.25.0 -------------- Compatibility notes: - lz4 compression library (liblz4) is a new requirement (#156) - the new compression code is very compatible: as long as you stay with zlib compression, older borg releases will still be able to read data from a repo/archive made with the new code (note: this is not the case for the default "none" compression, use "zlib,0" if you want a "no compression" mode that can be read by older borg). Also the new code is able to read repos and archives made with older borg versions (for all zlib levels 0..9). Deprecations: - --compression N (with N being a number, as in 0.24) is deprecated. We keep the --compression 0..9 for now to not break scripts, but it is deprecated and will be removed later, so better fix your scripts now: --compression 0 (as in 0.24) is the same as --compression zlib,0 (now). BUT: if you do not want compression, you rather want --compression none (which is the default). --compression 1 (in 0.24) is the same as --compression zlib,1 (now) --compression 9 (in 0.24) is the same as --compression zlib,9 (now) New features: - create --compression none (default, means: do not compress, just pass through data "as is". this is more efficient than zlib level 0 as used in borg 0.24) - create --compression lz4 (super-fast, but not very high compression) - create --compression zlib,N (slower, higher compression, default for N is 6) - create --compression lzma,N (slowest, highest compression, default N is 6) - honor the nodump flag (UF_NODUMP) and do not backup such items - list --short just outputs a simple list of the files/directories in an archive Bug fixes: - fixed --chunker-params parameter order confusion / malfunction, fixes #154 - close fds of segments we delete (during compaction) - close files which fell out the lrucache - fadvise DONTNEED now is only called for the byte range actually read, not for the whole file, fixes #158. - fix issue with negative "all archives" size, fixes #165 - restore_xattrs: ignore if setxattr fails with EACCES, fixes #162 Other changes: - remove fakeroot requirement for tests, tests run faster without fakeroot (test setup does not fail any more without fakeroot, so you can run with or without fakeroot), fixes #151 and #91. - more tests for archiver - recover_segment(): don't assume we have an fd for segment - lrucache refactoring / cleanup, add dispose function, py.test tests - generalize hashindex code for any key length (less hardcoding) - lock roster: catch file not found in remove() method and ignore it - travis CI: use requirements file - improved docs: - replace hack for llfuse with proper solution (install libfuse-dev) - update docs about compression - update development docs about fakeroot - internals: add some words about lock files / locking system - support: mention BountySource and for what it can be used - theme: use a lighter green - add pypi, wheel, dist package based install docs - split install docs into system-specific preparations and generic instructions
jperkin
pushed a commit
that referenced
this pull request
Jan 17, 2016
* Disable debug library Changelog: Release 1.6.1 (2015-08-03) ========================== - added project and solution files for Visual Studio 2015 - upgraded bundled SQLite to 3.8.11.1 - fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays - fixed GH #819: JSON Stringifier fails with preserve insert order - fixed GH #878: UUID tryParse - fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate - fixed GH #861: Var BadCastException - fixed GH #779: BUG in 1.6.0 Zip code - fixed GH #769: Poco::Var operator== throws exception - fixed GH #766: Poco::JSON::PrintHandler not working for objects in array - fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X - fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ? - fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE - fixed GH #735: WEC2013 build fails due to missing Poco::Path methods. - fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types - fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6 - fixed GH #706: POCO1.6 Sample EchoServer BUG - fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval - DeflatingStream: do not flush underlying stream on sync() as these can cause corrupted files in Zip archives Release 1.6.0 (2014-12-22) ========================== - fixed GH #625: MongoDB ensureIndex double insert? - fixed GH #622: Crypto: RSATest::testSign() should verify with public key only - fixed GH #620: Data documentation sample code outdated - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp - fixed GH #616: Visual Studio warning C4244 - fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free - fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions - fixed GH #607: Idle Reactor high CPU usage - fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request body first parameter with BOM in name - fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h - fixed GH #592: Incorrect format string in Poco::Dynamic::Struct - fixed GH #590: Poco::Data::SQlite doesn't support URI filenames - fixed GH #564: URI::encode - fixed GH #560: DateTime class calculates a wrong day - fixed GH #549: Memory allocation is not safe between fork() and execve() - fixed GH #500: SSLManager causes a crash - fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception - fixed GH #483: multiple cases for sqlite_busy - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour - fixed GH #478: HTTPCredentials not according to HTTP spec - fixed GH #471: vs2010 release builds have optimization disabled ? - fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions - fixed GH #438: Poco::File::setLastModified() doesn't work - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are not thread safe - fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj and ByteOrder.obj - fixed GH #331: Poco::Zip does not support files with ".." in the name. - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0. - fixed GH #215: develop WinCE build broken - fixed GH #63: Net::NameValueCollection::size() returns int - Poco::Logger: formatting methods now support up to 10 arguments. - added Poco::Timestamp::raw() - Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream on flush()/sync(). - Poco::Util::Timer: prevent re-schedule of cancelled TimerTask - enabled WinRegistryKey and WinRegistryConfiguration for WinCE - Poco::BasicEvent improvements and preparations for future support of lambdas/std::function - upgraded bundled sqlite to 3.8.7.2 - Poco::Thread: added support for starting functors/lambdas - Poco::Net::HTTPClientSession: added support for global proxy configuration - added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and Poco::Net::OAuth20Credentials classes. - Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows - added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX - added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX - added poco_assert_msg() and poco_assert_msg_dbg() macros - Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the Context object (the underlying OpenSSL context would leak) - Poco::URI: added new constructor to create URI from Path - Various documentation and style fixes - Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005. - Improved CMake support Release 1.5.4 (2014-10-14) ========================== - fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled - fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3) - Fixed MSVC 2010 warnings on large alignment - make HTTPAuthenticationParams::parse() add value on end of string - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour - fixed GH #508: Can't compile for arm64 architecture - fixed GH #510: Incorrect RSAKey construction from istream - fix SharedMemory for WinCE/WEC2013 - Add NIOS2 double conversion detection, fixes compile errors - added VS2013 project/solution files for Windows Embedded Compact 2013 - added Process::isRunning() - NetSSL: Fix typo in documentation - NetSSL_OpenSSL: support for TLS 1.1 and 1.2 - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. Used to avoid double-compression of already compressed file formats such as images. - added %L modifier to PatternFormatter to switch to local time - removed unnecessary explicit in some multi-arg constructors - Allow SecureStreamSocket::attach() to be used in server connections - added Var::isBoolean() and fixed JSON stringifier - added poco_unexpected() macro invoking Bugcheck::unexpected() to deal with unexpected exceptions in destructors - fixed GH #538 prevent destructors from throwing exceptions - improved HTTP server handling of errors while reading header - fixed GH #545: use short for sign - upgraded SQLite to 3.8.6 - fixed GH #550 WebSocket fragmented message problem - improved HTTPClientSession handling of network errors while sending the request - updated bundled PCRE to 8.35.0 - fixed GH #552: FIFOBuffer drain() problem - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are not thread safe - HTTPCookie: fix documentation for max age - added Timestamp::raw() and Clock::raw() - Poco::Buffer properly handles zero-sized buffers - GH #512: Poco:Data:ODBC:Binder.h causes a crash - Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries can be used as an almost drop-in replacement for the OpenSSL based libraries on Windows and Windows Embedded Compact platforms. Only available from GitHub for now. Release 1.5.3 (2014-06-30) ========================== - fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime - Poco::Data::MySQL: added SQLite thread cleanup handler - Poco::Net::X509Certificate: improved and fixed domain name verification for wildcard domains - added Poco::Clock class, which uses a system-provided monotonic clock (if available) and is thus not affected by system realtime clock changes. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms supporting clock_gettime() and CLOCK_MONOTONIC. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer have been changed to use Poco::Clock instead of Poco::Timestamp and are now unaffected by system realtime clock changes. - fixed GH# 350: Memory leak in Data/ODBC with BLOB - Correctly set MySQL time_type for Poco::Data::Date. - fixed GH #352: Removed redundant #includes and fixed spelling mistakes. - fixed setting of MYSQL_BIND is_unsigned value. - fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files - Add extern "C" around <net/if.h> on HPUX platform. - added runtests.sh - fixed CPPUNIT_IGNORE parsing - fixed Glob from start path, for platforms not alowing transverse from root (Android) - added NTPClient (Rangel Reale) - added PowerShell build script - added SmartOS build support - fix warnings in headers - XMLWriter: removed unnecessary apostrophe escaping (&apos) - MongoDB: use Int32 for messageLength - fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours - Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing - added Poco::PBKDF2Engine - Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours - added support for a 'Priority' attribute on cookies. - GH #386: fixed bug in MailMessage without content-transfer-encoding header - GH #384: ew hash algorithms support for RSADigestEngine - fixed Clock overflow bug on Windows - Poco::ByteOrder now uses intrinsics, if available - CMake: added /bigobj option for msvc - Fix typo to restore Net/TestSuite_x64_vs120 build - correct path for CONFIGURE_FILE in CMakeLists.txt - Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY) - added WEC2013 support to buildwin.cmd and buildwin.ps1 - HTMLForm: in URL encoding, percent-encode more characters - Fixed #include <linux/if.h> conflict with other libraries - Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names - cert hostname validation is case insensitive and stricter for wildcard certificates - TCPServer: do not reduce the capacity of the default ThreadPool - added POCO_LOG_DEBUG flag - Zip: fixed a crash caused by an I/O error - added runtest script for windows - added SQlite Full Text Search support - added Thread::trySleep() and Thread::wakeUp() - fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2 - fixed GH #362: Defect in Var::parseString when there is no space between value and newline - fixed GH #314: JSON parsing bug - added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite - fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const. - fixed GH #341: Compiling poco-1.5.2 for Cygwin - fixed GH #305: There are bugs in Buffer.h - fixed GH #321: trivial build fixes (BB QNX build) - fixed GH #440: MongoDB ObjectId string formatting - added SevenZip library (Guenter Obiltschnig) - fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure - improved GH #328: NetworkInterface on Windows XP - fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL - fixed GH #290: Unicode support - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #363: DateTimeParser tryParse/parse - added HTMLForm Content-Length calculation (Rangel Reale) - Make TemporaryFile append a slash to tempDir - fixed GH #319 android build with cmake - added hasDelegates() method to AbstractEvent - fixed GH #230: Poco::Timer problem - fixed GH #317: Poco::Zip does not support newer Zip file versions. - fixed GH #176: Poco::JSON::Stringifier UTF encoding - fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface - fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE Release 1.5.2 (2013-09-16) ========================== - added MongoDB library - fixed GH #57: poco-1.5.1: Doesn't compile for Android - added VoidEvent (Arturo Castro) - fixed GH #80: NumberFormatter::append broken - fixed GH #93: ParallelSocketAcceptor virtual functions - optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var - SQLite events (insert, update, delete, commit, rollback) handlers - merged GH #91: Improve SQLite multi-threaded use (Rangel Reale) - merged GH #86: Invalid pointers to vector internals (Adrian Imboden) - automatic library initialization macros - fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens - fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) - fixed a warning in Poco/Crypto/OpenSSLInitializer.h - fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain - added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli) - fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp) - fixed GH #118: JSON::Object::stringify endless loop - added Recursive and SortedDirectoryIterator (Marian Krivos) - added ListMap (map-like container with preserving insertion order) - MailMessage: attachments saving support and consistent read/write - fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel - fixed GH #119: JSON::Object holds values in ordered map - added JSON::PrintHandler - renamed JSON::DefaultHandler to ParseHandler (breaking change!) - fixed GH #127: Eliminate -Wshadow warnings - fixed GH #79: Poco::Thread leak on Linux - fixed GH #61: static_md build configs for Crypto and NetSSL - fixed GH #130: prefer sysconf over sysctlbyname - fixed GH #131: no timezone global var on OpenBSD - fixed GH #102: Some subprojects don't have x64 solutions for VS 2010 - added GH #75: Poco::Uri addQueryParameter method - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 - fixed GH #140: Poco::Runnable threading cleanup issue - simplified default TCP/HTTPServer construction - fixed GH #141: Application::run() documentation/implementation discrepancy - changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!) - fixed GH #144: Poco::Dynamic emits invalid JSON - removed naked pointers from Data interfaces - fixed GH #82: name conflict in Data::Keywords::bind - fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++ - fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set - fixed GH #160: MultipartReader ignores first part, if preamble is missing - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel - XML: fixed an issue with parsing a memory buffer > 2 GB - upgraded to expat 2.1.0 - Data/ODBC: added support for setting query timeout (via setProperty of "queryTimeout"). Timeout is int, given in seconds. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() and also removed unnecessary code. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so has been unloaded. - fixed GH #155: MailOutputStream mangles consecutive newline sequences - fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character) - fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names - fixed GH #194: MessageNotification constructor is inefficient. - fixed GH #189: Poco::NumberParser::tryParse() documentation bug - fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession - fixed GH #188: Net: SocketAddress operator < unusable for std::map key - fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is already specified - fixed GH #65: Poco::format() misorders sign and padding specifiers - upgraded bundled SQLite to 3.7.17 - replaced JSON parser with Poco::Web::JSON parser (from sandbox) - added JSON conversion to Dynamic Struct and Array - added VarIterator - modified behavior of empty Var (empty == empty) - added Alignment.h header for C++03 alignment needs - added Data/WebNotifier (DB, WebSocket) example - fixed GH #209: Poco::NumberFormatter double length - fixed GH #204: Upgrade zlib to 1.2.8 - fixed GH #198: The "application.configDir" property is not always created. - fixed GH #185: Poco::NumberFormatter::format(double value, int precision) ignore precision == 0 - fixed GH #138: FreeBSD JSON tests fail - fixed GH #99: JSON::Query an JSON::Object - limited allowed types for JSON::Query to Object, Array, Object::Ptr, Array::Ptr and empty - fixed GH #175: HTMLForm does not read URL parameters on POST or PUT - added GH #187: MySQL: allow access to the underlying connection handle - added GH #186: MySQL: support for MYSQL_SECURE_AUTH - fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused (e.g., sendRequest() is sent two times in a row without an intermediate call to receiveResponse(), or by calling receiveResponse() two times in a row without an intermediate call to sendRequest()) - GH #217 - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession that would provide inappropriate access to internal state - merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the threadpool that will be used to start an Activity(Patrice Tarabbia) - fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia) - fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente) - fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid) - fixed GH #224: building 1.5.1 on Windows for x64 - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work - fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface - fixed GH# 236: Bug in RecursiveDirectoryIterator - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting colorizing log messages - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll - fixed GH# 254: UTF8::icompare unexpected behavior - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation (links to specifications). - added GH# 268: Method to get JSON object value using Poco::Nullable - fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found - Added support for ARM64 architecture and iPhone 5s 64-bit builds (POCO_TARGET_OSARCH=arm64). Release 1.5.1 (2013-01-11) ========================== - using double-conversion library for floating-point numeric/string conversions - added Poco::istring (case-insensitive string) and Poco::isubstr - added SQLite sys.dual (in-memory system table) - applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010 - fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision - fixed SF Bug #602: iterating database table rows not correct if no data in table - fixed SF Bug #603: count() is missing in HashMap - fixed GH #23: JSON::Object::stringify throw BadCastException - fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces - Android compile/build support (by Rangel Reale) - TypeHandler::prepare() now takes const-reference - fixed GH #27: Poco::URI::decode() doesn't properly handle '+' - fixed GH #31: JSON implementation bug - fixed SF #597: Configure script ignores cflags - fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl - added SF #542: SocketAddress() needs port-only constructor - fixed SF #215: Wrong return type in SocketConnector.h - applied SF Patch #97: fix c++0x / clang++ bugs - fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails. - added Net ifconfig sample (contributed by Philip Prindeville) - merged GH #34: add algorithm header (Roger Meier/Philip Prindeville) - fixed GH #26: Cannot compile on gcc - merged SF #111: FTP Client logging (Marian Krivos) - fixed GH #30: Poco::Path::home() throws when called from Windows Service - fixed GH #22: MySQL connection string lowercased - added MySQL support for Date/Time - upgraded SQLite to version 3.7.15.1 (2012-12-19) - improved SQLite execute() return (affected rows) value and added tests - added SQLite::Utility::isThreadSafe() function - added SQLite::Utility::setThreadMode(int mode) function - fixed GH #36: 'distclean' requires 3 traversals of project tree - fixed GH #41: Buffer::resize crash - fixed GH #42: Linux unbundled builds don't link - fixed GH #44: Problems with win x64 build - fixed GH #46: 1.5.1 build fails on OS X when using libc++ - fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments - fixed GH #49: NetworkInterface::list doesn't return MAC addresses - fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace - fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON - added ParallelAcceptor and ParallelReactor classes - added EOF and error to FIFOBuffer Release 1.5.0 (2012-10-14) ========================== - added JSON library - added Util::JSONConfiguration - added FIFOBuffer and FIFOBufferStream - fixed SF# 3522906: Unregistering handlers from SocketReactor - fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers - HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows - added SMTPLogger - added cmake support - fixed SF#3538778: NetworkInterface enumeration uses deprecated API - fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR - fixed SF#3538780: SocketAddress needs operator < function - fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64 - fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine - added IPAddress bitwise operators (&,|,^,~) - added IPAddress BinaryReader/Writer << and >> operators - modified IPAddress to force IPv6 to lowercase (RFC 5952) - fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list - added IPAddress::prefixLength() - UTF portability improvements - fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h - added IPAddress RFC 4291 compatible site-local prefix support - fixed SF#3012166: IPv6 patch - added SF#3558085: Add formatter to MACAddress object - fixed SF#3552774: Don't hide default target in subordinate makefile - fixed SF#3534307: Building IPv6 for Linux by default - fixed SF#3516844: poco missing symbols with external >=lipcre-8.13 - added SF#3544720: AbstractConfigurator to support 64bit values - fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values - fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface - fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs - fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals - fixed SF#3563627: Set IP address on multicast socket from socket family - fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size() - fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD - fixed SF#321 Binding DatTime or Timestamp - fixed SF#307 Detect the SQL driver type at run time - added VS 2012 Projects/Solutions - enhanced and accelerated numeric parsing for integers and floats - fixed SF#590 Segfault on FreeBSD when stack size not rounded - added warn function and warnmsg macro in CppUnit - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS - fixed SF#3562244: Portability fix for AF_LINK - fixed SF #3562400: DatagramSocketImpl comment is incorrect Release 1.4.7p1 (2014-11-25) ============================ - Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled. - Poco::URI: added constructor to create URI from Path. - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp - Poco::Net::HTTPClientSession: added support for global proxy configuration - fixed GH #331: Poco::Zip does not support files with .. in the name. - fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate or private key files. - upgraded bundled SQLite to 3.8.7.2 - fixed GH #229: added missing value() function - fixed GH #69: MySQL empty text/blob Release 1.4.7 (2014-10-06) ========================== - fixed GH #398: PropertyFileConfiguration: input != output - fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2 - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #317: Poco::Zip does not support newer Zip file versions. - fixed GH #454: Fix: handle unhandled exceptions - fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T - fixed GH #282: Using Thread in a global can cause crash on Windows - fixed GH #424: Poco::Timer deadlock - fixed GH #465: Fix result enum type XML_Error -> XML_Status - fixed GH #510: Incorrect RSAKey construction from istream - fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to PRIO_TRACE and wrong color to PRIO_FATAL - fixed GH #550: WebSocket fragmented message problem - Poco::Data::MySQL: added SQLite thread cleanup handler - Poco::Net::X509Certificate: improved and fixed domain name verification for wildcard domains - fixed a crash in Foundation testsuite with Visual C++ 2012 - improved and fixed domain name verification for wildcard domains in Poco::Net::X509Certificate - updated TwitterClient sample to use new 1.1 API and OAuth - added Poco::Clock class, which uses a system-provided monotonic clock (if available) and is thus not affected by system realtime clock changes. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms supporting clock_gettime() and CLOCK_MONOTONIC. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer have been changed to use Poco::Clock instead of Poco::Timestamp and are now unaffected by system realtime clock changes. - added Poco::PBKDF2Engine class template - Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop) - fixed makedepend.* scripts to work in paths containing '.o*' (contributed by Per-Erik Bjorkstad, Hakan Bengtsen) - Upgraded bundled SQLite to 3.8.6 - Support for Windows Embedded Compact 2013 (Visual Studio 2012) - Project and solution files for Visual Studio 2013 - Changes for C++11 compatibility. - fixed an issue with receiving empty web socket frames (such as ping) - improved error handling in secure socket classes - Poco::ByteOrder now uses intrinsics if available - added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. Used to avoid double-compression of already compressed file formats such as images. Release 1.4.6p4 (2014-04-18) ============================ - no longer use reverse DNS lookups for cert hostname validation - cert hostname validation is case insensitive and more strict - HTMLForm: in URL encoding, percent-encode more special characters - fixed thread priority issues on POSIX platforms with non-standard scheduling policy - XMLWriter no longer escapes apostrophe character - fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime - fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char) - Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive Release 1.4.6p3 (2014-04-02) ============================ - Fixed a potential security vulnerability in client-side X509 certificate verification. Release 1.4.6p2 (2013-09-16) ============================ - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel - XML: fixed an issue with parsing a memory buffer > 2 GB - upgraded to expat 2.1.0 - Data/ODBC: added support for setting query timeout (via setProperty of "queryTimeout"). Timeout is int, given in seconds. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() and also removed unnecessary code. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so has been unloaded. - fixed GH #155: MailOutputStream mangles consecutive newline sequences - fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character) - fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names - fixed GH# 194: MessageNotification constructor is inefficient. - fixed GH# 189: Poco::NumberParser::tryParse() documentation bug - fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession - fixed GH# 188: Net: SocketAddress operator < unusable for std::map key - fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is already specified - fixed GH# 65: Poco::format() misorders sign and padding specifiers - upgraded bundled SQLite to 3.7.17 - upgraded bundled zlib to 1.2.8 - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused (e.g., sendRequest() is sent two times in a row without an intermediate call to receiveResponse(), or by calling receiveResponse() two times in a row without an intermediate call to sendRequest()) - GH #217 - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession that would provide inappropriate access to internal state - fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past) - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting colorizing log messages - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll - fixed GH# 254: UTF8::icompare unexpected behavior - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation (links to specifications). - Added support for ARM64 architecture and iPhone 5s 64-bit builds (POCO_TARGET_OSARCH=arm64). Release 1.4.6p1 (2013-03-06) ============================ - fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) - fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite - Poco::Net::NetworkInterface now provides the interface index even for IPv4 - added DNS::reload() as a wrapper for res_init(). - On Linux, Poco::Environment::nodeId() first always tries to obtain the MAC address of eth0, before looking for other interfaces. - Poco::Net::HTTPSession now always resets the buffer in connect() to clear any leftover data from a (failed) previous session - fixed copysign namespace issue in FPEnvironment_DUMMY.h - fixed a warning in Poco/Crypto/OpenSSLInitializer.h - added a build configuration for BeagleBoard/Angstrom - fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain) - fixed compile errors with clang -std=c++11 - fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp) - updated bundled SQLite to 3.7.15.2 Release 1.4.6 (2013-01-10) ========================== - changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h> - updated bundled SQLite to 3.7.15.1 - fixed GH# 30: Poco::Path::home() throws - fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010 - fixed SF# 603 count() is missing in HashMap - Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for static_md builds. Previously, the DLL import libs were used. - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 Release 1.4.5 (2012-11-19) ========================== - added Visual Studio 2012 project files - buildwin.cmd now support building with msbuild for VS2010 and 2012. - added Poco::Optional class - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS - fixed SF# 3562244: Portability fix for AF_LINK - fixed SF# 3562400: DatagramSocketImpl comment - fixed SF# 594: Websocket fails with small masked payloads - fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4 - fixed SF# 581: Out-of-bound array access in Unicode::properties() function. - fixed SF# 590: Segfault on FreeBSD when stack size not rounded - fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits - Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a Poco::Net::Context object. - added Poco::XML::XMLWriter::depth() member function. - added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped(). - Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used to force rotation of the log file when it's opened. - fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context - OS X builds now use Clang as default compiler - Updated SQLite to 3.7.14.1 - POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes the displayText to stderr. - Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler generates thread-safe static local initialization code. Release 1.4.4 (2012-09-03) ========================== - ZipStream now builds correctly in unbundled build. - added proxy digest authentication support to Net library - integrated MySQL BLOB fixes from Franky Braem. - use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and NetSSL_OpenSSL Visual Studio project files. - fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy handshake is enabled and the first attempt to complete the handshake fails - Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601 date/times with fractional seconds. - Poco::Process::launch() now has additional overloads allowing to specify an initial directory and/or environment. - Poco::Net::FTPClientSession: timeout was not applied to data connection, only to control connection. - Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given (contributed by ??????? ????????? <milovidov@yandex-team.ru>). - Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to specify a scheduling policy. Currently this is only used on POSIX platforms and allows specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other platform-specific policy values. - Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to the digest algorithms provided by OpenSSL. - Fixed some potential compiler warnings in Crypto library - In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead. - Added Poco::ObjectPool class template. - Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all currently active client connections. - The HTTP server framework now actively prevents sending a message body in the response to a HEAD request, or in case of a 204 No Content or 304 Not Modified response status. - fixed a DOM parser performance bug (patch by Peter Klotz) - fixed SF# 3559325: Util Windows broken in non-Unicode - updated iOS build configuration to use xcode-select for finding toolchain - Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket. - fixed SF# 3552597: Crypto des-ecb error - fixed SF# 3550553: SecureSocketImpl::connect hangs - fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval - fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy() - fixed SF# 3532311: Not able to set socket option on ServerSocket before bind Added Poco::Net::Socket::init(int af) which can be used to explicitely initialize the underlying socket before calling bind(), connect(), etc. - fixed SF# 3521347: Typo in UnWindows.h undef - fixed SF# 3519474: WinRegistryConfiguration bug Also added tests and fixed another potential issue with an empty root path passed to the constructor. - fixed SF# 3516827: wrong return value of WinRegistryKey::exists() - fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo) - fixed SF# 3503267: VxWorks OS prio is not set in standard constructor - fixed SF# 3500438: HTTPResponse failure when reason is empty - fixed SF# 3495656: numberformater, numberparser error in mingw - fixed SF# 3496493: Reference counting broken in TaskManager postNotification - fixed SF# 3483174: LogFile flushing behavior on Windows Flushing is now configurable for FileChannel and SimpleFileChannel using the "flush" property (true or false). - fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated - fixed SF# 3478665: Permission checks in Poco::File not correct for root - fixed SF# 3475050: Threading bug in initializeNetwork() on Windows - fixed SF# 3552680: websocket small frames bug and proposed fix - fixed a WebSocket interop issue with Firefox - added Poco::Net::MessageHeader::hasToken() - Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms - fixed SF# 3555938: NetSSL: socket closed twice - socket exceptions now include OS error code - fixed SF# 3556975: Need to fix Shared Memory for memory map - Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown(). - fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict - fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely - added Poco::DirectoryWatcher class - fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation - Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method. - Upgraded internal SQLite to 3.7.14 Release 1.4.3p1 (2012-01-23) ============================ - fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit Release 1.4.3 (2012-01-16) ========================== - fixed a compilation error with Data/MySQL on QNX. - fixed Util project files for WinCE (removed sources not compileable on CE) - removed MD2 license text from Ackowledgements document - fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++) - Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable. This allows for working with XML documents having element names with '.' in them. - Poco::Util::OptionProcessor: Required option arguments can now be specified as separate command line arguments, as in "--option value" in addition to the "--option=value" format. - Poco::Util::HelpFormatter: improved option help formatting if indentation has been set explicitely. - added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession. - added additional read() overloads to Poco::Net::HTMLForm. - fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies. - added support for requiring TLSv1 to Poco::Net::Context. - added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing the object to be created from a string containing a base64-encoded, colon-separated username and password. - Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used. - Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage. - added Poco::Environment::osDisplayName(). - fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the service handle if it's already open) - fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys - added Poco::Buffer::resize() - fixed SF# 3441822: thread safety issue in HTTPClientSession: always use getaddrinfo() instead of gethostbyname() on all platforms supporting it - added version resource to POCO DLLs - fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail. - fixed SF# 3406030: Glob::collect problem - added Poco::Util::AbstractConfiguration::enableEvents() - Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer (contributed by Alexey Milovidov) - made Poco::Logger::formatDump() public as it may be useful for others as well (SF# 3453446) - Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602) - Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of fields parsed from a message to prevent certain kinds of denial-of-service attacks. The field limit can be changed with the new method setFieldLimit(). The default limit is 100. - Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the classic ("C") locale to format and parse floating-point numbers. - added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64() and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer to count the number of bytes copied. - upgraded internal zlib to 1.2.5 - upgraded internal sqlite to 3.7.9 - XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow) - Added support for HTTP Digest authentication (based on a contribution by Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials and Poco::Net::HTTPAuthenticationParams classes. - Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic and Digest authentication. Username and password must be provided in the URI. - added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455 - NetSSL_OpenSSL: added client-side support for Server Name Indication. Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name() if its available (OpenSSL 9.8.6f and later). - added Poco::Net::HTTPClientSession::proxyConnect() (factored out from Poco::Net::HTTPSClientSession::connect()) - added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to kill(pid) on Windows, as process IDs on Windows may be reused. - fixed SF# 3471463: Compiler warnings with -Wformat - Poco::Util::Application::run() now catches and logs exceptions thrown in initialize() - Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would be called twice. - fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views - Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock accepting a timeout as second argument. - Added Poco::Logger::parseLevel() - Poco::format(): an argument that does not match the format specifier no longer results in a BadCastException. The string [ERRFMT] is written to the result string instead. - PageCompiler: added createSession page attribute.
jperkin
pushed a commit
that referenced
this pull request
Mar 1, 2016
--------------------- v1.5.0 Release to support oauth2client >= 2.0.0. - Fix file stream recognition in Python 3 (#141) - Fix non-resumable binary uploads in Python 3 (#147) - Default to 'octet-stream' if mimetype detection fails (#157) - Handle SSL errors with retries (#160) - Fix incompatibility with oauth2client v2.0.0 (#182)
jperkin
pushed a commit
that referenced
this pull request
Jul 3, 2016
2016-05-27 Bob Halley <halley@dnspython.org> * (Version 1.14.0 released) * Add CSYNC RR support * Fix bug in LOC which destroyed N/S and E/W distinctions within a degree of the equator or prime merdian respectively. * Misc. fixes to deal with fallout from the Python 2 & 3 merge. [issue #156], [issue #157], [issue #158], [issue #159], [issue #160]. * Running with python optimization on caused issues when stripped docstrings were referenced. [issue #154] * dns.zone.from_text() erroneously required the zone to be provided. [issue #153] 2016-05-13 Bob Halley <halley@dnspython.org> * dns/message.py (make_query): Setting any value which implies EDNS will turn on EDNS if 'use_edns' has not been specified. 2016-05-12 Bob Halley <halley@dnspython.org> * TSIG signature algorithm setting was broken by the Python 2 and Python 3 code line merge. Fixed. 2016-05-10 Bob Halley <halley@dnspython.org> * (Version 1.13.0 released) 2016-05-10 Bob Halley <halley@dnspython.org> * Dropped support for Python 2.4 and 2.5. * Zone origin can be specified as a string. * Support string representation for all DNSExceptions. * Use setuptools not distutils * A number of Unicode name bug fixes. * Added support for CAA, CDS, CDNSKEY, EUI48, EUI64, and URI RR types. * Names now support the pickle protocol. * NameDicts now keep the max-depth value correct, and update properly. * resolv.conf processing rejects lines with too few tokens. * Ports can be specified per-nameserver in the stub resolver. 2016-05-03 Arthur Gautier * Single source support for python 2.6+ and 3.3+ 2014-09-04 Bob Halley <halley@dnspython.org> * Comparing two rdata is now always done by comparing the binary data of the DNSSEC digestable forms. This corrects a number of errors where dnspython's rdata comparison order was not the DNSSEC order. * Add CAA implementation. Thanks to Brian Wellington for the patch.
jperkin
pushed a commit
that referenced
this pull request
Mar 20, 2017
== 2.2.0 / 2017-03-09 Enhancements - diagnostic context inheritance is now optional [PR #160] - add support for setting a UTC offset [PR #157] - setting a basepath for call tracing [PR #154] Bug Fixes - use thread-local variables for diagnostic contexts [PR #162] - replace `Fixnum` with `Integer` [PR #161] - fixed a race condition in the rolling file appender [PR #151] Deprecations - dropped Ruby 1.9 support
jperkin
pushed a commit
that referenced
this pull request
May 19, 2017
2.5.1 (2017-05-11) ------------------ * Fixed xdist breakage (regression in ``2.5.0``). Fixes `#157 <https://github.com/pytest-dev/pytest-cov/issues/157>`_. * Allow setting custom ``data_file`` name in ``.coveragerc``. Fixes `#145 <https://github.com/pytest-dev/pytest-cov/issues/145>`_. Contributed by Jannis Leidel & Ionel Cristian Mărieș in `#156 <https://github.com/pytest-dev/pytest-cov/pull/156>`_. 2.5.0 (2017-05-09) ------------------ * Always show a summary when ``--cov-fail-under`` is used. Contributed by Francis Niu in `PR#141 <https://github.com/pytest-dev/pytest-cov/pull/141>`_. * Added ``--cov-branch`` option. Fixes `#85 <https://github.com/pytest-dev/pytest-cov/issues/85>`_. * Improve exception handling in subprocess setup. Fixes `#144 <https://github.com/pytest-dev/pytest-cov/issues/144>`_. * Fixed handling when ``--cov`` is used multiple times. Fixes `#151 <https://github.com/pytest-dev/pytest-cov/issues/151>`_.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.