Skip to content
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

compiler_lib_search_dirs libtool incorrect when compiling 64bit #200

Closed
briankwest opened this issue Jun 5, 2014 · 3 comments
Closed

compiler_lib_search_dirs libtool incorrect when compiling 64bit #200

briankwest opened this issue Jun 5, 2014 · 3 comments

Comments

@briankwest
Copy link

Not sure where this bug is or if its been corrected already or even how to correct it.

Trying to compile a 64bit build of FreeSWITCH on SmartOS we end up with compiler_lib_search_dirs in libtool with these values in order:

(64bit) /opt/local/lib/
(64bit) /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3
(64bit) /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/../../../../x86_64-sun-solaris2.11/lib/amd64
(64bit) /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/../../../amd64
(64bit) /lib/amd64
(64bit) /usr/lib/amd64
(32bit) /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/../../../../x86_64-sun-solaris2.11/lib
(32bit) /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3/../../..
(64bit) /opt/local/gcc47/x86_64-sun-solaris2.11/lib/amd64
(64bit) /opt/local/gcc47/lib/amd64

When linking to -llibstdc++ since the 32bit directory is before the two 64bit directories that contain libstdc++.so for 64bit.

Resulting in /opt/local/gcc47/lib/libstdc++.so: wrong ELF class: ELFCLASS32

Any idea how to fix this? I do not have the same problem on Solaris 11.1, It also excludes any paths that are 32bit from compiler_lib_search_dirs, I've also tried CC='gcc -m64' and CXX='g++ -m64' it fails.

If I force the LDFLAGS like so:

LDFLAGS='-L/opt/local/gcc47/lib/amd64' ./configure --enable-64

It works, but I shouldn't have to do that step.

Thoughts?

@briankwest
Copy link
Author

Seems everything in /opt/local/lib/ has the offending -L/opt/local/gcc47/lib in their .la files all of which are 64bit packages.

/b

@briankwest
Copy link
Author

cd /opt/local/lib/
perl -i -pe 's/gcc47/lib /gcc47/lib/amd64 /g' *.la

Actually worked and allowed the build to not mess up.

@jperkin
Copy link
Collaborator

jperkin commented Jun 30, 2014

This is fixed in pkgsrc-2014Q2 which will be released shortly. Thanks for the report!

@jperkin jperkin closed this as completed Jun 30, 2014
Licenser pushed a commit to project-fifo/pkgsrc that referenced this issue Aug 12, 2014
Version 1.2.1
=============
http//abcl.org/svn/tags/abcl/1.2.1/CHANGES
27 June 2013
http://abcl.org/releases/1.2.1

*  Tested:  orcl-jdk-1.7.0_21 orcl-jdk-1.6.0_43

** ansi tests rc-2 failing 11-13 of 21708 total.
   Some regressions since 1.1.1

*  Stablility fixes; additional Quicklisp compatibility

