* Fri Feb 09 2018 asterios.dramis@gmail.com
- Update to version 5.18:
* C library
- New routines introduced to preclude altering the global
variables NPVMAX, NPSMAX, and NDPMAX, which determine how
much memory to allocate for storing PVi_ma, PSi_ma, DPja, and
DQia keyvalues: wcsinit(), lininit(), lindist(), and
disinit(). These are now used by various WCSLIB routines,
such as the header parsers, which previously temporarily
altered the global variables, thus posing a thread hazard.
- The Flex scanners, fitshdr(), wcsbth(), wcspih(), wcsulexe(),
and wcsutrne(), have been rewritten as thin wrappers (with
the same API) over scanners that were modified (with changed
API) as required to use Flex's "reentrant" option.
Consequently, they are now reentrant and should be
thread-safe. That also passes through to the deprecated
wrappers, wcsulex() and wcsutrn().
- Fixed memory leaks in lindist() and lincpy() uncovered by
valgrind.
- Test programs tfitshdr, tpih1, tpih2, and ttab3 are now
careful to free all allocated memory before exit to defeat
spurious reports of memory leaks by valgrind.
* Fortran wrappers
- New wrappers for wcsinit(), lininit(), lindist(), and
disinit().
* User manual
- Updates and amendments in line with the above changes.
- Documentation generation moved to doxygen 1.8.14
(was 1.8.13).
From version 5.17:
* C library
- Fixed a memory leak in wcspih().
- Fixed compiler warnings about comparison between signed and
unsigned integers in tab.c. Also fixed warnings in other
functions about unused parameters.
* Fortran wrappers
- Fixed compiler warnings about comparison between signed and
unsigned integers in several routines.
* PGSBOX
- Fixed a compiler warning about comparison between signed and
unsigned ints.
* Installation
- Removed setgid permission on installation directories.
* User manual
- Minor updates and amendments.
- Documentation generation moved to doxygen 1.8.13 (was
1.8.10).
* Wed Jul 05 2017 asterios.dramis@gmail.com
- Update to version 5.16:
* C library
- Bug fix in spcfix() for the previous change.
* Sun Jul 17 2016 asterios.dramis@gmail.com
- Rename the package from libwcs to wcslib. Added appropriate
Provides/Obsoletes entries.
* Thu Jul 14 2016 jengelh@inai.de
- Avoid unnecessary double emittance of %optflags into compiler
line. Fixup groups for openSUSE Factory acceptance.
* Wed Jul 13 2016 asterios.dramis@gmail.com
- Removed static library.
- Removed requirement of libwcs lib from libwcs-doc (not needed).
- Added Recommends entry for libwcs-doc in libwcs-devel.
* Thu Jun 30 2016 asterios.dramis@gmail.com
- Update to version 5.15:
* C library
- Bug fix in wcsulex.l for the previous change. Reported, and
fix supplied by Tammo Jan Dijkema.
- In spcfix(), report the value of VELREF if ctype is
translated from the AIPS convention.
From version 5.14:
* C library
- In wcsulex.l and wcsutrn.l, applied a workaround for a memory
leak introduced by a change (bug) in flex in Aug/2012.
Reported, and fix supplied by Thomas Robitaille and Erik
Bray.
* Installation
- In MacOSX, create symlink libwcs.dylib pointing to the
dynamic library so that WCSLIB is linked dynamically by
default. Requested by Paul Price.
* Thu Jan 28 2016 toddrme2178@gmail.com
- Update to version 5.13
* C library
- In wcshdo(), provide floating-point format control via the 'ctrl'
argument (formerly 'relax').
- In wcspih(), PLATEID by itself is no longer sufficient to trigger a
DSS translation (reported by James Allen).
- In unitfix(), ensure that the message buffer cannot be overrun, e.g.
by blank-padded unit strings (reported by Vishal Kasliwal).
- Update to version 5.12
* C library
- Bug fix in wcshdo() for CRVALia precision reported by Mihai Cara.
- Update to version 5.11
* C library
- Bug fixes in wcspih.l and dis.c for WAT distortions provided by
Ole Streicher.
- Update to version 5.10
* C library
- In wcshdo(), allow output of floating point keyvalues to 15
significant digits (was 14), mainly for astropy.
- In wcspih(), allow unrecognised WAT projection types (tan, etc.) to
pass without returning an error. Reported by Michael Droettboom.
Also fixed a bug triggered by SIP keywords in unconventional order,
reported by Colin Slater, LSST.
- Update to version 5.9
* C library
- In disx2p(), make proper allowance for the possibility that the TPD
and SIP forward and inverse distortion polynomials may not be of the
same degree, reported by Martin Kuemmel.
- Fix-ups in wcshdo() reported by Michael Droettboom, and several
tidy-ups as well.
- Update to version 5.8
* C library
- DSS (Digitized Sky Survey) coordinates are now handled via TPD, as
are the TNX and ZPX "projections". New test script tdis3 and
headers DSS.keyrec, TNX.keyrec, and ZPX.keyrec.
- New function dishdo() can be used to set a flag that causes
wcshdo() to write headers in the form of the distortion function
used internally (usually TPD).
- Added the capability, via DPja.DOCORR, for a distortion function to
to compute an additive correction to the undistorted coordinates
(rather than computing the distorted coordinates themselves).
- Added auxiliary variables to TPD via DPja.AUX.jhat.COEFF.m.
- Bug fix in wcshdo() for TPV, diagnosed by Michael Droettboom.
* Fortran wrappers
- Wrapper for dishdo().
- Update to version 5.7
* C library
- Extended wcssub() to handle distortions (and thus wcscopy() also).
This required axis mapping to be enabled for SIP distortions within
WCSLIB.
- wcshdo() now handles all distortions currently supported by WCSLIB:
SIP, TPV, TPD, and Polynomial.
- Bug fixes in sphx2s() and sphs2x() for non-unit vector strides for
special-case rotations.
- In wcsset(), modify wcsprm::ctype after translating TPV so that
subsequent calls won't try to re-translate it, the PVi_ma records
by then having been erased. Reported by Michael Droettboom. Also,
restore NDPMAX after translating TPV.
- Bug fixes in discpy(), disprt(), disset(), and disx2p().
- Added disperr(), prjperr(), spcperr(), spxperr(), and tabperr() to
complete the set and make reporting errors slightly more convenient.
* Utilities
- wcsware has a new option, -o, to print the wcsprm struct in the form
of a FITS header using wcshdo(). Also, the -a option has been
extended to allow a 0-relative numeric index for selecting an
alternate WCS, where the alternates are sequenced alphabetically
(without gaps) following the primary representation.
* User manual
- Documentation generation moved to doxygen 1.8.10 (was 1.8.9.1).
- Update to version 5.6
* C library
- Bug fixes in wcspih() and sipset() to account for the fact that the
independent variables of the SIP polynomial are pixel coordinate
offsets from CRPIXja, not pixel coordinates per se. Diagnosed by
Michael Droettboom.
- Validated SIP and TPV handling by comparing the output of
'wcsware -x' with that of wcstools 'xy2sky -d -n6' using astropy's
SIP test headers, and separate SIP and TPV headers originating from
the Palomar Transient Factory provided by David Shupe.
- Changed SIP.keyrec so that CRPIX1 and CRPIX2 differ in value,
thereby making tests sensitive to any confusion between the two.
- Update to version 5.5
* C library
- Bug fixes in wcspih.l for headers with multiple distortions, and for
distortion parameter look-alike keywords.
- Bug fix in sipset() uncovered by valgrind.
- Update to version 5.4.1
* C library
- Added a fairly lengthy section to the prologue of dis.h describing
the Paper IV keywords and the distortion functions currently
implemented.
* User manual
- Added a new section on WCSLIB version numbers.
- Update to version 5.4
* C library
- Further work on distortions: wcspih() now parses Paper IV distortion
keywords (CPDISja, CQDISia, DPja, DQia, etc.), thus handling record-
valued keywords. SIP keywords are also parsed and translated into
Paper IV keywords.
- TPV, SIP, and whereever possible, the general Polynomial distortion
function of Paper IV are now implemented by the Template Polynomial
Distortion (TPD), that being a superset of TPV and SIP. TPD, which
can also handle 1D distortions and be used for inversions, is also
supported as a separate distortion type defined by Paper IV
keywords. TPD efficiently handles 1D distortions and distortions
without radial terms.
- Specialized inverse distortions, such as defined by SIP, are
implemented by TPD and recognized by disx2p(), which uses them to
compute the initial approximation of its more precise iterative
solution.
- Generalized tdis1.c so that it can do closure tests for SIP headers,
and added a SIP test header.
- Update to version 5.3.1
* C library
- Bug fix in test program tdis1.c reported by Martin Kuemmel.
- Update to version 5.3
* First public release of WCSLIB 5.x with distortions capability.
* C library
- Changed disprm::dtype from char[16] to char[72] for reasons relating
to header parsing.
- More armour plating for disset() and friends. They also use new
utility functions wcsutil_dpkey_int() and wcsutil_dpkey_double() to
extract numeric values from a dpkey struct. This ensures their
independence of the data type, the appropriate reporting of dpkey
values by disprt(), and (eventually) the appropriate writing of DPja
and DQia keyvalues by wcshdo().
- Augmented the usage comments for dpfill() to explain how numeric
values in a dpkey struct are handled.
* Utilities
- wcsware now uses wcserr to provide a backtrace on errors. Also
fixed a couple of minor annoyances relating to alternate
representations.
- Update to version 5.2 beta
* C library
- Further development of disprm and related functions to implement
the FITS keywords for distortions introduced in WCS Paper IV, thus
changing disprm's ABI once again.
disprm's model is now similar to wcsprm's handling of PVi_ma and
PSi_ma, where the parsed keyrecords are loaded into a set of pvcard
and pscard structs and wcsset() does the analysis. For disprm, the
parsed DPja or DQia keyrecords are loaded into a set of dpkey
structs for disset() to analyse.
- New function dpfill() aids in filling a dpkey struct. Function
disparms() has been removed. It was no longer needed as
disprm::parms[][] is now a "returned" member of the struct.
- Implementation of the general Polynomial distortion function defined
in Sect. 3.1 of WCS Paper IV. The polynomial is defined in terms of
Paper IV keywords.
- Bug fixes in diswarp() and linwarp() reported by
Michael Droettboom.
- Test program tdis1 now tests a TPV header for closure in two ways:
directly as a specialist TPV distortion (as before), then by
translating it into a general polynomial distortion. It then also
tests that the TPV and polynomial distortions produce the same
results.
* Fortran wrappers
- Changes to the wrappers reflecting changes to disprm.
- Bug fixes in fitshdr_f.c, and test programs tdis1.f, tfitshdr.f,
twcsfix.f, and twcs.f. All reported and/or fixed by Ole Streicher.
- Update to version 5.1 beta
* C library
- Distortions-related bug fixes to linset(), linp2x(), and linx2p().
- New functions diswarp() and linwarp() compute statistics of the
distortion functions over a specified domain. Changed tdis1.c to
test them.
- Changes to disprm (so changed ABI).
* Fortran wrappers
- Wrappers for diswarp() and linwarp().
- Update to version 5.0 beta
* C library
- Implemented the framework of WCS Paper IV (the draft distortions
proposal) based on a new struct, disprm, and suite of routines with
header dis.h: disini(), disalloc(), discpy(), disfree(), disprt(),
disset(), disp2x(), and disx2p(). New test program tdis1.
Consequent changes to the linprm struct have altered its ABI, thus
necessitating an increment in the WCSLIB major verion number.
- wcsset() now recognises the "TPV" projection proposed in an early
draft of WCS Paper II, and translates it into a disprm distortion -
by request of Octavi Fors. Additionally, it recognises "TPU" as
equivalent to "TPV" but using a prior distortion (coming before the
linear transformation matrix) rather than sequent (coming after it).
- In wcspih() and wcsbth(), added relaxation flags to allow PC0i_0ja,
PV0j_0ma, and PS0j_0ma (i.e. with leading zeroes on the index).
- Added wcslib_version() to return the WCSLIB version number, as
suggested by Ole Streicher.
- Fixed problems uncovered by valgrind in prjbchk() (reported by
Ger van Diepen), sphx2s(), sphx2s(), spcspxe(), spcxpse(), tabini(),
and wcshdo_util().
- Tidied up error reporting, particularly relating to translating
status returns from lower-level functions. New functions linperr()
and celperr() report error messages from the structs they contain
in addition to their own.
- Changed output formatting of floating point values in linprt(),
celprt(), prjprt(), spcprt(), tabprt(), and wcsprt(). Updated the
test output reference files for tbth1, tpih1, twcsfix, twcssub, and
twcstab to suit.
- Tidied up several of the test programs, mostly to free memory
explicitly before exit so that valgrind doesn't report (non-)leaks.
* Fortran wrappers
- Wrappers for the new distortion functions. New test programs
tdis1.f and tdis2.f.
- Updates following changes to wcspih() and wcsbth().
- Added wrappers for linperr() and celperr(). Also added prjperr_(),
spcperr_(), and tabperr_() as convenient wrappers on wcserr_prt().
- Wrapper for wcslib_version().
* Utilities
- Added a "lint" function to wcsware to check a FITS header for
conformance to the WCS standard. New test program twcslint.
* PGSBOX
- In PGCRLB, fixed an incorrect use of the MOD intrinsic reported by
'gfortran -std=f95' via Jean-Baptiste Marquette.
- Remove upstream-included build_flags.patch
* Sun Feb 22 2015 asterios.dramis@gmail.com
- Update to version 4.25.1:
* C library
- Updated the test output reference files for tpih1, tbth1,
twcsfix, and twcstab to account for the change to wcsset() in
release 4.25.
- Documentation generation moved to doxygen 1.8.9.1 (was
1.8.8).
* Fortran wrappers
- Updated the test output reference files for tpih1, twcsfix,
and twcstab to account for the change to wcsset() in release
4.25.
From version 4.25:
* C library
- wcsset() now supplies default values for the auxiliary
keywords EQUINOXa and RADESYSa if not present in the FITS
header.
From version 4.24:
* C library
- Changed API to wcscompare() to allow a tolerance to be
specified for floating-point comparisons. Contributed by
Michael Droettboom.
- Documentation generation moved to doxygen 1.8.8 (was 1.8.4).
* Fortran wrappers
- Track the change to wcscompare().
* User manual
- Added mention of WCSLIB in "homebrew-science" (MacOSX) in the
section on other packages.
- Removed autoconf build requirement (not needed).
- Added a patch (build_flags.patch) taken from Debian to add
CPPFLAGS and CFLAGS to Makefiles.
* Fri Feb 20 2015 arun@gmx.de
- specfile:
* update copyright year
- update to version 4.25.1:
* C library
- Updated the test output reference files for tpih1, tbth1, twcsfix,
and twcstab to account for the change to wcsset() in release 4.25.
- Documentation generation moved to doxygen 1.8.9.1 (was 1.8.8).
* Fortran wrappers
- Updated the test output reference files for tpih1, twcsfix, and
twcstab to account for the change to wcsset() in release 4.25.
- changes from version 4.25:
* C library
- wcsset() now supplies default values for the auxiliary keywords
EQUINOXa and RADESYSa if not present in the FITS header.
- changes from version 4.24:
* C library
- Changed API to wcscompare() to allow a tolerance to be specified for
floating-point comparisons. Contributed by Michael Droettboom.
- Documentation generation moved to doxygen 1.8.8 (was 1.8.4).
* Fortran wrappers
- Track the change to wcscompare().
* User manual
- Added mention of WCSLIB in "homebrew-science" (MacOSX) in the
section on other packages.
* Thu Sep 11 2014 toddrme2178@gmail.com
- Update to version 4.23 (2014/05/11)
* C library
- New function wcscompare() compares two wcsprm structs for equality
with varying degrees of strictness. Test program twcscompare.
Contributed by Michael Droettboom.
- In wcssub(), fixed a bug uncovered by valgrind arising from
allocation of insufficient memory for temporaries when a new axis
is added. Reported by Michael Droettboom.
- In wcshdo(), don't write RESTFRQ or RESTWAV if zero.
Also, to distinguish them from integer keyvalues, floating-
point values will now always be written with an exponent or
fractional part, ".0" being appended if necessary to achieve this.
Suggested by Peter Weilbacher.
- Fixed the '-h' option in twcshdr.
* Fortran wrappers
- Wrapper for wcscompare().
- Update to version 4.22 (2014/04/13)
* C library
- In pcox2s() and pcos2x(), use alternative projection equations for
greater numerical precision near theta == 0. In cops2x(), return
an exact result for theta at the poles. Relaxed the tolerance for
bounds checking a little in sflx2s().
- Update to version 4.21 (2014/03/24)
* C library
- New function prjbchk() performs bounds checking on native spherical
coordinates. It is invoked automatically by the deprojection (x2s)
routines if prjprm::bounds&4 is set. Documented the new bounds
checking implemented by prjbchk() in the prologue entry for
wcsbchk(). Improvements to tprj1 to test the vector API of prjx2s()
and to deal better with out-of-bounds native coordinates returned by
it.
- Bug fixes in the projection routines: in hpxx2s() relating to bounds
checking, bug introduced at 4.20, reported by Michael Droettboom; in
parx2s() and molx2s() relating to setting the stat vector; in
hpxx2s() relating to implementation of the vector API; and in
xphx2s() relating to setting an out-of-bounds value of phi.
* Fortran wrappers
- Wrapper for prjbchk(). Modified tprj1.f to track changes to the C
version.
* Thu Feb 06 2014 toddrme2178@gmail.com
- Fix typo in subpackage requires
* Tue Feb 04 2014 toddrme2178@gmail.com
- Initial version (4.20)