IRAF 2.17.1 Release notes
- Authors:
IRAF Community
- Date:
July 15, 2023
The current IRAF version 2.17.1 is available from github at
https://github.com/iraf-community/iraf/releases/tag/v2.17.1
Changes to the NOAO 2.16.1 sources include:
Community maintainance
IRAF is no longer maintained by NOAO, but by the community of volunteers. Contributions of bug fixes, documentation or improvements are welcome.
All known non-free code removed
Although IRAF 2.16.1 was claimed to be “free software”, it contained source code that is not freely distributable; namely code copied from the book “Numerical Recipes in Fortran”. This code is replaced with free equivalents. The IRAF community edition is Open Source, and as such included in Debian.
Installation procedure reworked
The installation scripts are replaced with makefiles, and the build and installation procedures now use the standard targets, standard paths, and customization environment variables. The standard installation place is
/usr/local/lib/iraf
. On a build error the build now stops now immediately, making it easier to find the cause.IRAF ported to other architectures
IRAF is now ported to a number of little endian architectures (ARM, PowerPC, MIPS, x32, RISC-V64) and operating systems (GNU Hurd and FreeBSD). Specifically, the Mac M1 processor is supported now.
The code was adjusted to be compliant with newer (C99) C standards, and to be compileable with actual compilers.
Major bug fixes
Many bugs of the 2.16.1 release are fixed. Some of he major ones are:
Linux systems crashed with “Out of memory” (2.12 release notes)
noao.digiphot.photcal.fitparams
failed with a segmentation fault on 64-bit systems (iraf.net#1467834)The system wide IRAF installation changed the permissions of
/tmp/
, creating a major security hole in the system (iraf-v216#23)On Linux systems, self-compiled tasks gave wrong results (iraf.net#1467841)
On modern systems, background execution did not work (iraf.net#1467431)
The original code produced errornous executables when build on Linux versions later than 2012. It also did not build from scratch, but required an already compiled IRAF version.
Simple CI test framework added
The tests are defined and documented in MarkDown files. Tests are run with Github Actions on Linux and MacOS X platforms.
VO package and vocl removed
The VO package, and the vocl shell heavily depend on a number of Java jars, where the creation from sources is undocumented. The package also uses outdated VO standards. A discussion with Mike Fitzpatrick resulted in his plan to move the VO functionality into an external package. Therefore, no attempt was put into getting these problems fixed, and the VO stuff was cut out.
Detailed list of changes
This list shows all pull requests that were merged since 2.16.1.
Since 2.17
Add a machine readable citation file (#306)
Update f2c to latest version and document local changes (#295)
Ensure
NULL
is a pointer in SPP (#292)Replace
vosproto.h
with prototypes fromxnames.h
(#284)Use
typedef
instead of#define
where applicable (#283)Protoize the remaining C code (#282)
Restructure
PFI
to be used as “generic” function pointer (#281)Fix a few small bugs in
sys$
(#280)Change a few appearances of
PKCHAR
(#279)Replace
SIGFUNC
bysighandler_t
(#278)Create useful prototypes for kernel functions (
host$os
) (#277)Fix several errors that appear when compiled with
-std=c99
(#276)Rename iraf subincludes (#275)
Don’t add empty arguments to xc argument lists (#271)
Fix keyword search in
envinit
(#270)Re-work installation process, improve user scripts (cl, mkiraf) (#268, #300, #312, #314)
Stop mkpkg execution if an error was discovered (#267, #287)
Convert make scripts (
mkpkg.sh
) to Makefiles (#266, #293, #301)Update documentation for host commands (xc, mkpkg etc.) (#265)
Directly use
xc.e
,xyacc.e
etc. from mkpkg and CL (#262)Update cfitsio to version 4.2.0 (#249)
Fix processing onf
INDEF
in the “generic” preprocessor (#238)Ensure the use of the extended image opening code (#236)
Fix a bug in the parsing of directory arguments of mkfloat (#231)
Fix off-by-one allocation error in
sgi2uhplj.c
(#207)Code cleanup in
host$
andsys$
(#223, #274, #290, #291, #294)
Since 2.16.1+2021.06.14
Consistently format doc/help examples (#195)
Fix some HTML help output glitches (#194)
Remove duplicate argument in call (#189)
Revert corruption of unix/os/net/rexec.c file (#180)
Force using POSIX shell in extpkg.cl script (#179)
Support freeBSD variants (#174)
Separate development (softools) packages (#172)
Remove obsolete tasks and links to iraf.noao.edu (#170)
Since 2.16.1+2018.11.01
Cleanup for unneeded and obsolete files (#166)
fix slalib bug in sla_EQEQX (#160)
Ignore existing iraf env var in
./install
(#157)Cleanup ecl and cl (#156)
Add macOS arm64 support (#131)
Replace hard-coded
host$bin
paths byIRAFPATH
(#128)Remove
include/drvrsmem.h
(#126)Fix cpu_time calculation in
unix/os/zgtime.c
(#118, #136, #173)Move zsvjmp assembler files to unix/os and merge them (#117)
Use PLT when calling sigsetjmp on i386 (#116)
Adjust external licenses (#115)
Definitely use flex to generate
unix/generix/lexyy.c
(#112)Avoid multiple definition of
errflag
(#111)Enable the use of Public Domain Ratfor to process
.r
files (#103, #171)Remove some C compiler warnings (#97)
Fix non-working fft841 code by replacing it (#95)
Add LAPACK license (#88)
Rename
mkfloat.sh
tomkfloat
(#87)Add support for the DEC Alpha processor (#79)
Fix and improve the shell scripts (#75, #76, #77, #85, #86, #113)
Since 2.16.1+2018.06.15
Add riscv64 support (#72)
Fix buffer length in
urlget.x
(#70)Mention Chisato Yamauchi as copyright owner of the x86_64
zsvjmp.s
code (#67)Adjust calling of nttools subdir in
pkg/utilities/mkpkg
(#65)Check for the existence of the
arch
variable before using it (#63)Improve prototyping in bootlib (#62)
Appended
ZTTYSZ()
function to get width and height of terminal (#58)Replace readline library by libedit on macos (#57)
Clean and fix shell scripts (#50, #51, #53, #54, #55, #75, #76, #77)
Fix variable declaration in noao/obsutil/src/findgain.cl (#47)
Remove unused empty files (#45)
Add manpages (#44)
Update cfitsio to 3.450 (#43)
votable: Fix data type of loop variable (#41)
Since 2.16.1+2018.03.10
Since 2.16.1+2018.02.04
(Pull Requests from iraf/iraf-v216)
Since 2.16.1+2017.12.28
(Pull Requests from iraf/iraf-v216)
Since 2.16.1
(Pull Requests from iraf/iraf-v216)
Check filepointer for
NULL
inenvinit
before trying to close. (#126)Add the required credits for the IRAF64 project. (#125)
Use
strncpy
andsnprintf
to fill file header in wtar (#124)Specify explicit format for
fprintf()
(#123)Limit number of
finfo
structs returned byKI_ZFINFO
toMAX_ARGS
(#122)Fix
isalnum()
and friends for non-ascii values (#121)Use curl in
pkgget
(#115)Fix comparison for some optional command line arguments in xc (#111)
Add a trailing
\0
to the end of variable format strings inpkg/tbtables/fitsio/
(#110)Fix OS dirnames in
README
(#108)Adjust f2c’s internal
integer
size for ILP64 (#107)Replace
d1mach.f
andr1mach.f
by C sources (#106)Handle negative pointers in
sys/nmemio
(#105)Remove all executables and binaries in
make src
(#104)[linux64] Correct underlines in
mem
symbol inzsvjmp.s
(#102)Correct string length of
baseurl
initialization inchkupdate.x
(#101)Fix segfault when opening a
STRING_FILE
(#100)Fix statement order in
vfn_expand_ldir
(#99)Fix linenumber generation with
xpp -x
(rpp and spp) (#98)Fix template expansion in
generic.c
(#94)Remove VO related packages and libraries (#93,
Initialize
oscwd
inzglobl.c
(#91)Check for identical addresses before
strcpy()
inmkpkg/tok.c
(#89)Fix type of arguments for several procedure calls (#88)
Bugfix for
unix/os/gmttolst.c
andunix/zgmtco.c
(#87)Fix location of
yaccpar.x
(#84)[macosx] Fix syntax error in
readline/mkpkg
on macosx (#83)Remove absolute paths from header (#82)
Reverse the condition when iraf should be set (#81)
[macosx] Fix MacOSX min version on
zsvjmp_i386.s
(#80)Fix lex source files in xpp and generic (#79)
[macintel] Replace
setpgrp(...)
with POSIXsetpgid()
(#78)Avoid identical src/target in
strcpy()
when creating library names in xc (#77)[linux] Consequently add
-m32
flags if compiling for linux(32) (#76)Convert to ANSI C to fix return types of functions in
memlog.c
(#75)Limit entries in bitmask to 64 bit. (#74)
Accept zero date in archives (#71)
Fix computation of offset in memory allocation at 32 bit (#67)
Fix
ADDR_TO_LOC
for i386 (32 bit) (#62)Fix declaration of
cdsmem
in rpp (#60)Force iraf to align on 128-bit boundaries (#57)
Remove
curl/types.h
includes (#51)Fixed spelling error, “the” not “teh”. (#47)
[linux64] Call the PLT for
__sigsetjmp
instead of calling directly (#45)Removed an extra
linux64
(#44)Build vendor libs before starting the
NOVOS
build (#40)Fixed recursive error in definition of
LFLAGS
(#39)Convert
mklibs
to/bin/sh
(#38)Replace or remove non-free code (Numerical Recipes etc.) (#37)
Add continious integration testing with travis-CI (#36)
Replace absolute symlinks in sys/osb by relative ones (#33)
Don’t remove sticky bit from /tmp on install (#24)
Fix setting of non-default IRAF root (#22)
Clean up sources from unnecessary code (#2, #14, #15, #16, #17, #18, #20, #25, #68, #69, #70, #113, #116, #117)