** Fix (make-instance 'standard-generic-function)


Version 1.2.0
=============
http//abcl.org/svn/tags/1.2.0/abcl/CHANGES
released at ECLM 2013 Madrid, ES // 01 June 2013

   * Package local nicknames to behave like SBCL

   * ASDF 3.0.1 is now shipped with the implementation

   * a more robust MOP implementation

   * Common cases of creating purely synthetic JAVA:JNEW-RUNTIME-CLASS
     now (mostly) work.  Please report corner cases for fixing.

   * the system autoloader has been extended to cover functions bound to
     symbol properties

Issues Resolved
---------------

[TritonDataCenter#200]   ABCL compiler fails to produce loadable fasl for XPATH
[TritonDataCenter#321]   ASDF 3.01
[TritonDataCenter#256]   Compilation failure in com.informatimago
[TritonDataCenter#274]   compiling "com.informatimago.common-lisp.cesarum") hangs [> 10 minutes]
[TritonDataCenter#153]
 [TritonDataCenter#32]   Modify the currently disabled runtime-class.lisp code to not require ASM
[TritonDataCenter#152]   ql:closer-mop doesn't work
[TritonDataCenter#203]   Failure as build host for SBCL
[TritonDataCenter#300]   Gray streams aren't streams
[TritonDataCenter#302]   Symbols fail to autoload
[TritonDataCenter#303]   CL:LOAD ignores :EXTERNAL-FORMAT argument
[TritonDataCenter#304]   Stack abstraction inconsistency between Java and Lisp frames
[TritonDataCenter#308]   Compiled FLET exhausts the stack
[TritonDataCenter#309]   Printer should obey package-local nicknames
[TritonDataCenter#310]   Invocation of tests from from build.xml broken
[TritonDataCenter#311]   UIOP fails to upgrade
[TritonDataCenter#312]   BORDEAUX-THREADS-TEST::CONDITION-VARIABLE hangs
[TritonDataCenter#282]   Spurious macros redefinition warnings
Licenser pushed a commit to project-fifo/pkgsrc that referenced this issue Aug 12, 2014
Babel Changelog
===============

Version 1.3
-----------

(bugfix release, released on July 29th 2013)

- Fixed a bug in likely-subtag resolving for some common locales.
  This primarily makes ``zh_CN`` work again which was broken
  due to how it was defined in the likely subtags combined with
  our broken resolving.  This fixes TritonDataCenter#37.
- Fixed a bug that caused pybabel to break when writing to stdout
  on Python 3.
- Removed a stray print that was causing issues when writing to
  stdout for message catalogs.

Version 1.2
-----------

(bugfix release, released on July 27th 2013)

- Included all tests in the tarball.  Previously the include
  skipped past recursive folders.
- Changed how tests are invoked and added separate standalone
  test command.  This simplifies testing of the package for
  linux distributors.

Version 1.1
-----------

(bugfix release, released on July 27th 2013)

- added dummy version requirements for pytz so that it installs
  on pip 1.4.
- Included tests in the tarball.

Version 1.0
-----------

(Released on July 26th 2013, codename Revival)

- support python 2.6, 2.7, 3.3+ and pypy - drop all other versions
- use tox for testing on different pythons
- Added support for the locale plural rules defined by the CLDR.
- Added `format_timedelta` function to support localized formatting of
  relative times with strings such as "2 days" or "1 month" (ticket TritonDataCenter#126).
- Fixed negative offset handling of Catalog._set_mime_headers (ticket TritonDataCenter#165).
- Fixed the case where messages containing square brackets would break with
  an unpack error.
- updated to CLDR 23
- Make the CLDR import script work with Python 2.7.
- Fix various typos.
- Sort output of list-locales.
- Make the POT-Creation-Date of the catalog being updated equal to
  POT-Creation-Date of the template used to update (ticket TritonDataCenter#148).
- Use a more explicit error message if no option or argument (command) is
  passed to pybabel (ticket TritonDataCenter#81).
- Keep the PO-Revision-Date if it is not the default value (ticket TritonDataCenter#148).
- Make --no-wrap work by reworking --width's default and mimic xgettext's
  behaviour of always wrapping comments (ticket TritonDataCenter#145).
- Add --project and --version options for commandline (ticket TritonDataCenter#173).
- Add a __ne__() method to the Local class.
- Explicitly sort instead of using sorted() and don't assume ordering
  (Jython compatibility).
- Removed ValueError raising for string formatting message checkers if the
  string does not contain any string formattings (ticket TritonDataCenter#150).
- Fix Serbian plural forms (ticket TritonDataCenter#213).
- Small speed improvement in format_date() (ticket TritonDataCenter#216).
- Fix so frontend.CommandLineInterface.run does not accumulate logging
  handlers (TritonDataCenter#227, reported with initial patch by dfraser)
- Fix exception if environment contains an invalid locale setting (TritonDataCenter#200)
- use cPickle instead of pickle for better performance (TritonDataCenter#225)
- Only use bankers round algorithm as a tie breaker if there are two nearest
  numbers, round as usual if there is only one nearest number (TritonDataCenter#267, patch by
  Martin)
- Allow disabling cache behaviour in LazyProxy (TritonDataCenter#208, initial patch from Pedro
  Algarvio)
- Support for context-aware methods during message extraction (TritonDataCenter#229, patch
  from David Rios)
- "init" and "update" commands support "--no-wrap" option (TritonDataCenter#289)
- fix formatting of fraction in format_decimal() if the input value is a float
  with more than 7 significant digits (TritonDataCenter#183)
- fix format_date() with datetime parameter (TritonDataCenter#282, patch from Xavier Morel)
- fix format_decimal() with small Decimal values (TritonDataCenter#214, patch from George Lund)
- fix handling of messages containing '\\n' (TritonDataCenter#198)
- handle irregular multi-line msgstr (no "" as first line) gracefully (TritonDataCenter#171)
- parse_decimal() now returns Decimals not floats, API change (TritonDataCenter#178)
- no warnings when running setup.py without installed setuptools (TritonDataCenter#262)
- modified Locale.__eq__ method so Locales are only equal if all of their
  attributes (language, territory, script, variant) are equal
- resort to hard-coded message extractors/checkers if pkg_resources is
  installed but no egg-info was found (TritonDataCenter#230)
- format_time() and format_datetime() now accept also floats (TritonDataCenter#242)
- add babel.support.NullTranslations class similar to gettext.NullTranslations
  but with all of Babel's new gettext methods (TritonDataCenter#277)
- "init" and "update" commands support "--width" option (TritonDataCenter#284)
- fix 'input_dirs' option for setuptools integration (TritonDataCenter#232, initial patch by
  Étienne Bersac)
- ensure .mo file header contains the same information as the source .po file
  (TritonDataCenter#199)
- added support for get_language_name() on the locale objects.
- added support for get_territory_name() on the locale objects.
- added support for get_script_name() on the locale objects.
- added pluralization support for currency names and added a '¤¤¤'
  pattern for currencies that includes the full name.
- depend on pytz now and wrap it nicer.  This gives us improved support
  for things like timezone transitions and an overall nicer API.
- Added support for explicit charset to PO file reading.
- Added experimental Python 3 support.
- Added better support for returning timezone names.
- Don't throw away a Catalog's obsolete messages when updating it.
- Added basic likelySubtag resolving when doing locale parsing and no
  match can be found.
Licenser pushed a commit to project-fifo/pkgsrc that referenced this issue Aug 12, 2014
pkgsrc changes:
---------------
- Depends on security/py-ecdsa
- FETCH_USING=curl to deal with PyPi's htpps only website.

upstream changes:
-----------------
v1.12.0 (27th Sep 2013)
-----------------------

* TritonDataCenter#152: Add tentative support for ECDSA keys. *This adds the ecdsa
  module as a new dependency of Paramiko.* The module is available at
  [warner/python-ecdsa on Github](https://github.com/warner/python-ecdsa) and
  [ecdsa on PyPI](https://pypi.python.org/pypi/ecdsa).
    * Note that you might still run into problems with key negotiation --
      Paramiko picks the first key that the server offers, which might not be
      what you have in your known_hosts file.
    * Mega thanks to Ethan Glasser-Camp for the patch.
* TritonDataCenter#136: Add server-side support for the SSH protocol's 'env' command. Thanks to
  Benjamin Pollack for the patch.

v1.11.2 (27th Sep 2013)
-----------------------

* TritonDataCenter#156: Fix potential deadlock condition when using Channel objects as sockets
  (e.g. when using SSH gatewaying). Thanks to Steven Noonan and Frank Arnold
  for catch & patch.
* TritonDataCenter#179: Fix a missing variable causing errors when an ssh_config file has a
  non-default AddressFamily set. Thanks to Ed Marshall & Tomaz Muraus for catch
  & patch.
* TritonDataCenter#200: Fix an exception-causing typo in `demo_simple.py`. Thanks to Alex
  Buchanan for catch & Dave Foster for patch.
* TritonDataCenter#199: Typo fix in the license header cross-project. Thanks to Armin Ronacher
  for catch & patch.

v1.12.0 (27th Sep 2013)
-----------------------

* TritonDataCenter#152: Add tentative support for ECDSA keys. *This adds the ecdsa
  module as a new dependency of Paramiko.* The module is available at
  [warner/python-ecdsa on Github](https://github.com/warner/python-ecdsa) and
  [ecdsa on PyPI](https://pypi.python.org/pypi/ecdsa).
    * Note that you might still run into problems with key negotiation --
      Paramiko picks the first key that the server offers, which might not be
      what you have in your known_hosts file.
    * Mega thanks to Ethan Glasser-Camp for the patch.
* TritonDataCenter#136: Add server-side support for the SSH protocol's 'env' command. Thanks to
  Benjamin Pollack for the patch.

v1.11.2 (27th Sep 2013)
-----------------------

* TritonDataCenter#156: Fix potential deadlock condition when using Channel objects as sockets
  (e.g. when using SSH gatewaying). Thanks to Steven Noonan and Frank Arnold
  for catch & patch.
* TritonDataCenter#179: Fix a missing variable causing errors when an ssh_config file has a
  non-default AddressFamily set. Thanks to Ed Marshall & Tomaz Muraus for catch
  & patch.
* TritonDataCenter#200: Fix an exception-causing typo in `demo_simple.py`. Thanks to Alex
  Buchanan for catch & Dave Foster for patch.
* TritonDataCenter#199: Typo fix in the license header cross-project. Thanks to Armin Ronacher
  for catch & patch.
Licenser pushed a commit to project-fifo/pkgsrc that referenced this issue Aug 12, 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)
notxarb referenced this issue in nanobox-io/nanobox-pkgsrc-lite May 8, 2015
Squashed commit of the following:

commit 130c8eb2df4b63034353a232af8e5fa4526693a5
Merge: 5888b51 a980f97
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Sun Apr 26 23:00:03 2015 +0100

    Merge branch 'joyent/feature/miscfix/2015Q1' into joyent/release/2015Q1

commit a980f97415f48af9407551d6e515a09104079a8d
Merge: 1cbc272 fdbe317
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Sun Apr 26 22:55:29 2015 +0100

    Merge branch 'pkgsrc_2015Q1' into joyent/feature/miscfix/2015Q1

commit fdbe317df493f113aa0a8bdcf1ec1b6b65937bf4
Author: tron <tron>
Date:   Sun Apr 26 08:47:38 2015 +0000

    Pullup tickets #4684, #4685 and #4686.

commit faae9e8bdb9fe7ab45c47c87b904784650e473d4
Author: tron <tron>
Date:   Sun Apr 26 08:47:12 2015 +0000

    Pullup ticket #4686 - requested by taca
    lang/ruby22-base: security update

    Revisions pulled up:
    - lang/ruby/rubyversion.mk                                      1.141
    - lang/ruby22-base/distinfo                                     1.2

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Sun Apr 19 16:25:10 UTC 2015

       Modified Files:
       	pkgsrc/lang/ruby: rubyversion.mk
       	pkgsrc/lang/ruby22-base: distinfo

       Log Message:
       Update ruby22-base and ruby22 package to 2.2.2.

       >From release announce:

       We are pleased to announce the release of Ruby 2.2.2. This is a TEENY version
       release of the stable 2.2 series.

       This release includes the security fix for a OpenSSL extension's hostname
       verification vulnerability.

           CVE-2015-1855: Ruby OpenSSL Hostname Verification

       There are also some bugfixes. See ChangeLog for details.

commit 6e88dba1add92447fc97f35ec9518d1a58ce2484
Author: tron <tron>
Date:   Sun Apr 26 08:36:34 2015 +0000

    Pullup ticket #4685 - requested by taca
    lang/ruby21-base: security update

    Revisions pulled up:
    - lang/ruby/rubyversion.mk                                      1.140
    - lang/ruby21-base/PLIST                                        1.6
    - lang/ruby21-base/distinfo                                     1.14-1.15
    - lang/ruby21-base/patches/patch-configure                      1.3
    - lang/ruby21-base/patches/patch-lib_rdoc_text.rb               deleted
    - lang/ruby21/Makefile                                          1.3

    ---
       Module Name:	pkgsrc
       Committed By:	jperkin
       Date:		Fri Apr  3 09:02:24 UTC 2015

       Modified Files:
       	pkgsrc/lang/ruby21-base: distinfo
       	pkgsrc/lang/ruby21-base/patches: patch-configure

       Log Message:
       Disable CPU detection on Darwin, the result for 32-bit (i486) is incompatible
       with pkgsrc MACHINE_ARCH (i386).  Fixes 32-bit build, no change for 64-bit.

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Sun Apr 19 16:19:00 UTC 2015

       Modified Files:
       	pkgsrc/lang/ruby: rubyversion.mk
       	pkgsrc/lang/ruby21-base: PLIST distinfo
       Removed Files:
       	pkgsrc/lang/ruby21-base/patches: patch-lib_rdoc_text.rb

       Log Message:
       Update ruby21-base and ruby21 packages to 2.1.6.

       >From release announce:

       Ruby 2.1.6 has been released.

       This release includes a security fix for OpenSSL extension. Please view the
       topic below for more details.

           CVE-2015-1855: Ruby OpenSSL Hostname Verification

       And, many bug fixes are also included. See tickets and ChangeLog for details.

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Sun Apr 19 16:20:42 UTC 2015

       Modified Files:
       	pkgsrc/lang/ruby21: Makefile

       Log Message:
       Reset PKGREVISION.

commit 072ebbdcf4981a4582ea66498337b1e25e302b8c
Author: tron <tron>
Date:   Sun Apr 26 08:26:15 2015 +0000

    Pullup ticket #4684 - requested by taca
    lang/ruby200-base: security update

    Revisions pulled up:
    - lang/ruby/rubyversion.mk                                      1.139
    - lang/ruby200-base/distinfo                                    1.23 via patch

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Sun Apr 19 16:12:23 UTC 2015

       Modified Files:
       	pkgsrc/lang/ruby: rubyversion.mk
       	pkgsrc/lang/ruby200-base: distinfo

       Log Message:
       Update ruby200 package to 2.0.0p645 (Ruby 2.0.0-p645).

       >From release announce:

       We are pleased to announce the release of Ruby 2.0.0-p645.

       This release includes a security fix for OpenSSL extension. Please view the
       topic below for more details.

           CVE-2015-1855: Ruby OpenSSL Hostname Verification

       Ruby 2.0.0 is now under the state of the security maintenance phase, until
       Feb. 24th, 2016. After the date, maintenance of Ruby 2.0.0 will be ended. We
       recommend you start planning migration to newer versions of Ruby, such as 2.1
       or 2.2.

       This release includes the security fix mentioned above along with small
       changes required for test environment (that shouldn't affect normal users).

       See ChangeLog for full details.

commit 58cd83802d5111831a785666eefc272c1c43051f
Author: bsiegert <bsiegert>
Date:   Sat Apr 25 20:08:09 2015 +0000

    Pullup ticket 4670

commit 259293bfa47febf9a2b4d4d71c94c3c467f0397f
Author: bsiegert <bsiegert>
Date:   Sat Apr 25 20:08:04 2015 +0000

    Pullup ticket #4670 - requested by joerg
    devel/rsltc: build fix

    Revisions pulled up:
    - devel/rsltc/Makefile                                          1.16

    ---
       Module Name:	pkgsrc
       Committed By:	joerg
       Date:		Sat Apr 18 20:40:46 UTC 2015

       Modified Files:
       	pkgsrc/devel/rsltc: Makefile

       Log Message:
       Let clang ignore the mixed up return use of the K&R code.

commit 5342fbe8148fa3cc6051f8087e07c96b646a573c
Author: bsiegert <bsiegert>
Date:   Sat Apr 25 19:28:44 2015 +0000

    Pullup ticket #4682 - requested by hiramatsu
    inputmethod/librime: build fix

    Revisions pulled up:
    - inputmethod/librime/distinfo                                  1.3
    - inputmethod/librime/patches/patch-src_dict_table.cc           1.2

    ---
       Module Name:	pkgsrc
       Committed By:	hiramatsu
       Date:		Tue Apr 21 13:59:31 UTC 2015

       Modified Files:
       	pkgsrc/inputmethod/librime: distinfo
       	pkgsrc/inputmethod/librime/patches: patch-src_dict_table.cc

       Log Message:
       Fix build break with gcc.

commit 924e69ca4577415c75e6b584de574ca82b51dcc1
Author: hiramatsu <hiramatsu>
Date:   Sat Apr 25 04:06:02 2015 +0000

    pullup #4683

commit ca4f2559fbd0e9f02fa251517d3b9d92ff68d961
Author: hiramatsu <hiramatsu>
Date:   Sat Apr 25 04:04:43 2015 +0000

    Pullup ticket #4683 - requested by joerg
    editors/p5-Wx-Scintilla: link fix patch

    Revisions pulled up:
    - editors/p5-Wx-Scintilla/distinfo                              1.3
    - editors/p5-Wx-Scintilla/patches/patch-aa                      1.3

    ---
       Module Name: pkgsrc
       Committed By:        joerg
       Date:                Fri Apr 17 15:22:44 UTC 2015

       Modified Files:
            pkgsrc/editors/p5-Wx-Scintilla: distinfo
            pkgsrc/editors/p5-Wx-Scintilla/patches: patch-aa

       Log Message:
       Don't depend on ${PREFIX}/lib to be added implicitly by the wrappers.
       Don't use empty arguments to -o.

commit 26b7efffbf80de9703df2d47f9fcd08a5374ec2c
Author: hiramatsu <hiramatsu>
Date:   Fri Apr 24 16:18:39 2015 +0000

    pullup #4654.

commit dc5bb12c74c6a65858d49e497554493bd3f63564
Author: hiramatsu <hiramatsu>
Date:   Fri Apr 24 16:07:10 2015 +0000

    Pullup ticket #4654 - requested by dsainty
    security/zoneminder: security update

    Revisions pulled up:
    - security/zoneminder/Makefile                                  1.18
    - security/zoneminder/distinfo                                  1.7
    - security/zoneminder/MESSAGE                                   1.3
    - security/zoneminder/PLIST                                     1.4
    - security/zoneminder/patches/patch-Makefile_am                 1.3
    - security/zoneminder/patches/patch-configure_ac                1.4
    - security/zoneminder/patches/patch-scripts_ZoneMinder_lib_ZoneMinder_General_pm 1.2
    - security/zoneminder/patches/patch-scripts_zm_in               1.3
    - security/zoneminder/patches/patch-src_Makefile_am             1.3
    - security/zoneminder/patches/patch-src_zm__thread.h            1.4
    - security/zoneminder/patches/patch-src_zm__timer.h             1.3
    - security/zoneminder/patches/patch-src_zm__utils.h             1.2
    - security/zoneminder/patches/patch-src_zm_ffmpeg_camera_cpp    1.1
    - security/zoneminder/patches/patch-src_zm_remote_camera_h      1.4
    - security/zoneminder/patches/patch-src_zm_signal_cpp           1.1
    - security/zoneminder/patches/patch-src_zm_signal_h             deleted
    - security/zoneminder/patches/patch-src_zmf_cpp                 deleted

    ---
       Module Name:    pkgsrc
       Committed By:   dsainty
       Date:           Sun Apr  5 08:51:08 UTC 2015

       Modified Files:
               pkgsrc/security/zoneminder: MESSAGE Makefile PLIST distinfo
               pkgsrc/security/zoneminder/patches: patch-Makefile_am
                   patch-configure_ac
                   patch-scripts_ZoneMinder_lib_ZoneMinder_General_pm
                   patch-scripts_zm_in patch-src_Makefile_am patch-src_zm__thread.h
                   patch-src_zm__timer.h patch-src_zm__utils.h
                   patch-src_zm_remote_camera_h
       Removed Files:
               pkgsrc/security/zoneminder/patches: patch-src_zm_signal_h
                   patch-src_zmf_cpp

       Log Message:
       Update ZoneMinder from 1.25.0 to 1.28.1.

       Numerous changes, documented at:
        https://github.com/ZoneMinder/ZoneMinder/releases

       Addresses two security advisories:

         https://github.com/ZoneMinder/ZoneMinder/releases/tag/v1.28.0
         http://secunia.com/advisories/62918/

       Pkgsrc changes:

       patch-src_zm_signal_h is no longer necessary because zm_signal.h uses
       HAVE_EXECINFO_H.

       patch-src_zmf_cpp appears to be applied upstream.

       patch-configure_ac no longer needs to set PATH_BUILD to
       PREFIX/share/zoneminder, so that zmupdate.pl can locate the database build
       scripts as installed files.  Upstream has now implemented this via the
       ZM_PATH_DATA entry in zm.conf, and adds a ZM_PATH_DATA/db subdirectory.

       src/Makefile.am no longer setuid's zmfix, as zmfix was removed from
       ZoneMinder 1.26.6.

       The code now uses clock_gettime(), which on some systems (like Linux), calls
       for -lrt.  Since the build system isn't aware of this, but Pkgsrc is, just set
       PTHREAD_AUTO_VARS=yes.

       The PHP code now uses PDO for DB access, but it looks like there are some
       straggling dependencies on the raw MySQL driver, so both are pulled in.

    ---
       Module Name:    pkgsrc
       Committed By:   dsainty
       Date:           Tue Apr  7 12:32:59 UTC 2015

       Modified Files:
               pkgsrc/security/zoneminder: Makefile

       Log Message:
       NetBSD's tar (6.1) does an exit(1) on the source archive, complaining:

        Invalid header, starting valid header search.

       As a workaround: EXTRACT_USING=gtar

    ---
       Module Name:    pkgsrc
       Committed By:   dsainty
       Date:           Tue Apr  7 12:54:36 UTC 2015

       Modified Files:
               pkgsrc/security/zoneminder: distinfo
               pkgsrc/security/zoneminder/patches: patch-configure_ac

       Log Message:
       Recognise lower-case "netbsd" as BSD.

       NB: This doesn't fix the threads portability issues yet for NetBSD, but gets
       through configuration.

    ---
       Module Name:    pkgsrc
       Committed By:   dsainty
       Date:           Fri Apr 10 02:53:20 UTC 2015

       Modified Files:
               pkgsrc/security/zoneminder: Makefile

       Log Message:
       New ZoneMinder supports the newer ffmpeg APIs, so switch the ffmpeg
       dependency from ffmpeg010 to ffmpeg2.

    ---
       Module Name:    pkgsrc
       Committed By:   dsainty
       Date:           Fri Apr 10 02:58:49 UTC 2015

       Modified Files:
               pkgsrc/security/zoneminder: Makefile distinfo
               pkgsrc/security/zoneminder/patches: patch-src_zm__thread.h
                   patch-src_zm__timer.h
       Added Files:
               pkgsrc/security/zoneminder/patches: patch-src_zm_ffmpeg_camera_cpp
                   patch-src_zm_signal_cpp

       Log Message:
       Patch up some Linux-specific assumptions in the code.

       Fixes build under NetBSD.

       Bump PKGREVISION for switch to ffmpeg2, and some portability changes that
       aren't expected to affect functionality.

    ---
       Module Name:    pkgsrc
       Committed By:   dsainty
       Date:           Wed Apr 22 15:13:44 UTC 2015

       Modified Files:
               pkgsrc/security/zoneminder: Makefile

       Log Message:
       Fix paths in two missed installed scripts.

       The intention of zmsystemctl.pl is to use bin/pkexec to allow the apache user
       to start and stop the ZoneMinder services on operating systems using systemd
       and newer versions of Polkit than Pkgsrc currently has.

       If the base OS doesn't use systemd (E.g. anything not Linux), this file
       shouldn't be used anyway.

       In Pkgsrc we ignore the potentially absent pkexec interpreter in this file.
       If the base OS uses systemd, it probably also has pkexec in its base
       installation.

       Bump PKGREVISION.

commit 5888b51a0b3b68add698d985f00528ba171625b4
Merge: 0d3b50c 1cbc272
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Thu Apr 23 12:34:40 2015 +0100

    Merge branch 'joyent/feature/miscfix/2015Q1' into joyent/release/2015Q1

commit 1cbc272373cd255cd6a62f723a2d6e3efd36e50e
Merge: ccca9bf cc4bcc6
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Thu Apr 23 12:33:54 2015 +0100

    Merge branch 'pkgsrc_2015Q1' into joyent/feature/miscfix/2015Q1

commit 0d3b50ce89ba6306650de22989cd367056fea258
Merge: a5f8d21 ccca9bf
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Thu Apr 23 10:40:08 2015 +0100

    Merge branch 'joyent/feature/miscfix/2015Q1' into joyent/release/2015Q1

commit ccca9bf3edab64da44b0dc2b92675a00155d6fed
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Thu Apr 23 10:38:13 2015 +0100

    www/curl: backport 7.42.0 update.

commit 9e10d96a16dc43313e438319d39b61658df06820
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Thu Apr 23 10:36:53 2015 +0100

    Backport changes to disable epoll/inotify.

commit cc4bcc659cd1f7d2b5f05c11d767b03ed87f07f4
Author: tron <tron>
Date:   Wed Apr 22 22:55:10 2015 +0000

    Pullup tickets #4680 and #4681.

commit da8721d64da4906e7d9cec770d35c0227d1e8c79
Author: tron <tron>
Date:   Wed Apr 22 22:54:34 2015 +0000

    Pullup ticket #4681 - requested by joerg
    graphics/p5-PerlMagick: bug fix patch

    Revisions pulled up:
    - graphics/p5-PerlMagick/Makefile                               1.110

    ---
       Module Name:	pkgsrc
       Committed By:	joerg
       Date:		Tue Apr 21 17:21:18 UTC 2015

       Modified Files:
       	pkgsrc/graphics/p5-PerlMagick: Makefile

       Log Message:
       Don't use the shipped Magick.pm, it has the wrong bootstrap version.

commit c9a8d86c67b8dbd0b626c588d5210245c521a90f
Author: tron <tron>
Date:   Wed Apr 22 22:43:54 2015 +0000

    Pullup ticket #4680 - requested by taca
    lang/php56: security update

    Revisions pulled up:
    - lang/php/phpversion.mk                                        1.96
    - lang/php56/distinfo                                           1.9

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Fri Apr 17 16:42:43 UTC 2015

       Modified Files:
       	pkgsrc/lang/php: phpversion.mk
       	pkgsrc/lang/php56: distinfo

       Log Message:
       Update php56 to 5.6.8.

       16 Apr 2015, PHP 5.6.8

       - Core:
         . Fixed bug #66609 (php crashes with __get() and ++ operator in some cases).
           (Dmitry, Laruence)
         . Fixed bug #68021 (get_browser() browser_name_regex returns non-utf-8
           characters). (Tjerk)
         . Fixed bug #68917 (parse_url fails on some partial urls). (Wei Dai)
         . Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM
           configuration options). (Anatol Belski)
         . Additional fix for bug #69152 (Type confusion vulnerability in
           exception::getTraceAsString). (Stas)
         . Fixed bug #69210 (serialize function return corrupted data when sleep has
           non-string values). (Juan Basso)
         . Fixed bug #69212 (Leaking VIA_HANDLER func when exception thrown in
           __call/... arg passing). (Nikita)
         . Fixed bug #69221 (Segmentation fault when using a generator in combination
           with an Iterator). (Nikita)
         . Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion
           vulnerability). (Stas)
         . Fixed bug #69353 (Missing null byte checks for paths in various PHP
           extensions). (Stas)

       - Apache2handler:
         . Fixed bug #69218 (potential remote code execution with apache 2.4
           apache2handler). (Gerrit Venema)

       - cURL:
         . Implemented FR#69278 (HTTP2 support). (Masaki Kagaya)
         . Fixed bug #68739 (Missing break / control flow). (Laruence)
         . Fixed bug #69316 (Use-after-free in php_curl related to
           CURLOPT_FILE/_INFILE/_WRITEHEADER). (Laruence)

       - Date:
         . Fixed bug #69336 (Issues with "last day of <monthname>"). (Derick Rethans)

       - Enchant:
         . Fixed bug #65406 (Enchant broker plugins are in the wrong place in windows
           builds). (Anatol)

       - Ereg:
         . Fixed bug #68740 (NULL Pointer Dereference). (Laruence)

       - Fileinfo:
         . Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or
           segfault). (Anatol Belski)

       - Filter:
         . Fixed bug #69202: (FILTER_FLAG_STRIP_BACKTICK ignored unless other
           flags are used). (Jeff Welch)
         . Fixed bug #69203 (FILTER_FLAG_STRIP_HIGH doesn't strip ASCII 127). (Jeff
           Welch)

       - OPCache:
         . Fixed bug #69297 (function_exists strange behavior with OPCache on
           disabled function). (Laruence)
         . Fixed bug #69281 (opcache_is_script_cached no longer works). (danack)
         . Fixed bug #68677 (Use After Free). (CVE-2015-1351) (Laruence)

       - OpenSSL
         . Fixed bugs #68853, #65137 (Buffered crypto stream data breaks IO polling
           in stream_select() contexts) (Chris Wright)
         . Fixed bug #69197 (openssl_pkcs7_sign handles default value incorrectly)
           (Daniel Lowrey)
         . Fixed bug #69215 (Crypto servers should send client CA list)
           (Daniel Lowrey)
         . Add a check for RAND_egd to allow compiling against LibreSSL (Leigh)

       - Phar:
         . Fixed bug #64343 (PharData::extractTo fails for tarball created by BSD tar).
           (Mike)
         . Fixed bug #64931 (phar_add_file is too restrictive on filename). (Mike)
         . Fixed bug #65467 (Call to undefined method cli_arg_typ_string). (Mike)
         . Fixed bug #67761 (Phar::mapPhar fails for Phars inside a path containing
           ".tar"). (Mike)
         . Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar). (Stas)
         . Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in
           phar_set_inode). (Stas)

       - Postgres:
         . Fixed bug #68741 (Null pointer dereference). (CVE-2015-1352) (Laruence)

       - SPL:
         . Fixed bug #69227 (Use after free in zval_scan caused by
            spl_object_storage_get_gc). (adam dot scarr at 99designs dot com)

       - SOAP:
         . Fixed bug #69293 (NEW segfault when using SoapClient::__setSoapHeader
            (bisected, regression)). (Laruence)

       - Sqlite3:
         . Fixed bug #68760 (SQLITE segfaults if custom collator throws an exception).
            (Dan Ackroyd)
         . Fixed bug #69287 (Upgrade bundled libsqlite to 3.8.8.3). (Anatol)
         . Fixed bug #66550 (SQLite prepared statement use-after-free). (Sean Heelan)

commit fcea77f015634d2ceccf87aa8cb9d4d6f37c4fb8
Author: tron <tron>
Date:   Tue Apr 21 21:55:20 2015 +0000

    Pullup tickets #4676, #4677, #4678 and #4679.

commit 925ab7098bb6cc3ce910092b754e612ad6aad606
Author: tron <tron>
Date:   Tue Apr 21 21:53:52 2015 +0000

    Pullup ticket #4679 - requested by taca
    lang/php55: security update

    Revisions pulled up:
    - lang/php/phpversion.mk                                        1.95
    - lang/php55/distinfo                                           1.39

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Fri Apr 17 16:40:58 UTC 2015

       Modified Files:
       	pkgsrc/lang/php: phpversion.mk
       	pkgsrc/lang/php55: distinfo

       Log Message:
       Update php55 to 5.5.24.

       16 Apr 2015, PHP 5.5.24

       - Apache2handler:
         . Fixed bug #69218 (potential remote code execution with apache 2.4
           apache2handler). (Gerrit Venema)

       - Core:
         . Fixed bug #66609 (php crashes with __get() and ++ operator in some cases).
           (Dmitry, Laruence)
         . Fixed bug #67626 (User exceptions not properly handled in streams).
           (Julian)
         . Fixed bug #68021 (get_browser() browser_name_regex returns non-utf-8
           characters). (Tjerk)
         . Fixed bug #68917 (parse_url fails on some partial urls). (Wei Dai)
         . Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM
           configuration options). (Anatol Belski)
         . Additional fix for bug #69152 (Type confusion vulnerability in
           exception::getTraceAsString). (Stas)
         . Fixed bug #69212 (Leaking VIA_HANDLER func when exception thrown in
           __call/... arg passing). (Nikita)
         . Fixed bug #69221 (Segmentation fault when using a generator in combination
           with an Iterator). (Nikita)
         . Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion
           vulnerability). (Stas)
         . Fixed bug #69353 (Missing null byte checks for paths in various PHP
           extensions). (Stas)

       - Curl:
         . Implemented FR#69278 (HTTP2 support). (Masaki Kagaya)
         . Fixed bug #69316 (Use-after-free in php_curl related to
           CURLOPT_FILE/_INFILE/_WRITEHEADER). (Laruence)

       - Date:
         . Export date_get_immutable_ce so that it can be used by extensions. (Derick
           Rethans)
         . Fixed bug #69336 (Issues with "last day of <monthname>"). (Derick Rethans)

       - Enchant:
         . Fixed bug #65406 (Enchant broker plugins are in the wrong place in windows
           builds). (Anatol)

       - Fileinfo:
         . Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or
           segfault). (Anatol Belski)

       - Filter:
         . Fixed bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other
           flags are used). (Jeff Welch)
         . Fixed bug #69203 (FILTER_FLAG_STRIP_HIGH doesn't strip ASCII 127). (Jeff
           Welch)

       - Mbstring:
         . Fixed bug #68846 (False detection of CJK Unified Ideographs Extension E).
           (Masaki Kagaya)

       - OPCache
          . Fixed bug #68677 (Use After Free). (CVE-2015-1351) (Laruence)
          . Fixed bug #69281 (opcache_is_script_cached no longer works). (danack)

       - OpenSSL:
         . Fixed bug #67403 (Add signatureType to openssl_x509_parse).
         . Add a check for RAND_egd to allow compiling against LibreSSL (Leigh)

       - Phar:
         . Fixed bug #64343 (PharData::extractTo fails for tarball created by BSD tar).
           (Mike)
         . Fixed bug #64931 (phar_add_file is too restrictive on filename). (Mike)
         . Fixed bug #65467 (Call to undefined method cli_arg_typ_string). (Mike)
         . Fixed bug #67761 (Phar::mapPhar fails for Phars inside a path containing
           ".tar"). (Mike)
         . Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar). (Stas)
         . Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in
           phar_set_inode). (Stas)

       - Postgres:
         . Fixed bug #68741 (Null pointer dereference). (CVE-2015-1352) (Laruence)

       - SPL:
         . Fixed bug #69227 (Use after free in zval_scan caused by
            spl_object_storage_get_gc). (adam dot scarr at 99designs dot com)

       - SOAP:
         . Fixed bug #69293 (NEW segfault when using SoapClient::__setSoapHeader
            (bisected, regression)). (thomas at shadowweb dot org, Laruence)

       - SQLITE:
         . Fixed bug #68760 (SQLITE segfaults if custom collator throws an exception).
            (Dan Ackroyd)
         . Fixed bug #69287 (Upgrade bundled sqlite to 3.8.8.3). (Anatol)

commit 06cfdb83dfa6add7a1890739e737320f7ca3044b
Author: tron <tron>
Date:   Tue Apr 21 21:50:09 2015 +0000

    Pullup ticket #4677 - requested by taca
    lang/php54: security update

    Revisions pulled up:
    - lang/php/phpversion.mk                                        1.94
    - lang/php54/distinfo                                           1.56

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Fri Apr 17 16:39:56 UTC 2015

       Modified Files:
       	pkgsrc/lang/php: phpversion.mk
       	pkgsrc/lang/php54: distinfo

       Log Message:
       Update php54 to 5.4.40.

       16 Apr 2015 PHP 5.4.40

       - Apache2handler:
         . Fixed bug #69218 (potential remote code execution with apache 2.4
           apache2handler). (Gerrit Venema)

       - Core:
         . Additional fix for bug #69152 (Type confusion vulnerability in
           exception::getTraceAsString). (Stas)
         . Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion
           vulnerability). (Stas)
         . Fixed bug #69353 (Missing null byte checks for paths in various PHP
           extensions). (Stas)

       - cURL:
         . Fixed bug #69316 (Use-after-free in php_curl related to
           CURLOPT_FILE/_INFILE/_WRITEHEADER). (Laruence)

       - Ereg:
         . Fixed bug #68740 (NULL Pointer Dereference). (Laruence)

       - Fileinfo:
         . Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or
           segfault). (Anatol Belski)

       - GD:
         . Fixed bug #68601 (buffer read overflow in gd_gif_in.c). (Remi)

       - Phar:
         . Fixed bug #68901 (use after free). (bugreports at internot dot info)
         . Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar). (Stas)
         . Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in
           phar_set_inode). (Stas)

       - Postgres:
         . Fixed bug #68741 (Null pointer deference) (CVE-2015-1352). (Xinchen Hui)

       - SOAP:
         . Fixed bug #69152 (Type Confusion Infoleak Vulnerability in unserialize()
           with SoapFault). (Dmitry)

       - Sqlite3:
         . Fixed bug #66550 (SQLite prepared statement use-after-free). (Sean Heelan)

commit 259235aeb1391a7d418c7f05567d8fd849ecbf64
Author: tron <tron>
Date:   Tue Apr 21 21:44:22 2015 +0000

    Pullup ticket #4678 - requested by taca
    net/ntp4: security update

    Revisions pulled up:
    - net/ntp4/Makefile                                             1.85
    - net/ntp4/PLIST                                                1.18
    - net/ntp4/distinfo                                             1.21

    ---
       Module Name:	pkgsrc
       Committed By:	taca
       Date:		Wed Apr  8 03:31:34 UTC 2015

       Modified Files:
       	pkgsrc/net/ntp4: Makefile PLIST distinfo

       Log Message:
       Update ntp4 package to 4.2.8p2.

       NTP 4.2.8p2 (Harlan Stenn <stenn@ntp.org>, 2015/04/xx)

       Focus: Security and Bug fixes, enhancements.

       Severity: MEDIUM

       In addition to bug fixes and enhancements, this release fixes the
       following medium-severity vulnerabilities involving private key
       authentication:

       * [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.

           References: Sec 2779 / CVE-2015-1798 / VU#374268
           Affects: All NTP4 releases starting with ntp-4.2.5p99 up to but not
       	including ntp-4.2.8p2 where the installation uses symmetric keys
       	to authenticate remote associations.
           CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
           Date Resolved: Stable (4.2.8p2) 07 Apr 2015
           Summary: When ntpd is configured to use a symmetric key to authenticate
       	a remote NTP server/peer, it checks if the NTP message
       	authentication code (MAC) in received packets is valid, but not if
       	there actually is any MAC included. Packets without a MAC are
       	accepted as if they had a valid MAC. This allows a MITM attacker to
       	send false packets that are accepted by the client/peer without
       	having to know the symmetric key. The attacker needs to know the
       	transmit timestamp of the client to match it in the forged reply
       	and the false reply needs to reach the client before the genuine
       	reply from the server. The attacker doesn't necessarily need to be
       	relaying the packets between the client and the server.

       	Authentication using autokey doesn't have this problem as there is
       	a check that requires the key ID to be larger than NTP_MAXKEY,
       	which fails for packets without a MAC.
           Mitigation:
               Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
       	or the NTP Public Services Project Download Page
               Configure ntpd with enough time sources and monitor it properly.
           Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.

       * [Sec 2781] Authentication doesn't protect symmetric associations against
         DoS attacks.

           References: Sec 2781 / CVE-2015-1799 / VU#374268
           Affects: All NTP releases starting with at least xntp3.3wy up to but
       	not including ntp-4.2.8p2 where the installation uses symmetric
       	key authentication.
           CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
           Note: the CVSS base Score for this issue could be 4.3 or lower, and
       	it could be higher than 5.4.
           Date Resolved: Stable (4.2.8p2) 07 Apr 2015
           Summary: An attacker knowing that NTP hosts A and B are peering with
       	each other (symmetric association) can send a packet to host A
       	with source address of B which will set the NTP state variables
       	on A to the values sent by the attacker. Host A will then send
       	on its next poll to B a packet with originate timestamp that
       	doesn't match the transmit timestamp of B and the packet will
       	be dropped. If the attacker does this periodically for both
       	hosts, they won't be able to synchronize to each other. This is
       	a known denial-of-service attack, described at
       	https://www.eecis.udel.edu/~mills/onwire.html .

       	According to the document the NTP authentication is supposed to
       	protect symmetric associations against this attack, but that
       	doesn't seem to be the case. The state variables are updated even
       	when authentication fails and the peers are sending packets with
       	originate timestamps that don't match the transmit timestamps on
       	the receiving side.

       	This seems to be a very old problem, dating back to at least
       	xntp3.3wy. It's also in the NTPv3 (RFC 1305) and NTPv4 (RFC 5905)
       	specifications, so other NTP implementations with support for
       	symmetric associations and authentication may be vulnerable too.
       	An update to the NTP RFC to correct this error is in-process.
           Mitigation:
               Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
       	or the NTP Public Services Project Download Page
               Note that for users of autokey, this specific style of MITM attack
       	is simply a long-known potential problem.
               Configure ntpd with appropriate time sources and monitor ntpd.
       	Alert your staff if problems are detected.
           Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.

       * New script: update-leap
       The update-leap script will verify and if necessary, update the
       leap-second definition file.
       It requires the following commands in order to work:

       	wget logger tr sed shasum

       Some may choose to run this from cron.  It needs more portability testing.

commit 94c1b5104684448d27261c42d658ac54910af9ac
Author: tron <tron>
Date:   Tue Apr 21 21:39:41 2015 +0000

    Pullup ticket #4676 - requested by tron
    net/tigervnc: build fix

    Revisions pulled up:
    - net/tigervnc/Makefile                                         1.4

    ---
       Module Name:	pkgsrc
       Committed By:	joerg
       Date:		Sat Apr 18 20:44:47 UTC 2015

       Modified Files:
       	pkgsrc/net/tigervnc: Makefile

       Log Message:
       Needs explicit libdrm dependency.

commit 9ac98dab09e6d06bb842b68ed5f6011621f1b13f
Author: tron <tron>
Date:   Tue Apr 21 19:07:46 2015 +0000

    Pullup tickets #4669, #4674 and #4675.

commit f4dd44867374ea54f7a364d6262a851839ca6aec
Author: tron <tron>
Date:   Tue Apr 21 19:07:14 2015 +0000

    Pullup ticket #4675 - requested by joerg
    games/ioquake3: build fix

    Revisions pulled up:
    - games/ioquake3/Makefile                                       1.4
    - games/ioquake3/PLIST                                          1.3
    - games/ioquake3/distinfo                                       1.5
    - games/ioquake3/patches/patch-aa                               1.3

    ---
       Module Name:	pkgsrc
       Committed By:	joerg
       Date:		Sat Apr 18 20:44:08 UTC 2015

       Modified Files:
       	pkgsrc/games/ioquake3: Makefile PLIST distinfo
       	pkgsrc/games/ioquake3/patches: patch-aa

       Log Message:
       Allow building on NetBSD/arm.

commit d3ef2ddfc6c5d191f3a29bb4af90aab71356dffa
Author: tron <tron>
Date:   Tue Apr 21 19:00:54 2015 +0000

    Pullup ticket #4674 - requested by joerg
    games/orbital_eunuchs_sniper: packaging fix

    Revisions pulled up:
    - games/orbital_eunuchs_sniper/Makefile                         1.23

    ---
       Module Name:	pkgsrc
       Committed By:	joerg
       Date:		Sat Apr 18 20:43:19 UTC 2015

       Modified Files:
       	pkgsrc/games/orbital_eunuchs_sniper: Makefile

       Log Message:
       Use uname -m output for NetBSD/ARM in the PLIST as the package does.

commit c3e33c1c17b50b1641b75315f564d4f914c8d49e
Author: tron <tron>
Date:   Tue Apr 21 18:55:45 2015 +0000

    Pullup ticket #4669 - requested by manu
    databases/php-ldap: build fix

    Revisions pulled up:
    - databases/php-ldap/files/ldap-ctrl-exop.patch                 deleted
    - databases/php-ldap/files/ldap-ctrl-exop54.patch               1.1-1.2
    - databases/php-ldap/files/ldap-ctrl-exop55.patch               1.1-1.2
    - databases/php-ldap/files/ldap-ctrl-exop56.patch               1.1-1.2
    - databases/php-ldap/options.mk                                 1.4

    ---
       Module Name:    pkgsrc
       Committed By:   manu
       Date:           Mon Apr 13 08:04:17 UTC 2015

       Modified Files:
               pkgsrc/databases/php-ldap: options.mk
       Added Files:
               pkgsrc/databases/php-ldap/files: ldap-ctrl-exop54.patch
                   ldap-ctrl-exop55.patch ldap-ctrl-exop56.patch
       Removed Files:
               pkgsrc/databases/php-ldap/files: ldap-ctrl-exop.patch

       Log Message:
       Update the LDAP EXOP support patch for PHP 5.4, 5.5 and 5.6

    ---
       Module Name:    pkgsrc
       Committed By:   manu
       Date:           Mon Apr 20 03:24:36 UTC 2015

       Modified Files:
               pkgsrc/databases/php-ldap/files: ldap-ctrl-exop54.patch
                   ldap-ctrl-exop55.patch ldap-ctrl-exop56.patch

       Log Message:
       Fix build with SASL disabled

       Do not force-define HAVE_LDAP_SASL, since the PHP configure script
       actually takes care of that one. This lets us build with the exop
       option enabled while sasl is disabled.

commit a5f8d21945363b03bec896fb6af2714201ab919e
Merge: 7d962d8 faf0e76
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Tue Apr 21 14:40:27 2015 +0100

    Merge branch 'joyent/feature/miscfix/2015Q1' into joyent/release/2015Q1

commit faf0e763cdbe20b49f8215cb58530dff6e44d97f
Merge: 86554d2 a295034
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Tue Apr 21 14:40:13 2015 +0100

    Merge branch 'joyent/feature/miscfix/2015Q1' of github.com:joyent/pkgsrc into joyent/feature/miscfix/2015Q1

commit 7d962d8f53c204790d4d7120d6e6dbfe107a7af6
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Tue Apr 21 14:39:38 2015 +0100

    Update 'joyent' and 'wip' submodules.

commit b163d85dc024e7f042e22cfb6f1fc3cc5279114b
Merge: 952134b 86554d2
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Tue Apr 21 14:39:13 2015 +0100

    Merge branch 'joyent/feature/miscfix/2015Q1' into joyent/release/2015Q1

commit 86554d2c5a721a99fd2e7c4b5862b35b69918090
Merge: 0b4c611 6996bfa
Author: Jonathan Perkin <jperkin@joyent.com>
Date:   Tue Apr 21 14:38:23 2015 +0100

    Merge branch 'pkgsrc_2015Q1' into joyent/feature/miscfix/2015Q1

commit a295034d9249a35784c34cc387513f5de3c73570
Author: Filip Hajny <filip@joyent.com>
Date:   Mon Apr 20 17:09:03 2015 +0000

    Update sysutils/cfengine3 to 3.6.5. Add lmdb support option.

    Upstream changelog follows.

    3.6.5

    Features:
    - Introduced "systemd" hard class.
    - Added paths to dtrace, zfs and zpool on FreeBSD in masterfiles.

    Bug fixes:
    - Fixed build error on certain RHEL5 and SLES10 setups.
    - Fixed a bug which caused dangling symlinks not to be removed.
    - Fixed data_readstringarrayidx function not preserving the order of the
      array it's producing.
    - Fixed a bug which sometimes caused CFEngine to kill the wrong daemon
      if both the host and a container inside the host were running
      CFEngine.
    - Made sure the rm_rf_depth bundle also deletes the base directory.
    - Fixed monitord reporting wrongly on open ports.
    - Skip adding the class when its name is longer than 1024 characters.
      Fixed core dump when the name is too large.
    - Fixed detection of stopped process on Solaris.
    - Fixed infinite loop plus a couple more minor
      bugs in edit_xml promises.

    3.6.4

    Features:
    - Introduced users promises support on HP-UX platform.
    - Introduced process promises support on HP-UX platform.

    Bug fixes:
    - Fixed bug on FreeBSD which sometimes led to the wrong process being killed
    - Fixed package version comparison sometimes failing with rpm package manager
    - Fixed a bug in users promises which would sometimes set the wrong
      password hash if the user would also be unlocked at the same time.
    - Fixed a bug on AIX which would occationally kill the wrong process.
    - Improved error message for functions that require an absolute path.
    - Fixed some spelling errors in examples.
    - Fixed error in out-of-tree builds when building cf-upgrade.
    - Fixed a bug which would make cf-agent exit with an error if it was
      built with a custom log directory, and that directory did not exist.
    - Fixed ordering of evaluating promises when depends_on is used.
    - Skip non-empty directories silently when recursively deleting.
    - Fix memory exhaustion with list larger than 4994 items.
    - Fix cf-execd segfault on IP address detection
    - Fix hard class detection of RHEL6 ComputeNode

    3.6.3

    New features:
    - support for HP-UX 11.23 and later
    - experimental support for Red Hat Enterprise Linux 7

    Bug fixes:
    - fix getindices on multi-dimensional arrays
    - fix mustache template method to run in dryrun mode
    - set mailto and mailfrom settings for execd in def.cf
    - fix conflation of multi-index entries in arrays
    - fix promise locking when transferring using update.cf
    - update JSON parser to return an error on truncation
    - fix sys.hardware_addresses not expanded
    - fix opening database txn /var/cfengine/cf_lastseen.lmdb:
      MDB_READERS_FULL when running cf-keys --show-hosts
    - fix segfault (Null pointer dereference) when select_end in
      delete_lines never matches
    - fix max_file_size => "0" not disabling or allowing any size
     - fix ifvarclass, with iteration over list, failing when deleting
      files with time condition
    - fix classes defined with "or" constraint are never set if any value
      doesn't evaluate to a scalar
    - update "mailfrom" default in default policy
    - fix logrotate ambiguity of filename
    - fix parsing JSON files
    - reduce write count activity to /var partition
    - fix files delete attribute incorrectly triggering promise_kept
    - update services bundle output related to chkconfig when run in
      inform mode.
    - fix Solaris serverd tests
    - fix broken bechaviour of merging arrays with readstringarray
    - fix ifelapsed bug with bundle nesting
    - fix handling cf_null in bundlesequence
    - fix maparray reading whole input array when using subarray
     - fix directories being randomly changed to files
    - update defaults promise type to work with classes
    - systemd integration in services promises
    - fix touch attribute ignoring action = warn_only
    - fix 4KB string limit in functions readfile, string_downcase,
      string_head, string_reverse, string_length, string_tail,
      string_upcase

    3.6.2

    Bug fixes:
    - don't regenerate software_packages.csv every time
    - improve verbose message for package_list_command
    - fix missing log output on AIX
    - assorted fixes to dirname() esp on Windows
    - fix package manager detection
    - fix build issues on FreeBSD
    - allow copying of dead symbolic links
    - preserve order in readstringarrayidx
    - fix passing of unexpanded variable references to arrays
     - use entries for new {admin,deny}_{ips,hostnames} constraints in
      the relevant legacy lists
    - cope with ps's numeric fields overflowing to the right
    - interpret failing function calls in ifvarclass as class not set
     - remove unexpanded lists when extending lists
    - infer start-time of a process from elapsed when needed
     - fix input range definition for laterthan() function
    - don't add trailing delimiter when join()'ing lists ending with a
      null-value
    - 9999999999 (ten 9s) or higher has been historically used as an upper
      bound in CFEngine code and policy but because of overflow on 32-bit
      platforms it caused problems with big numbers. Fixed in two ways:
      first change all existing policy uses to 999999999 (nine 9s instead
      of eleven 9s), second fix the C code to not wrap-around in case of
      overflow, but use the LONG_MAX value
    - cf-serverd and other daemons no longer reload their configuration
      every minute if CFEngine is built with an inputs directory outside
      of the work directory (not the default).

    3.6.1

    New features:
    - Introduced Solaris and AIX support into the 3.6 series, with many associated
      build and bug fixes.

    Changes:
    - Short-circuit evaluation of classes promises if class is already set
     - fix to assume all non-specified return codes are failed in commands
      promises
    - cf-serverd logs reconfiguration message to NOTICE (was INFO) so that it's
      always logged in syslog

    Bug fixes:
    - File monitoring has been completely rewritten (changes attribute in files
      promise), which eliminates many bugs, particularly regarding files that
      are deleted. Upgrading will keep all monitoring data, but downgrading again
      will reinitialize the DB, so all files will be reported as if they were new.
     - $(this.promiser) expands in files promises for 'transformer',
      'edit_template', 'copy_from.source', 'file_select.exec_program', 'classes'
      and 'action' bodies
    - 'body changes' notifies about disappeared files in file monitoring
    - Set not-kept classes when files or commands promise should be repaired,
      but is warn-only
    - Fixed CFEngine template producing a zero-sized file
    - Add 0-9 A-Z _ to allowed context of module protocol
    - Extend ps command column width on Solaris and filter on zone
      rather than adding it to the ps output.
    - Fixed strftime() function on Solaris when called with certain specifiers.
    - Fixed users promise bug regarding password hashes in a NIS/NSS setup.
    - Fixed $(sys.uptime), $(sys.systime) and $(sys.sysday) in AIX.
      #5148, #5206)
    - Fixed processes_select complaining about "Unacceptable model uncertainty
      examining processes"
    - ps command for linux has been changed to cope with big rss values
    - Address ps -axo shift on FreeBSD 10 and later
    - methods and services promises respect action_policy => "warn"
     - LMDB should no longer deadlock if an agent is killed on the hub while
      holding the DB lock. Note that the change only affects binary packages
      shipped by CFEngine, since the upstream LMDB project has not yet integrated
      the change.

    3.6.0

    Changes:
    - Changes to logging output
        - add process name and pid in syslog message (GitHub #789)
        - cf-serverd logging levels are now more standardised:
              - INFO logs only failures
              - VERBOSE logs successful requests as well
              - DEBUG logs actual protocol traffic.
        - cf-serverd now logs the relevant client IP address on
          each message.
        - Logging contexts to local database (cf_classes.tcdb) has been deprecated.
        - 'usebundle' promisees are logged for all the bundle promises
        - output from 'reports' promises has nothing prefixed except 'R: '
        - a log line with stack path is generated when the promise type evaluated
          changes
    - LMDB (symas.com/mdb) is the default database for local data storage : use
      version 0.9.9 or later. cf-agent --self-diagnostics (-x) is only
      implemented for TCDB, not for LMDB
    - port argument in readtcp() and selectservers() may be a
      service name (e.g. "http", "pop3").
    - Enable source file in agent copy_from promises to be a relative path.
        - file "changes" reporting now reports with log level "notice", instead
          of "error".
    - process_results default to AND'ing of set attributes if not specified
     - interface is now canonified in sys.hardware_mac[interface] to align with
      sys.ipv4[interface]
    - cf-promises no longer errors on missing bodies when run without
      --full-check (-c)
    - Linux flavor "SUSE" now correctly spelled with all uppercase in variables
      and class names. The "suse" lowercase version is also
      provided for convenience.
    - $(this.promise_filename) and $(..._dirname) variables are now absolute
      paths.
    - including the same file multiple times in 'body control inputs' is
      not an error
    - portnumber in body copy_from now supports service names like "cfengine",
      "pop3" etc, check /etc/services for more.
    - The failsafe.cf policy, run on bootstrap and in some other
      unusual cases, has been extracted from C code into libpromises/failsafe.cf
    - masterfiles
        - cf_promises_validated is now in JSON format
        - timestamp key is timestamp (sec since unix epoch) of last time validated
        - the masterfiles now come from https://github.com/cfengine/masterfiles
          and are not in the core repository
    - cf-serverd calls cf-agent with -Dcfruncommand when executing cf-runagent
      requests
    Mark as removed: promise_notkept_log_include, promise_notkept_log_exclude,
    promise_repaired_log_include, promise_repaired_log_exclude, classes_include,
    classes_exclude, variables_include, variables_exclude attributes from
    report_data_select body (syntax is valid but not functional). They have been
    replaced by the following attributes: promise_handle_include,
    promise_handle_exclude, metatags_include, metatags_exclude.

    New features:
    - New promise type "users" for managing local user accounts.
    - TLS authentication and fully encrypted network protocol.
      Additions specific to the new type of connections:
        - New attribute "allowlegacyconnects" in body server control,
          which enables serving policy via non-latest cfengine protocol,
          to the given list of hosts. If the option is absent, it
          defaults to allow all hosts. To refuse non-TLS connections,
          specify an empty list.
        - New attribute "protocol_version" in body copy_from, and body
          common control, which defines the preferred protocol for
          outgoing connections.. Allowed values at the moment: "0" or
          "undefined", "classic" or "1", "latest" or "2". By leaving the
          copy_from option as undefined the common control option is
          used, and if both are undefined then classic protocol is used
          by default.
        - The new networking protocol uses TLS for authentication,
          after which all dialog is encrypted within the established
          TLS session.  cf-serverd is still able to speak the legacy
          protocol with old agents.
        - The 'skipverify' option in 'body server control' is
          deprecated and only left for compatibility; it does
          nothing
        - cf-serverd does not hang up the connection if some request
          fails, so that the client can add more requests.
        - For the connections using the new protocol, all of the
          paths in bundle server access_rules now differentiate
          between a directory and a file using the trailing
          slash. If the path exists then this is auto-detected and
          trailing slash appended automatically. You have to append
          a trailing slash manually to an inexistent or symbolic
          path (e.g. "/path/to/$(connection.ip)/") to force
          recursive access.
    - New in 'access' promises for 'bundle server access_rules'
        - Attributes "admit_ips", "admit_hostnames", "admit_keys",
          "deny_ips", "deny_hostnames", "deny_keys"
        - "admit_keys" and "deny_keys" add the new functionality
          of controlling access according to host identity,
          regardless of the connecting IP.
        - For these new attributes, regular expressions
          are not allowed, only CIDR notation for "admit/deny_ips", exact
          "SHA=..." strings for "admit/deny_keys", and exact hostnames
          (e.g. "cfengine.com") or subdomains (starting with dot,
          e.g. ".cfengine.com") for "admit/deny"_hostnames. Same rules
          apply to 'deny_*' attributes.
        - These new constraints and the paths in access_rules, can contain
          special variables "$(connection.ip)", "$(connection.hostname)",
          "$(connection.key)", which are expanded dynamically for every
          received connection.
        - For connections using the new protocol, "admit" and "deny"
          constraints in bundle server access_rules are being phased
          out, preferred attributes are now "admit_ips", "deny_ips",
          "admit_hostnames", "deny_hostnames", "admit_keys",
          "deny_keys".
        - New "shortcut" attribute in bundle server access_rules used to
          dynamically expand non-absolute request paths.
    - masterfiles
            - standard library split: lib/3.5 (compatibility) and lib/3.6
              (mainline)
            - many standard library bundles and bodies, especially packages-
              and file-related, were revised and fixed
            - supports both Community and Enterprise
            - new 'inventory/' structure to provide OS, dmidecode, LSB, etc.
              system inventory (configured mainly in def.cf)
            - cf_promises_release_id contains the policy release ID which is
              the GIT HEAD SHA if available or hash of tree
            - a bunch'o'bundles to make starting with CFEngine easier:
            - file-related: file_mustache, file_mustache_jsonstring, file_tidy,
              dir_sync, file_copy, file_link, file_hardlink, file_empty, file_make
            - packages-related: package_absent, package_present, package_latest,
              package_specific_present, package_specific_absent,
              package_specific_latest, package_specific
            - XML-related: xml_insert_tree_nopath, xml_insert_tree, xml_set_value,
              xml_set_attribute
            - VCS-related: git_init, git_add, git_checkout,
              git_checkout_new_branch, git_clean, git_stash, git_stash_and_clean,
              git_commit, git
            - process-related: process_kill
            - other: cmerge, url_ping, logrotate, prunedir
    - New command line options for agent binaries
        - New options to cf-promises
            - '--show-classes' and '--show-vars'
            - '--eval-functions' controls whether cf-promises should evaluate
              functions
        - Colorized output for agent binaries with command line option '--color'
          (auto-enabled if you set CFENGINE_COLOR=1)
    - New language features
        - New variable type 'data' for handling of structured data (ie JSON),
          including supporting functions:
            - 'data_readstringarray' - read a delimited file into a data map
            - 'data_readstringarrayidx' - read a delimited file into a data array
            - 'datastate' - create a data variable with currently set classes
              and variables
            - 'datatype' - determine the type of the top element of a container
            - 'format' - %S can be used to serialize 'data' containers into
              a string
            - 'mergedata' - merge two data containers, slists/ilists/rlists,
              or "classic" arrays into a data container
            - 'parsejson' - create a data container from a JSON string
            - 'readjson' - create a data container from a file that contains JSON
            - 'storejson' - serialize a data container into a string
            - Most functions operating on lists can also operate on data containers
            - pass a data container to a bundle with the @(container) notation
            - the module protocol accepts JSON for data containers with
              the '%' sigil
        - Tagging of classes and variables allows annotating of language
          construct with meta data; supporting functionality:
            - The module protocol in 'commands' promises has been extended
              to allow setting of tags of created variables and classes,
              and the context of created variables
            - 'getclassmetatags' - returns list of meta tags for a class
            - 'getvariablemetatags' - returns list of meta tags for a variable
        - 'body file control' has an 'inputs' attribute to include library files
          and other dependencies
        - bundlesequences can be built with bundlesmatching() based on bundle
          name and tags
    - New attributes in existing promise types and bodies
        - New option 'preserve_all_lines' for insert_type in insert_lines promises
        - Caching of expensive system functions to avoid multiple executions of
          execresult() etc, can be controlled via cache_system_functions
          attribute in body common control
        - New option 'mailsubject' in body executor control allows defining
          the subject in emails sent by CFEngine
        - Support for Mustache templates in 'files' promises; use
          'template_method' and 'template_data' attributes.  Without
          'template_data' specified, uses datastate().
    - New and improved functions
        - 'bundlesmatching' - returns list of defined bundles matching
          a regex and tags
        - 'canonifyuniquely' - converts a string into a unique, legal class name
        - 'classesmatching' - returns list of set classes matching a regex
          and tags
        - 'eval' - evaluates mathematical expressions; knows SI k, m, g
          quantifiers, e.g. "100k"
        - 'findfiles' - list files matching a search pattern; use "**" for
          recursive searches
        - 'makerule' - evaluates whether a target file needs to be rebuilt
          from sources
        - 'max', 'min' - returns maximum and minimum of the numbers in
          a container or list (sorted by a 'sort' method)
        - 'mean' - returns the mean of the numbers in a container or list
        - 'nth' - learned to look up by key in a data container holding a map
        - 'packagesmatching' - returns a filtered list of installed packages.
        - 'readfile' - learned to read system files of unknown size like those
          in /proc
        - 'sort' - can sort lexicographically, numerically (int or real), by IP,
          or by MAC
        - 'string_downcase', 'string_upcase' - returns the lower-/upper-case
          version of a string
        - 'string_head', 'string_tail' - returns the beginning/end of a string
        - 'string_length' - returns the length of a string
        - 'string_reverse' - reverses a string
        - 'string_split' - improved implementation, deprecates 'splitstring'
        - 'variablesmatching' - returns a list of variables matching a regex
          and tags
        - 'variance' - returns the variance of numbers in a list or container
    - New hard classes
        - Introduced alias 'policy_server' for context 'am_policy_hub'
          (the latter will be deprecated)
        - all the time-based classes have GMT equivalents
    - New variables
        - 'sys.bindir' - the location of the CFEngine binaries
        - 'sys.failsafe_policy_path' - the location of the failsafe policy file
        - 'sys.inputdir' - the directory where CFEngine searches for policy files
        - 'sys.key_digest' - the digest of the host's cryptographic key
        - 'sys.libdir', 'sys.local_libdir' - the location of the CFEngine libraries
        - 'sys.logdir' - the directory where the CFEngine log files are saved
        - 'sys.masterdir' - the location of masterfiles on the policy server
        - 'sys.piddir' - the directory where the daemon pid files are saved
        - 'sys.sysday' - the number of days since the beginning of the UNIX epoch
        - 'sys.systime' - the number of seconds since the beginning of the UNIX epoch
        - 'sys.update_policy_path' - the name of the update policy file
        - 'sys.uptime' - the number of minutes the host has been online
        - 'this.promise_dirname' - the name of the file in which the current promise
          is defined
        - 'this.promiser_uid' - the ID of the user running cf-agent
        - 'this.promiser_gid' - the group ID of the user running cf-agent
        - 'this.promiser_ppid' - the ID of the  parent process running cf-agent

    Deprecations:
    - 'splitstring' - deprecated by 'string_split'
    - 'track_value'
    - 'skipverify'

    Bug fixes: for a complete list of fixed bugs, see https://cfengine.com/dev
    - various fixes in evaluation and variable resolution
    - Improve performance of list iteration
    - Removed limitation of input length to internal buffer sizes
        - directories ending with "/" are not ignored
        - lsdir() always return a list now, never a scalar
    - 'abortclasses' fixed to work in common bundles and other cases
    - namespaced 'edit_line' bundles now work
    - lists are interpolated in correct order
    - cf-serverd reloads policies properly when they change
    - lots of leaks (memory and file descriptor) fixed

    3.5.3

    Changes:
    - Improved security checks of symlink ownership. A symlink created by a user
      pointing to resources owned by a different user will no longer be followed.
    - Changed the way package versions are compared in package promises.
      In previous versions the comparison was inconsistent. This has been fixed,
      but may also lead to behavior changes in certain cases.

    Bug fixes:
    - fix cf-monitord crash due to incorrect array initialization
    - fix cf-serverd stat()'ing the file tree every second
    - correctly populate sys.hardware_addresses variable
    - add support for Debian's GNU/kfreebsd to build system
    - fix possible stack corruption in guest_environments promises
    - work-around hostname trunctation in HP-UX's uname
    - fix body copy purging of empty directories
    - make discovery and loading of avahi libraries more robust
    - compile and packaging fixes for HP-UX, AIX and Solaris
    - fix fatal error in lsdir() when directory doesn't exist
    - fix epoch calculation for stime inrange calculation

    3.5.2

    Bug fixes:
    - fix delayed abortclasses checking
    - fix maplist arguments bug
    - fix segfaults in cf-pomises
    - fix build on Solaris 10/SmartOS
    - sanitize characters from /etc/issue in sys.flavor for Debian
    - Fix segfault when dealing with files or data > 4K
    - Don't truncate keys to 126 characters in getindices
    - files created via log_* actions now have mode 600
    - fix wrong log message when a promise is ignored due to 'ifvarclass'
      not matching
    - fix lifetime of persistent classes
    - fix segfault when process_select body had no process_result attribute
      Default to AND'ed expression of all specified attributes
    - include system message in output when acl promises fail
    - fix invocation of standard_services bundle and corresponding promise
      compliance

    3.5.1

    Changes:
    - file changes are logged with log level Notice, not Error
    - the CFEngine Standard Library in masterfiles/libraries is now split into
      promise-type specific policy files, and lives in a version-specific
      directory. This should have no impact on current code, but allows more
      granular include of needed stdlib elements

    Bug fixes:
    - fix recursive copying of files
    - respect classes in templates
    - fix timestamps on Windows
    - fix non-root cf-agent flooding syslog
    - fix email flood from cf-execd due to timestamps in agent output
    - Preserve security context when editing or copying local files
    - fix path for sys.crontab on redhat systems
    - prevent incorrect "insert_lines promise uses the same select_line_matching
      anchor" warning
    - Fix regression of setting VIPADDRESS to 127.0.0.1
    - Fix "changes" promise not receiving status when file is missing
    - Fix symlinks being destroyed when editing them
    - Fix missing "promise kept" status for the last line in a file

    3.5.0

    New features:
    - classes promises now take an optional scope constraint.
    - new built-in functions: every, none, some, nth, sublist, uniq, filter
      - every
      - none
      - some
      - nth
      - sublist
      - uniq
      - filter
      - classesmatching
      - strftime
      - filestat
      - ifelse
      - maparray
      - format
    - cf-promises flag --parse-tree is replaced by --policy-output-format=,
      requiring the
      user to specify the output format (none, cf, json)
    - cf-promises allows partial check of policy (without body common control)
      without integrity check; --full-check enforces integrity check
    - agent binaries support JSON input format (.json file as generated by
      cf-promises)
    - cf-key: new options --trust-key/-t and --print-digest/-p
    - Class "failsafe_fallback" is defined in failsafe.cf when main policy
      contains errors and failsafe is run because of this
    - add scope attribute for body classes
    - Better diagnostics of parsing errors
    - Error messages from parser now show the context of error
    - new cf-agent option: --self-diagnostics
    - new output format, and --legacy-output
    - warnings for cf-promises.
    - Enable zeroconf-discovery of policy hubs for automatic bootstrapping
      if Avahi is present
    - Support for sys.cpus on more platforms than Linux & HPUX

    Changes:
    - parser no longer allows ',' after promiser or promisee. must be either
      ';' or lval
    - Make parser output in GCC compatible format the only supported format
      (remove --gcc-brief-format flag)
    - Silence license warnings in Enterprise Free25 installations
    - action_policy => "warn" causes not_kept classes to be set on promise
      needing repair.
    - command line option version (-V) now prints a shorter parsable version
      without graphic
    - implicit execution of server and common bundles taking arguments is
      skipped in cf-serverd.
    - WARNING: option --policy-server removed, require option to --bootstrap
      instead
    - process promises don't log if processes are out of rang…
jperkin pushed a commit that referenced this issue Jun 17, 2015
kramdown 1.7.0 released			Published on Monday, 27 April 2015

This release brings among other things support for the ‘minted’ syntax
highlighter for LaTeX and a new math engine based on MathJax-Node that outputs
to MathML.

Changes

* 4 minor changes:

  - The syntax highlighter ‘minted’ for the LaTeX converter is now available
    (fixes issue #93, initial patch #242 by l3kn)
  - A new math engine based on MathJax-Node that outputs to MathML is now
    available (patch #240 by Tom Thorogood)
  - Fixed #244, #246: Fenced code blocks now allow a dash in the code language
    name (requested and patched by Dennis Günnewig)
  - The option list in the man page as well in the output of kramdown --help
    is now sorted.

* 2 bug fixes:

  - Fixed #230: Warning message for method in
    lib/kramdown/utils/configurable.rb will not show anymore (reported by
    Robert A. Heiler)
  - Fixed #239: Handling of single/double quotes in reference style links now
    follows the same rules as with inline links (reported by Josh Davis)


kramdown 1.6.0 released			Published on Saturday, 28 February 2015

This release contains many fixes and minor enhancements as well as one major
goodie that comes with a small caveat: block IALs can now be applied to link
and abbreviation definitions!

It may not sound like much but allowing block IALs to be applied to link
definitions alleviates the problem that additional attributes could only be
specified via span IALs. Now such attributes can be stored together with the
URL and title at the link definition, for example:

	This is a ![resized image].

	[resized image]: some_image.jpg "with a title"
	{: height="36px" width="36px" style="border: 1px solid green"}

There is one small caveat, though. Regard the following construct:

	[linkdef]: http://example.com
	{:.block-ial}
	block element, e.g. a paragraph

The block IAL would have been applied to the paragraph in previous versions
but now it is applied to the link definition. However, such a construct is not
very likely encountered in the real world.

Changes

* 7 minor changes:

  - Block IALs can now be applied to link and abbreviation definitions
    (inspired by issue #194 from cabo)
  - The syntax highlighting engine for Rouge now allows custom formatter
    classes to be used (issue #214, requested by BackOrder)
  - The MathJax math engine now allows adding previews (issue #225, requested
    by jethrogb)
  - The “toc_levels” option can now also take a Range object (pull request
    #210 by Jens Krämer)
  - The generated table of contents of the HTML converter now contains ID
    attributes on the links so that back-references can be used (issue #195,
    requested by Ciro Santilli)
  - A warning is now generated when duplicate HTML attributes are detected
    (issue #201, requested by winniehell)
  - Updated used version of prawn to 2.0.0

8 bug fixes:

  - Fixed #192: Emphasis by using underscore sometimes wrongly worked within a
    word (reported by Michael Franzl)
  - Fixed #198: Empty alt attributes on <img> tags are now correctly handled
    by the kramdown converter (reported by winniehell)
  - Fixed #200: Trailing whitespace is now really removed in paragraphs
    (reported by winniehell)
  - Fixed #220: HTML blocks with attributes weren’t correctly detected when
    directly after another block (reported by Bill Tozier)
  - Fixed #199: Empty title attributes are now ignored for images when using
    the kramdown converter (reported by and pull request #206 from winniehell)
  - Leading and trailing white space from math statements is now stripped as
    the whitespace sometimes lead to LaTeX conversion errors
  - Fixed #226: Class names may now start with a dash in IALs/ALDs (reported
    by Adam Hardwick)
  - Multiple consecutive block IALs before an element are now correctly
    processed
jperkin pushed a commit that referenced this issue Jun 17, 2015
pkgsrc change: allow build on Ruby 2.2.

## 0.8.12 (2015-05-26)

* Fix `HTTP.timeout` API (was loosing previously defined options). (@ixti)


## 0.8.11 (2015-05-22)

* SNI support for HTTPS connections. See #229. (@tarcieri)
* Use "http.rb" in the User-Agent string. See #227. (@tarcieri)


## 0.8.10 (2015-05-14)

* Fix cookie headers generation. (@ixti)


## 0.8.9 (2015-05-11)

* Add cookies support. (@ixti)
* Enforce stringified body encoding. See #219. (@Connorhd)


## 0.8.8 (2015-05-09)

* Fix CONNECT header for proxies. See #217. (@Connorhd)


## 0.8.7 (2015-05-08)

* Fix `HTTP.timeout` API with options only given. (@ixti)


## 0.8.6 (2015-05-08)

* Reset global timeouts after the request finishes. See #215. (@zanker)


## 0.8.5 (2015-05-06)

* Add simple timeouts configuration API. See #205. (@ixti)
* Deprecate `Request#request_header`. Use `Request#headline` instead. (@ixti)


## 0.8.4 (2015-04-23)

* Deprecate `#default_headers` and `#default_headers=`. (@ixti)
* Deprecate chainable methods with `with_` prefix. See #207. (@ixti)
* Add support of HTTPS connections through proxy. See #186. (@Connorhd)


## 0.8.3 (2015-04-07)

* Fix request headline. See #206. (@ixti)
* Remove deprecated `Request#__method__`. (@ixti)


## 0.8.2 (2015-04-06)

* Fix Celluloid::IO compatibility. See #203. (@ixti)
* Cleanup obsolete code. (@zanker)


## 0.8.1 (2015-04-02)

* Add missing `require "resolv"`. See #202. (@ixti)
* Add block-form `#persistent` calls. See #200, #201. (@ixti)


## 0.8.0 (2015-04-01)

* Properly handle WaitWritable for SSL. See #199. (@zanker)
* Add support for non-ASCII URis. See #197. (@ixti)
* Add configurable connection timeouts. See #187, #194, #195. (@zanker)
* Refactor requests redirect following logic. See #179. (@ixti)
* Support for persistent HTTP connections (@zanker)
* Add caching support. See #77 and #177. (@Asmod4n, @pezra)
* Improve servers used in specs boot up. Issue was initially raised up
  by @olegkovalenko. See #176. (@ixti)
* Reflect FormData rename changes (FormData -> HTTP::FormData). (@ixti)
* `HTTP::Headers` now raises `HTTP::InvalidHeaderNameError` in case of
  (surprise) invalid HTTP header field name (e.g.`"Foo:Bar"`). See #173.
  (@ixti)
jperkin pushed a commit that referenced this issue Nov 20, 2015
CHANGELOG:
1.16.0.1 --> 1.17.0
===================

AST changes:

* Replaced VarA with AppA in Asst (#168).
* Promoted list/tuple members changed from Promoted to Type (#162).
* Update PatBind, Match, and Alt from containing Binds to Maybe Binds to
  distinguish between empty where clauses and where clauses with no
  binds (#244).
* Add RoleAnnotDecl and Role to support Role annotations (#215).
* Move NameSpace field from EVar/IVar to EAbs/IAbs.

Other changes:

* Add standalone parsers for ImportDecl.
* Fix pretty-printer bugs for HaRP (#160).
* Insert parentheses when pretty-printing non-atomic bang types (#169).
* Un-reverse confusion of left and right arrow (#175).
* Prettyprint option pragmas like 1.15 (#172).
* Conditionally insert lines when pretty-printing declarations (#171).
* Distinguish deriving (Show) from deriving Show (#189).
* Allow parsing of unicode subscript and superscript functions (#173).
* Pretty print unboxed tuples with spaces (#193).
* Improve performance when parsing long extension lists (#200).
* Properly pretty print constructor and class operators (#204).
* Read Haskell source files as UTF-8 (#223).
* Fix ExplicitNamespaces parsing (#216).
* PolyKinds implies KindSignatures (#220).
* Preserve location information for infix binds (#205).
* Preserve positional information in checkPattern (#231).
* Maintain correct line numbers when parsing multiline GHC_OPTIONS (#218).
* Correctly parse "*" with TypeOperators (#81).
* Export the "pretty" method (#222).
* Add javascript calling convention for foreign imports (#236).
* Add non-greedy parsers for module heads (#191).
* Add a flag to disable arity checking when parsing (#260).
* Parse "-" in type signatures (#206).
* Add support for type wildcards and expression holes (#252).
* Add support for Pattern Synonyms (#197).
* Bump the happy lower bound (#250).
* Make test suite pass on GHC 7.12 (#224).
* Support linking Haddock comments to AST nodes (#213).
* Parse multiline LANGUAGE pragmas (#217).
* Parse trailing where (#25).
* Parse modules starting with pragmas and indented
  "module" keyword (#122).
* Use pretty-show to get human readable test outputs.
* Respect fixity declarations inside where/let/class in
  `applyFixities` (#212).
* Correctly parse the combination of view patterns and bang patterns. (#276)
jperkin pushed a commit that referenced this issue Dec 14, 2015
=== Net::LDAP 0.12.1

* Whitespace formatting cleanup
  {#236}[ruby-ldap/ruby-net-ldap#236]
* Set operation result if LDAP server is not accessible
  {#232}[ruby-ldap/ruby-net-ldap#232]

=== Net::LDAP 0.12.0

* DRY up connection handling logic
  {#224}[ruby-ldap/ruby-net-ldap#224]
* Define auth adapters
  {#226}[ruby-ldap/ruby-net-ldap#226]
* add slash to attribute value filter
  {#225}[ruby-ldap/ruby-net-ldap#225]
* Add the ability to provide a list of hosts for a connection
  {#223}[ruby-ldap/ruby-net-ldap#223]
* Specify the port of LDAP server by giving INTEGRATION_PORT
  {#221}[ruby-ldap/ruby-net-ldap#221]
* Correctly set BerIdentifiedString values to UTF-8
  {#212}[ruby-ldap/ruby-net-ldap#212]
* Raise Net::LDAP::ConnectionRefusedError when new connection is
  refused. {#213}[ruby-ldap/ruby-net-ldap#213]
* obscure auth password upon #inspect, added test, closes #216
  {#217}[ruby-ldap/ruby-net-ldap#217]
* Fixing incorrect error class name
  {#207}[ruby-ldap/ruby-net-ldap#207]
* Travis update {#205}[ruby-ldap/ruby-net-ldap#205]
* Remove obsolete rbx-19mode from Travis
  {#204}[ruby-ldap/ruby-net-ldap#204]
* mv "sudo" from script/install-openldap to .travis.yml
  {#199}[ruby-ldap/ruby-net-ldap#199]
* Remove meaningless shebang
  {#200}[ruby-ldap/ruby-net-ldap#200]
* Fix Travis CI build
  {#202}[ruby-ldap/ruby-net-ldap#202]
* README.rdoc: fix travis link
  {#195}[ruby-ldap/ruby-net-ldap#195]
jperkin pushed a commit that referenced this issue 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 issue Feb 15, 2016
Needed by py-google-api-python-client-1.4.2.

## v1.5.2

* Add access token refresh error class that includes HTTP status (#310)
* Python3 compatibility fixes for Django (#316, #318)
* Fix incremental auth in flask_util (#322)
* Fall back to credential refresh on EDEADLK in multistore_file (#336)

## v1.5.1

* Fix bad indent in `tools.run_flow()` (#301, bug was
  introduced when switching from 2 space indents to 4)

## v1.5.0

* Fix (more like clarify) `bytes` / `str` handling in crypto
  methods. (#203, #250, #272)
* Replacing `webapp` with `webapp2` in `oauth2client.appengine` (#217)
* Added optional `state` parameter to
  `step1_get_authorize_url`. (#219 and #222)
* Added `flask_util` module that provides a Flask extension to aid
  with using OAuth2 web server flow. This provides the same functionality
  as the `appengine.webapp2` OAuth2Decorator, but will work with any Flask
  application regardless of hosting environment. (#226, #273)
* Track scopes used on credentials objects (#230)
* Moving docs to [readthedocs.org][1] (#237, #238, #244)
* Removing `old_run` module. Was deprecated July 2, 2013. (#285)
* Avoid proxies when querying for GCE metadata (to check if
  running on GCE) (#114, #293)

[1]: https://readthedocs.org/

## v1.4.12

* Fix OS X flaky test failure (#189).
* Fix broken OpenSSL import (#191).
* Remove `@util.positional` from wrapped request in `Credentials.authorize()`
  (#196, #197).
* Changing pinned dependencies to `>=` (#200, #204).
* Support client authentication using `Authorization` header (#206).
* Clarify environment check in case where GAE imports succeed but GAE services
  aren't available (#208).

## v1.4.11

* Better environment detection with Managed VMs.
* Better OpenSSL detection in exotic environments.

## v1.4.10

* Update the `OpenSSL` check to be less strict about finding `crypto.py` in
  the `OpenSSL` directory.
* `tox` updates for new environment handling in `tox`.

## v1.4.9

* Ensure that the ADC fails if we try to *write* the well-known file to a
  directory that doesn't exist, but not if we try to *read* from one.

## v1.4.8

* Better handling of `body` during token refresh when `body` is a stream.
* Better handling of expired tokens in storage.
* Cleanup around `openSSL` import.
* Allow custom directory for the `well_known_file`.
* Integration tests for python2 and python3. (!!!)
* Stricter file permissions when saving the `well_known_file`.
* Test cleanup around config file locations.

## v1.4.7

* Add support for Google Developer Shell credentials.
* Better handling of filesystem errors in credential refresh.
* python3 fixes
* Add `NO_GCE_CHECK` for skipping GCE detection.
* Better error messages on `InvalidClientSecretsError`.
* Comment cleanup on `run_flow`.

## v1.4.6

* Add utility function to convert PKCS12 key to PEM. (#115)
* Change GCE detection logic. (#93)
* Add a tox env for doc generation.

## v1.4.5

* Set a shorter timeout for an Application Default Credentials issue on some
  networks. (#93, #101)
* Test cleanup, switch from mox to mock. (#103)
* Switch docs to sphinx from epydoc.

## v1.4.4

* Fix a bug in bytes/string encoding of headers.

## v1.4.3

* Big thanks to @dhermes for spotting and fixing a mess in our test setup.

* Fix a serious issue with tests not being run. (#86, #87, #89)
* Start credentials cleanup for single 2LO/3LO call. (#83, #84)
* Clean up stack traces when re-raising in some places. (#79)
* Clean up doc building. (#81, #82)
* Fixed minimum version for `six` dependency. (#75)
jperkin pushed a commit that referenced this issue Apr 11, 2016
4.28 2016-03-14

    [ RELEASE NOTES ]
    - please see v4.21 Changes for any potentially impacting changes

    [ SPEC / BUG FIXES ]
    - undef %QUERY_PARAM in initialize_globals to clean mod_perl env

    [ TESTING ]
    - improve test coverage on request types (GH #199, GH #200)
    - improve test coverage on CGI::Carp
jperkin pushed a commit that referenced this issue May 10, 2016
- Fix compatibility for 4.03 (#227)
- Various documentation fixes (#199,#200,#210,)
- Improve wildcard detection in the ppx (#198)
- Fix Lwt_stream: bounded_push#close wake the reader (#201)
- Fix infinite loop with Lwt_stream.choose (#214)
- Fix lazyness failure with Lwt_io.common#close (#207)
jperkin pushed a commit that referenced this issue Jul 17, 2016
Fix CPU detection patch while here.

Changes from 2.5.2 to 2.6.0
===========================

- Introduced a new re_evaluate() function for re-evaluating the
  previous executed array expression without any check.  This is meant
  for accelerating loops that are re-evaluating the same expression
  repeatedly without changing anything else than the operands.  If
  unsure, use evaluate() which is safer.

- The BLOCK_SIZE1 and BLOCK_SIZE2 constants have been re-checked in
  order to find a value maximizing most of the benchmarks in bench/
  directory.  The new values (8192 and 16 respectively) give somewhat
  better results (~5%) overall.  The CPU used for fine tuning is a
  relatively new Haswell processor (E3-1240 v3).

- The '--name' flag for `setup.py` returning the name of the package
  is honored now (issue #215).


Changes from 2.5.1 to 2.5.2
===========================

- conj() and abs() actually added as VML-powered functions, preventing
  the same problems than log10() before (PR #212).  Thanks to Tom Kooij
  for the fix!


Changes from 2.5 to 2.5.1
=========================

- Fix for log10() and conj() functions.  These produced wrong results
  when numexpr was compiled with Intel's MKL (which is a popular build
  since Anaconda ships it by default) and non-contiguous data (issue
  #210).  Thanks to Arne de Laat and Tom Kooij for reporting and
  providing a nice test unit.

- Fix that allows numexpr-powered apps to be profiled with pympler.
  Thanks to @nbecker.


Changes from 2.4.6 to 2.5
=========================

- Added locking for allowing the use of numexpr in multi-threaded
  callers (this does not prevent numexpr to use multiple cores
  simultaneously).  (PR #199, Antoine Pitrou, PR #200, Jenn Olsen).

- Added new min() and max() functions (PR #195, CJ Carey).


Changes from 2.4.5 to 2.4.6
===========================

- Fixed some UserWarnings in Solaris (PR #189, Graham Jones).

- Better handling of MSVC defines. (#168, Francesc Alted).


Changes from 2.4.4 to 2.4.5
===========================

- Undone a 'fix' for a harmless data race.  (#185 Benedikt Reinartz,
  Francesc Alted).

- Ignore NumPy warnings (overflow/underflow, divide by zero and
  others) that only show up in Python3.  Masking these warnings in
  tests is fine because all the results are checked to be
  valid. (#183, Francesc Alted).


Changes from 2.4.3 to 2.4.4
===========================

- Fix bad #ifdef for including stdint on Windows (PR #186, Mike Sarahan).


Changes from 2.4.3 to 2.4.4
===========================

* Honor OMP_NUM_THREADS as a fallback in case NUMEXPR_NUM_THREADS is not
  set. Fixes #161. (PR #175, Stefan Erb).

* Added support for AppVeyor (PR #178 Andrea Bedini)

* Fix to allow numexpr to be imported after eventlet.monkey_patch(),
  as suggested in #118 (PR #180 Ben Moran).

* Fix harmless data race that triggers false positives in ThreadSanitizer.
  (PR #179, Clement Courbet).

* Fixed some string tests on Python 3 (PR #182, Antonio Valentino).


Changes from 2.4.2 to 2.4.3
===========================

* Comparisons with empty strings work correctly now.  Fixes #121 and
  PyTables #184.

Changes from 2.4.1 to 2.4.2
===========================

* Improved setup.py so that pip can query the name and version without
  actually doing the installation.  Thanks to Joris Borgdorff.

Changes from 2.4 to 2.4.1
=========================

* Added more configuration examples for compiling with MKL/VML
  support.  Thanks to Davide Del Vento.

* Symbol MKL_VML changed into MKL_DOMAIN_VML because the former is
  deprecated in newer MKL.  Thanks to Nick Papior Andersen.

* Better determination of methods in `cpuinfo` module.  Thanks to Marc
  Jofre.

* Improved NumPy version determination (handy for 1.10.0).  Thanks
  to Åsmund Hjulstad.

* Benchmarks run now with both Python 2 and Python 3.  Thanks to Zoran
  Plesivčak.

Changes from 2.3.1 to 2.4
=========================

* A new `contains()` function has been added for detecting substrings
  in strings.  Only plain strings (bytes) are supported for now.  See
  PR #135 and ticket #142.  Thanks to Marcin Krol.

* New version of setup.py that allows better management of NumPy
  dependency.  See PR #133.  Thanks to Aleks Bunin.

Changes from 2.3 to 2.3.1
=========================

* Added support for shift-left (<<) and shift-right (>>) binary operators.
  See PR #131. Thanks to fish2000!

* Removed the rpath flag for the GCC linker, because it is probably
  not necessary and it chokes to clang.
jperkin pushed a commit that referenced this issue Aug 24, 2016
NEWS:
Version 2.5.3
-------------
- Updated zoneinfo to 2016d
- Fixed parser bug where unambiguous datetimes fail to parse when dayfirst is
  set to true. (gh issue #233, pr #234)
- Bug in zoneinfo file on platforms such as Google App Engine which do not
  do not allow importing of subprocess.check_call was reported and fixed by
  @savraj (gh issue #239, gh pr #240)
- Fixed incorrect version in documentation (gh issue #235, pr #243)

Version 2.5.2
-------------
- Updated zoneinfo to 2016c
- Fixed parser bug where yearfirst and dayfirst parameters were not being
  respected when no separator was present. (gh issue #81 and #217, pr #229)

Version 2.5.1
-------------
- Updated zoneinfo to 2016b
- Changed MANIFEST.in to explicitly include test suite in source distributions,
  with help from @koobs (gh issue #193, pr #194, #201, #221)
- Explicitly set all line-endings to LF, except for the NEWS file, on a
  per-repository basis (gh pr #218)
- Fixed an issue with improper caching behavior in rruleset objects (gh issue
  #104, pr #207)
- Changed to an explicit error when rrulestr strings contain a missing BYDAY
  (gh issue #162, pr #211)
- tzfile now correctly handles files containing leapcnt (although the leapcnt
  information is not actually used). Contributed by @hjoukl (gh issue #146, pr
  #147)
- Fixed recursive import issue with tz module (gh pr #204)
- Added compatibility between tzwin objects and datetime.time objects (gh issue
  #216, gh pr #219)
- Refactored monolithic test suite by module (gh issue #61, pr #200 and #206)
- Improved test coverage in the relativedelta module (gh pr #215)
- Adjusted documentation to reflect possibly counter-intuitive properties of
  RFC-5545-compliant rrules, and other documentation improvements in the rrule
  module (gh issue #105, gh issue #149 - pointer to the solution by @phep,
  pr #213).


Version 2.5.0
-------------
- Updated zoneinfo to 2016a
- zoneinfo_metadata file version increased to 2.0 - the updated updatezinfo.py
  script will work with older zoneinfo_metadata.json files, but new metadata
  files will not work with older updatezinfo.py versions. Additionally, we have
  started hosting our own mirror of the Olson databases on a github pages
  site (https://dateutil.github.io/tzdata/) (gh pr #183)
- dateutil zoneinfo tarballs now contain the full zoneinfo_metadata file used
  to generate them. (gh issue #27, gh pr #85)
- relativedelta can now be safely subclassed without derived objects reverting
  to base relativedelta objects as a result of arithmetic operations.
  (lp:1010199, gh issue #44, pr #49)
- relativedelta 'weeks' parameter can now be set and retrieved as a property of
  relativedelta instances. (lp: 727525, gh issue #45, pr #49)
- relativedelta now explicitly supports fractional relative weeks, days, hours,
  minutes and seconds. Fractional values in absolute parameters (year, day, etc)
  are now deprecated. (gh issue #40, pr #190)
- relativedelta objects previously did not use microseconds to determine of two
  relativedelta objects were equal. This oversight has been corrected.
  Contributed by @elprans (gh pr #113)
- rrule now has an xafter() method for retrieving multiple recurrences after a
  specified date. (gh pr #38)
- str(rrule) now returns an RFC2445-compliant rrule string, contributed by
  @schinckel and @armicron (lp:1406305, gh issue #47, prs #50, #62 and #160)
- rrule performance under certain conditions has been significantly improved
  thanks to a patch contributed by @dekoza, based on an article by Brian Beck
  (@exogen) (gh pr #136)
- The use of both the 'until' and 'count' parameters is now deprecated as
  inconsistent with RFC2445 (gh pr #62, #185)
- Parsing an empty string will now raise a ValueError, rather than returning the
  datetime passed to the 'default' parameter. (gh issue #78, pr #187)
- tzwinlocal objects now have a meaningful repr() and str() implementation
  (gh issue #148, prs #184 and #186)
- Added equality logic for tzwin and tzwinlocal objects. (gh issue #151,
  pr #180, #184)
- Added some flexibility in subclassing timelex, and switched the default
  behavior over to using string methods rather than comparing against a fixed
  list. (gh pr #122, #139)
- An issue causing tzstr() to crash on Python 2.x was fixed. (lp: 1331576,
  gh issue #51, pr #55)
- An issue with string encoding causing exceptions under certain circumstances
  when tzname() is called was fixed. (gh issue #60, #74, pr #75)
- Parser issue where calling parse() on dates with no day specified when the
  day of the month in the default datetime (which is "today" if unspecified) is
  greater than the number of days in the parsed month was fixed (this issue
  tended to crop up between the 29th and 31st of the month, for obvious reasons)
  (canonical gh issue #25, pr #30, #191)
- Fixed parser issue causing fuzzy_with_tokens to raise an unexpected exception
  in certain circumstances. Contributed by @MichaelAquilina (gh pr #91)
- Fixed parser issue where years > 100 AD were incorrectly parsed. Contributed
  by @Bachmann1234 (gh pr #130)
- Fixed parser issue where commas were not a valid separator between seconds
  and microseconds, preventing parsing of ISO 8601 dates. Contributed by
  @ryanss (gh issue #28, pr #106)
- Fixed issue with tzwin encoding in locales with non-Latin alphabets
  (gh issue #92, pr #98)
- Fixed an issue where tzwin was not being properly imported on Windows.
  Contributed by @labrys. (gh pr #134)
- Fixed a problem causing issues importing zoneinfo in certain circumstances.
  Issue and solution contributed by @alexxv (gh issue #97, pr #99)
- Fixed an issue where dateutil timezones were not compatible with basic time
  objects. One of many, many timezone related issues contributed and tested by
  @labrys. (gh issue #132, pr #181)
- Fixed issue where tzwinlocal had an invalid utcoffset. (gh issue #135,
  pr #141, #142)
- Fixed issue with tzwin and tzwinlocal where DST transitions were incorrectly
  parsed from the registry. (gh issue #143, pr #178)
- updatezinfo.py no longer suppresses certain OSErrors. Contributed by @bjamesv
  (gh pr #164)
- An issue that arose when timezone locale changes during runtime has been
  fixed by @carlosxl and @mjschultz (gh issue #100, prs #107, #109)
- Python 3.5 was added to the supported platforms in the metadata (@tacaswell
  gh pr #159) and the test suites (@moreati gh pr #117).
- An issue with tox failing without unittest2 installed in Python 2.6 was fixed
  by @moreati (gh pr #115)
- Several deprecated functions were replaced in the tests by @moreati
  (gh pr #116)
- Improved the logic in Travis and Appveyor to alleviate issues where builds
  were failing due to connection issues when downloading the IANA timezone
  files. In addition to adding our own mirror for the files (gh pr #183), the
  download is now retried a number of times (with a delay) (gh pr #177)
- Many failing doctests were fixed by @moreati. (gh pr #120)
- Many fixes to the documentation (gh pr #103, gh pr #87 from @radarhere,
  gh pr #154 from @gpoesia, gh pr #156 from @awsum, gh pr #168 from @ja8zyjits)
- Added a code coverage tool to the CI to help improve the library. (gh pr #182)
- We now have a mailing list - dateutil@python.org, graciously hosted by
  Python.org.


Version 2.4.2
-------------
- Updated zoneinfo to 2015b.
- Fixed issue with parsing of tzstr on Python 2.7.x; tzstr will now be decoded
  if not a unicode type. gh #51 (lp:1331576), gh pr #55.
- Fix a parser issue where AM and PM tokens were showing up in fuzzy date
  stamps, triggering inappropriate errors. gh #56 (lp: 1428895), gh pr #63.
- Missing function "setcachesize" removed from zoneinfo __all__ list by @ryanss,
  fixing an issue with wildcard imports of dateutil.zoneinfo. (gh pr #66).
- (PyPi only) Fix an issue with source distributions not including the test
  suite.


Version 2.4.1
-------------

- Added explicit check for valid hours if AM/PM is specified in parser.
  (gh pr #22, issue #21)
- Fix bug in rrule introduced in 2.4.0 where byweekday parameter was not
  handled properly. (gh pr #35, issue #34)
- Fix error where parser allowed some invalid dates, overwriting existing hours
  with the last 2-digit number in the string. (gh pr #32, issue #31)
- Fix and add test for Python 2.x compatibility with boolean checking of
  relativedelta objects. Implemented by @nimasmi (gh pr #43) and Cédric Krier
  (lp: 1035038)
- Replaced parse() calls with explicit datetime objects in unit tests unrelated
  to parser. (gh pr #36)
- Changed private _byxxx from sets to sorted tuples and fixed one currently
  unreachable bug in _construct_byset. (gh pr #54)
- Additional documentation for parser (gh pr #29, #33, #41) and rrule.
- Formatting fixes to documentation of rrule and README.rst.
- Updated zoneinfo to 2015a.
jperkin pushed a commit that referenced this issue Oct 22, 2016
## 1.2.1

* Fixed #272. Workaround Ruby bug 12832 which caused interpreter to hang. See https://bugs.ruby-lang.org/issues/12832. Thanks to @chrisroos & @petems (6f1c8b9b, #273).

## 1.2.0

* Always use prepended module to stub class & instance methods for Ruby v2+ - thanks to @grosser & @chrisroos (43d56671, #244)
* Always use prepended module to stub AnyInstance methods in Ruby v2+ - thanks to @chrisroos (#262)
* Always set visibility of stub method to match stubbed method on included module - thanks to @grosser & @chrisroos (e87c03b0, #248)
* Always set visibility to stub method to match stubbed method on superclass - thanks to @chrisroos (38d902ad)
* Allow stubbing of method to which any instance responds (#200)
* Allow `includes` matcher to take matcher arguments - thanks to @lazyatom (#217)
* Avoid exception in older version of Rubygems - thanks to @chrisroos (78d930a7)
* Add licenses to gemspec as requested by @coreyhaines (#201)
* Fix typo in README - thanks to @jaredbeck (6119460d)
* Added section about using Mocha with RSpec & Rails to README (#221)
* Fix documentation for Mocha::API#stub method - thanks to @raeno (599b1dcd)
* Added backers and sponsors from OpenCollective - thanks to @piamancini (#253)
* Fix typo in docs for equals - thanks to @alexcoco (#254)
* Add known issue for Ruby v1.8 to README - thanks to @chrisroos (2c642096)
jperkin pushed a commit that referenced this issue Feb 28, 2017
Version 0.14.2
--------------

Released 2017-01-10

- Fix bug where ``FlaskForm`` assumed ``meta`` argument was not ``None`` if it
  was passed. (`#278`_)

.. _#278: wtforms/flask-wtf#278

Version 0.14.1
--------------

Released 2017-01-10

- Fix bug where the file validators would incorrectly identify an empty file as
  valid data. (`#276`_, `#277`_)

    - ``FileField`` is no longer deprecated. The data is checked during
      processing and only set if it's a valid file.
    - ``has_file`` *is* deprecated; it's now equivalent to ``bool(field.data)``.
    - ``FileRequired`` and ``FileAllowed`` work with both the Flask-WTF and
      WTForms ``FileField`` classes.
    - The ``Optional`` validator now works with ``FileField``.

.. _#276: wtforms/flask-wtf#276
.. _#277: wtforms/flask-wtf#277

Version 0.14
------------

Released 2017-01-06

- Use itsdangerous to sign CSRF tokens and check expiration instead of doing it
  ourselves. (`#264`_)

    - All tokens are URL safe, removing the ``url_safe`` parameter from
      ``generate_csrf``. (`#206`_)
    - All tokens store a timestamp, which is checked in ``validate_csrf``. The
      ``time_limit`` parameter of ``generate_csrf`` is removed.

- Remove the ``app`` attribute from ``CsrfProtect``, use ``current_app``.
  (`#264`_)
- ``CsrfProtect`` protects the ``DELETE`` method by default. (`#264`_)
- The same CSRF token is generated for the lifetime of a request. It is exposed
  as ``g.csrf_token`` for use during testing. (`#227`_, `#264`_)
- ``CsrfProtect.error_handler`` is deprecated. (`#264`_)

    - Handlers that return a response work in addition to those that raise an
      error. The behavior was not clear in previous docs.
    - (`#200`_, `#209`_, `#243`_, `#252`_)

- Use ``Form.Meta`` instead of deprecated ``SecureForm`` for CSRF (and
  everything else). (`#216`_, `#271`_)

    - ``csrf_enabled`` parameter is still recognized but deprecated. All other
      attributes and methods from ``SecureForm`` are removed. (`#271`_)

- Provide ``WTF_CSRF_FIELD_NAME`` to configure the name of the CSRF token.
  (`#271`_)
- ``validate_csrf`` raises ``wtforms.ValidationError`` with specific messages
  instead of returning ``True`` or ``False``. This breaks anything that was
  calling the method directly. (`#239`_, `#271`_)

    - CSRF errors are logged as well as raised. (`#239`_)

- ``CsrfProtect`` is renamed to ``CSRFProtect``. A deprecation warning is issued
  when using the old name. ``CsrfError`` is renamed to ``CSRFError`` without
  deprecation. (`#271`_)
- ``FileField`` is deprecated because it no longer provides functionality over
  the provided validators. Use ``wtforms.FileField`` directly. (`#272`_)

.. _`#200`: wtforms/flask-wtf#200
.. _`#209`: wtforms/flask-wtf#209
.. _`#216`: wtforms/flask-wtf#216
.. _`#227`: wtforms/flask-wtf#227
.. _`#239`: wtforms/flask-wtf#239
.. _`#243`: wtforms/flask-wtf#243
.. _`#252`: wtforms/flask-wtf#252
.. _`#264`: wtforms/flask-wtf#264
.. _`#271`: wtforms/flask-wtf#271
.. _`#272`: wtforms/flask-wtf#272

Version 0.13.1
--------------

Released 2016/10/6

- Deprecation warning for ``Form`` is shown during ``__init__`` instead of immediately when subclassing. (`#262`_)
- Don't use ``pkg_resources`` to get version, for compatibility with GAE. (`#261`_)

.. _`#261`: wtforms/flask-wtf#261
.. _`#262`: wtforms/flask-wtf#262

Version 0.13
------------

Released 2016/09/29

- ``Form`` is renamed to ``FlaskForm`` in order to avoid name collision with WTForms's base class.  Using ``Form`` will show a deprecation warning. (`#250`_)
- ``hidden_tag`` no longer wraps the hidden inputs in a hidden div.  This is valid HTML5 and any modern HTML parser will behave correctly. (`#217`_, `#193`_)
- ``flask_wtf.html5`` is deprecated.  Import directly from ``wtforms.fields.html5``. (`#251`_)
- ``is_submitted`` is true for ``PATCH`` and ``DELETE`` in addition to ``POST`` and ``PUT``. (`#187`_)
- ``generate_csrf`` takes a ``token_key`` parameter to specify the key stored in the session. (`#206`_)
- ``generate_csrf`` takes a ``url_safe`` parameter to allow the token to be used in URLs. (`#206`_)
- ``form.data`` can be accessed multiple times without raising an exception. (`#248`_)
- File extension with multiple parts (``.tar.gz``) can be used in the ``FileAllowed`` validator. (`#201`_)

.. _`#187`: wtforms/flask-wtf#187
.. _`#193`: wtforms/flask-wtf#193
.. _`#201`: wtforms/flask-wtf#201
.. _`#206`: wtforms/flask-wtf#206
.. _`#217`: wtforms/flask-wtf#217
.. _`#248`: wtforms/flask-wtf#248
.. _`#250`: wtforms/flask-wtf#250
.. _`#251`: wtforms/flask-wtf#251
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants