README FOR PC-IRAF VERSION 2.12 Updated Thu July 15, 2004 Current Patch Level V2.12.2-EXPORT ############################################################################## 15-Jul-2004 *** V2.12.2 Patch-2a Release 12-Feb-2004 *** V2.12.2 Patch-2 -- Slackware 4 Compatability Release 06-Feb-2004 *** V2.12.2 Patch-2 Release 13-Aug-2003 *** V2.12.1 RedHat 9 Compatability Release 15-Jul-2002 *** V2.12.1 Patch-1 Release 08-May-2002 *** Initial V2.12 EXPORT Release *** (Linux, MacOSX, FreeBSD, and Solaris x86) IRAF V2.12 is a major update to the system and requires a FULL INSTALLATION of the package, even if you have an existing V2.11 system. The Installation Guide (pciraf.ps.Z) contains a detailed description of the installation process for both first-time installations and updates to existing systems. Installation will require downloading the AS, IB, and NB distribution files from this directory. The AS distribution is common to all PC-IRAF platforms and is required for any installation. There are separate sets of binaries (the IB and NB distributions) for each PC-IRAF platform and only those binaries required for a particular platform will need to be downloaded. PC-IRAF V2.12 supports the following platforms: System Distribution Add'l Systems ------ ------------ ------------- FreeBSD 4.2 and higher FBSD MacOSX 10.1 and higher MACX RedHat Linux V6.x thru V8.x RHUX Mandrake 7.x and 8.x Slackware V8.x and V9.x LNUX/x86 Debian 2.x, all others Solaris 7 for Intel SSOL SuSE Linux V6.x thru V7.x SUSE Yellow Dog Linux V3.0 LNUX/ppc Compatability Releases ---------------------- Slackware V4.x LNUX/x86 'slack40' subdir All versions are supported with a single IRAF distribution, although you need to install separate binaries for for each platform. The IRAF distribution does not itself include graphics and image visualization tools; these are distributed separately. XGterm is required for any IRAF task which does vector graphics or which has a GUI. Any of the XImtool, SAOtng, SAOimage, and DS9 image display servers may be used for image interaction. See ftp://iraf.noao.edu/iraf/x11iraf/ for the latest X11IRAF tools (XGterm/XImtool) and /contrib for additional display servers (DS9, SAOtng, and SAOimage). See also the post-distribution notes at the end of this file. These are continually updated after the release as any problems are encountered. ############################################################################## Contents -------- 1. Introduction 1.1 The PC-IRAF V2.12 Release 1.2 Who Should Upgrade? 2. Highlights of this Release 3. Installing PC-IRAF 3.1 MacOSX Technical Notes (updated: 5/6/02) 3.1.1 External Package Support 3.1.2 The Mac OS X 'iraf' user account 3.2 Things to Watch Out For (IRAF) 3.2.1 Special Note to Fedora and RHEL Users 3.2.2 Special Note to Linux IMFORT Users 3.2.3 Linux PPC Support (*** NEW IN V2.12.2 ***) 3.2.4 Optimization Changes For MAC OS X 4. X11/GUI Support 4.1 The GUIAPPS External Package 4.2 The X11 Desktop 4.3 Things to Watch Out For (X11IRAF) 4.3.1 RedHat 8 Special Note 4.3.2 RedHat 9 Special Note 5. Magtape Interface 6. Printer Interface 7. Patch Instructions 7.1 V2.12.2 Patch Instructions 7.1 V2.12.2a Patch Instructions 8. Notes Added Since the Initial Release (updated: 8/13/03) ----------------------------------------------------------------------------- 1. INTRODUCTION ----------------------------------------------------------------------------- 1.1. THE PC-IRAF V2.12 RELEASE PC-IRAF V2.12 is a port of IRAF to PC platforms running any of a number of Linux distributions, FreeBSD, or Solaris on Intel-based systems, or MacOSX on PowerPC-based systems. Beginning with IRAF V2.11, a single version of PC-IRAF installed on a central server can simultaneously support IRAF sessions running on any combination of PC systems or servers. README This file (25 Kb) as.pcix.gen.gz All-Sources (main IRAF distribution) (31 Mb) db.fbsd.x86.gz Core system debuging libraries for FreeBSD ( 3 Mb) ib.fbsd.x86.gz Core system binaries for FreeBSD (18 Mb) ib.lnux.x86.gz Core system binaries for Linux (generic) (23 Mb) ib.macx.ppc.gz Core system binaries for MacOSX (20 Mb) ib.rhux.x86.gz Core system binaries for RedHat Linux (13 Mb) ib.ssol.x86.gz Core system binaries for Solaris x86 (14 Mb) ib.suse.x86.gz Core system binaries for SuSE Linux (15 Mb) ib.lnux.ppc.gz Core system binaries for Yellow Dog Linux (17 Mb) nb.fbsd.x86.gz NOAO package binaries for FreeBSD (22 Mb) nb.lnux.x86.gz NOAO package binaries for Linux (generic) (32 Mb) nb.macx.ppc.gz NOAO package binaries for MacOSX (26 Mb) nb.rhux.x86.gz NOAO package binaries for RedHat Linux (19 Mb) nb.ssol.x86.gz NOAO package binaries for Solaris x86 (20 Mb) nb.suse.x86.gz NOAO package binaries for SuSE Linux (19 Mb) nb.lnux.ppc.gz NOAO package binaries for Yellow Dog Linux (22 Mb) splits/* Split distribution files for the above distributions patch2a/ IRAF V2.12.2a patch release files pciraf.ps.gz PC-IRAF Installation Guide (compressed) pciraf.ms.gz PC-IRAF Installation Guide (troff source) unixsmg.ps.gz IRAF V2.12 Site Manager's Guide (compressed) unixsmg.ms.gz IRAF V2.12 Site Manager's Guide (troff source) guiapps.readme GUIAPPS installation instructions ( 7 kb) guiapps.tar.Z GUI Applications package (54 Mb) Beginning with V2.12 each of the AS, IB, and NB distribution files will be available as a single file for more convenient downloading over high-bandwidth Internet connections. For sites with slow or unreliable network connectivity where the transfer may not finish successfully, the "splits" directory contains copies of the distribution files which have been split into a number of modest size (e.g. 512KB) chunks. The Installation Guide provides detailed instructions on how to use these files to install IRAF. A complete installation requires that the user obtain the AS source distribution (in this case the 'as.pcix.gen.gz' file or the contents of 'splits/as.pcix.gen') and at least one set of IB and NB binary distribution (e.g. 'ib.rhux.x86.gz' and 'nb.rhux.x86.gz' for a RedHat Linux system, or 'ib.macx.ppc.gz' and 'nb.macx.ppc.gz' for a MacOSX system). GUIAPPS. The guiapps.tar.gz file is an OPTIONAL external package containing prototype IRAF applications with GUIs. Use of these tasks requires that XGterm be used for the IRAF session. Unlike other external packages, guiapps is being distributed with prebuilt binaries to simplify the installation - all you have to do is unpack the distribution and edit the hlib$extern.pkg file. Please see below for detailed information on this package. 1.2 WHO SHOULD UPGRADE? IRAF V2.12 is a major IRAF release for all supported IRAF platforms. Support for older versions of IRAF is limited so sites running earlier versions of IRAF should update to the new version of IRAF. There may be incompatibilities between V2.12 and earlier versions of IRAF, so updating in the middle of an analysis program might not be advisable. Mixing different versions of IRAF works in most cases, but there can be complications. Large installations may want to keep and older version of IRAF around to give users time to complete their programs before switching to the new version of IRAF (e.g. here at NOAO, "cl" or "iraf" runs V2.12, and "irafo" will bring up the older V2.11.3 release). ----------------------------------------------------------------------------- 2. HIGHLIGHTS OF THIS RELEASE ----------------------------------------------------------------------------- ************************************************************************* # See also the 'v2122revs.txt' file in the PC-IRAF distribution # # directory for additional changes in the V2.12.2 patch release. # ************************************************************************* o Pixel Mask Support Added to FITS Kernel The FITS kernel was modified to add support for storing pixel masks in FITS extensions as compressed images using the binary table extension. These masks appear as images to the system and may be accessed like any other image. Storing the pixel masks directly in a FITS MEF file makes it possible to store all the data for one observation in a single file, simplifying data management. o New Pixel Mask Tasks Several new tasks have been added to the system PROTO package for manipulating pixel masks: o MIMSTATISTICS allows image statistics to be computed while rejecting pixels specified by an input mask. o MSKEXPR task is a general-purpose mask expression evaluator similar to IMEXPR for images, but has builtin boolean region functions which can be used to set values inside or outside of certain geometric shapes. o MSKREGIONS creates an output mask based on an input text de- scription. Region descriptions can be composed of geometric shapes and logical operation on mask regions. o OBJMASKS in the NPROTO package is a new task for detecting objects in an image and creating an output catalog or pixel mask of found objects. o Shared Memory Limitations Eased The IMAGES and DAOPHOT packages executables are now linked statically to remove per-process memory limitations imposed by the IRAF shared library on Sun and Dec Alpha systems. Previously tasks such as DAOFIND and IMCOMBINE were limited to 268Mb on Sun systems, these tasks can now use up to the machine memory limits. o Image I/O Buffer Sizes Increased Image I/O performance for very large images was improved by changes to the internal buffer sizes. By default the system will now automatically adjust the size of the image buffers to optimize i/o for the size of the image being accessed. Additional control over i/o is possibly by tuning environment variables. In addition, some applications will now (memory permitting) adjust the IMIO buffers to hold the entire image in memory, where usage warrants it. o Simplified Installation Script The IRAF install script was rewritten to clarify the output, provide more extensive checking of the IRAF system setup prior to installation, and to do some of the most common post-install configuration. The script will print an explanation of any errors it finds and suggest corrective action. The hope is this will lead the user past some of the more common installation errors. In addition, the SYSINFO diagnostic script which does more extensive checking of the system is also now part of the distribution. This script can be used to verify the system once the install is complete, or to generate a report of the system configuration if needed by site support. An UNINSTALL script to remove iraf command links and files created by the INSTALL script is also available to remove IRAF from a machine. All scripts are now installed in the hlib$ directory. o New HELP GUI and Output Options The HELP task was enhanced to provide a new GUI option (XGterm is required). This is essentially the XHELP task which has been available in the GUIAPPS external package for some time, however this version of the task is fully backwards compatible with old HELP task, and text-mode output is still the default. In addition, help pages may now be output in either HTML or Postscript format for Web presentation or pretty-printing to a hardcopy device. The LROFF task was similarly modified to provide direct conversion of Lroff format text. o DISPLAY Task Changes As part of the recent X11IRAF enhancements, the DISPLAY task and others such as IMEXAMINE which interact with the display server were modified to take advantage of the new features in XImtool V1.3. These include support for up to 16 frame buffers (increased from 4 in previous versions), and enhanced real-time WCS readout capabilities. The changes are fully backwards compatible for use with older XImtool versions or display servers such as SAOimage, SAOtng, or DS9 which have not yet been updated, however the new features will not be available on these servers. X11IRAF V1.3 is being released simultaneously with IRAF V2.12. While IRAF V2.12 is fully compatible with older versions of X11IRAF, users will need to upgrade both systems to the latest versions to take full advantage of all the new features. Please see the X11IRAF Release Notes for details on what has changed. o New Packages Several new packages are available in this release (see the NOAO package change notes below for details): - A new ASTCAT package for extracting astrometric and photometric calibration data from remote or local catalogs was added to NOAO. - A new CRUTIL package for doing cosmic ray detection and removal package was installed in the IMRED package. - A new QUADRED reduction package for QUAD format data was installed in the IMRED package. This is a generalized replacement for the ARED.QUAD and XCCDRED external packages for processing CTIO and ESO FORS1 multi-amplifier data. - A new OBSUTIL package was installed in NOAO. This is a collection of tasks from various external packages which are useful to plan or carry out observations. o New Developer Libraries. Several new libraries are available for SPP developers: - PSIO is a new Postscript text generation library installed in sys$psio. - CATQUERY is a remote astrometric/photometric catalog access lib installed in the XTOOLS utility library. - SKYWCS is a sky coordinate transformation library installed in the XTOOLS utility library. ----------------------------------------------------------------------------- 3. INSTALLING PC-IRAF ----------------------------------------------------------------------------- The procedure for installing PC-IRAF is unchanged from earlier versions of PC-IRAF. Refer to the PC-IRAF Installation Guide (pciraf.ps.Z) for detailed installation instructions. A full installation, as for any major release, will be required. The installation guide contains the full installation instructions (see also the notes below) but one thing is worth emphasizing here: the installation will be simplified if you set up the iraf directories as follows: /iraf root of iraf related files /iraf/iraf root iraf directory (AS dist) /iraf/irafbin iraf bin dirs go here /iraf/irafbin/bin.redhat RedHat binaries for core system /iraf/irafbin/noao.bin.redhat RedHat binaries for noao packages /iraf/irafbin/bin.linux Linux binaries for core system /iraf/irafbin/noao.bin.linux Linux binaries for noao packages : : /iraf/extern external packages (tables etc.) Here "" is the path where all this is located, e.g., "/u3/iraf" on the IRAF development system here at NOAO. The path can be anything, although it is best to keep it short. You might want to also set up a symbolic link "/iraf" pointing to the "/iraf" directory. This allows all iraf files to be referred to relative to /iraf, regardless of where the files actually are located, and agrees with the default configuration used in the distribution files. Having such a link when IRAF is served from a central NFS system also allows all clients in the network to use a common "/iraf/iraf" root directory regardless of the NFS mount points. Graphically such a tree would look something like (for a RedHat-only system) /iraf / \ (AS) /iraf /irafbin / \ (IB) bin.redhat noao.bin.redhat (NB) The graph indicates where each of the three distribution sets should be unpacked. The "iraf root directory" in this case is /iraf/iraf, this is the value you enter to the install script. See the installation guide for details, specifically the Appendices which give a complete examples. The V2.12 PC-IRAF release supports several architectures; System Distribution Architecture ------ ------------ ------------ FreeBSD 4.2 and up FBSD freebsd MacOSX 10.2 and up MACX macosx RedHat Linux 6/7/8/9 RHUX redhat RedHat Fedora/Enterprise RHUX redhat Slackware 8/9 LNUX/x86 linux Solaris 7 for Intel SSOL sunos SuSE Linux 6 thru 9 SUSE suse Yellow Dog Linux 3.0 LNUX/ppc linuxppc A separate set of CORE and NOAO binaries is provided for each architecture. The all-sources (AS) distribution supports both architectures. The binaries which are correct for your system are identified by the "Distribution" type, however when creating the IRAF tree for unpacking the system you should create directories according to the "Architecture" name or they will not be recognized. Note that systems such as RHUX for RedHat Linux are appropriate for Mandrake Linux systems as well, almost all other linux distributions note handled by specially built IRAF binaries should probably use the LNUX system. 3.1 MACOSX TECHINICAL NOTES MacOSX is still a young system and is in many ways quite different from other systems supported by PC-IRAF. While we don't yet have a lot of experience on this system, major items will be documented here and at the end of the README file as they are discovered. Problems specific to the X11IRAF tools will be documented in it's README file and on the IRAF web pages. Users should contact IRAF site support with any questions. In addition, Marcos Huerta at Rice University (marcosh@rice.edu) has created an excellent support page for IRAF/X11IRAF on OS X systems. This page can be accessed at http://www.owlnet.rice.edu/~marcosh/iraf/ Marcos has also created package installers for both IRAF and X11IRAF to simplify the entire process. These installers are available from our archive /contrib directory or from the web page above. 3.1.1 EXTERNAL PACKAGE SUPPORT Since MacOSX and LinuxPPC are new ports, many older external packages may not yet support, or have been tested with, these platforms. In most cases however, all that will be required to use such a package with IRAF is to modify the root mkpkg file to add an entry for the "macosx" and/or "linuxppc" architecture, then building the package. Prebuilt binaries for some of the most popular external packages are already available in the extern and contrib directories in the IRAF network archive. Problems and workarounds for packages will be logged at the end of this README file as they are discovered, and in the days and weeks following the release the iraf.noao.edu archives will be updated with new versions of the packages to fix any problems. Users should contact IRAF site support with questions about support for a particular package on this platform. For the impatient, the mkpkg at the root of each external package will usually require a branch to set the architecture prior to compilation. The statements to be added (at the end of the file) will typically look something like: macosx: # install MacOSX binaries $ifnfile (bin.macosx) !mkdir bin.macosx $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh macosx -d $(DIRS) ; linuxppc: # install Linux PPC binaries $ifnfile (bin.linuxppc) !mkdir bin.linuxppc $endif $verbose off $set DIRS = "lib src" !$(hlib)/mkfloat.csh linuxppc -d $(DIRS) ; Existing entries for the package should be used as a guide; in particular the directories listed in the "$set DIRS = ...." line must be consistent for the package to be modified correctly. With this change most external packages can be built as they would on any other platform. Packages for which NOAO is responsible are available on iraf.noao.edu in the directory ftp://iraf.noao.edu/iraf/extern. Software from other sources may require you to make this change yourself prior to building the package. Where possible we will try to include binaries and updated code for packages distributed from our /contrib archive directory. 3.1.2 THE MAC OS X 'IRAF' USER ACCOUNT Under MacOSX it turns out to be difficult to change the iraf account login directory once it is created. The system wants to keep the login directory in /Users/iraf where IRAF wants it to be iraf$local (this can be fixed as root using nidump/niload, but it is not easy and could be dangerous). For the time being we are recommending that users simply create the iraf account but leave it to the install script to handle setting up links as needed so the proper environ- ment is maintained as on other systems. See the PC-IRAF Installation Guide for more information on how this part of the installation differs from other platforms. 3.2 THINGS TO WATCH OUT FOR (IRAF) Please see the release notes (iraf$doc/v212revs.hlp or just type 'news' when you first log into the system) for information on what has changed in V2.12, and things to watch out for. As with any major release we STRONGLY recommend that each user reinitialize their 'uparm' directory to pick up the numerous task and package parameter changes in this release. IRAF V2.12 does not require this if you are upgrading from V2.11, but it is still strongly recommended. The uparm directory may be reinitialized by issuing a new MKIRAF command prior to logging into the system. 3.2.1 SPECIAL NOTE TO FEDORA AND RHEL USERS Preliminary testing under Redhat Fedora and Enterprise Linux systems has revealed a potential problem with the interaction between the MEMIO interface and user resource settings. We do not yet know whether this will affect other distributions using the same newer glibc and kernel versions, or if this is a problem peculiar to Redhat. In either case the workaround will be similar and the problem will be addressed more fully in the next release. Specifically, pointers allocated in the normal course of a task may occassionally be at an address outside the user's per-process stack space, resulting in a "memory has been corrupted" or "segmentation violation" error. This problem was seen during the beta test period with IMFORT tasks and was originally thought to be a problem with the "exec-shield" feature of Fedora, but has also appeared on RHEL systems without exec-shield. The workaround is to remove the stacksize limit in the user's shell with a command such as limit stacksize unlimited # for tcsh users ulimit -s unlimited # for bash users As a preventive measure against this problem, the CL startup script was modified to implement this change and so most users who only use IRAF from the CL will not need to take any special action. This remains an issue for IMFORT tasks however, and users may need to use one of the above commands to get the tasks to run correctly. 3.2.2 SPECIAL NOTE TO LINUX IMFORT USERS In addition to the stack size problems above, platform support for this release was further complicated by changes to glibc and the 'ld' loader on some newer linux distributions, which resulted either in unresolved symbols or a segfault from the loader itself. Users would see various combinations of those problems depending on the distribution being used. To fix the unresolved symbol problem the compatability library 'libcompat.a' (found in the iraf$unix/bin.) was updated to include the missing symbols from older glibc versions and the XC compiler modified to use this library on more platforms. The loader segfault is caused by the definition of the "Mem common" symbol "mem_" at address zero in the one and only assembler routine in IRAF (all iraf pointers are relative to this address). To fix this problem it was necessary to define the symbol on the GCC command-line instead, again by modifying the XC compiler to do this automatically. These changes will be transparent to people compiling external packages, SPP sources using the XC compiler directly, or IMFORT programs using the FC command under the CL and only affect Linux platforms. However, users who build their IMFORT programs by calling the Fortran/C compiler directly with absolute paths to the needed IRAF libraries, say from a Makefile, will need to adjust their link line to include the compatability library and the extra linker argument. To summarize, an imfort program built with F77/G77, and *not* the iraf XC/FC compilers, must now be linked as something like g77 myprog.f \ -L/iraf/iraf/bin. \ <-- define iraf paths -L/iraf/iraf/unix/bin. \ <-- define iraf paths -Wl,--defsym,mem_=0 \ <-- NEW flag, fixes 'ld' segfault -lcompat \ <-- NEW flag, fixes unresolved syms -limfort -lsys -lvops -los <-- link imfort libs Users with questions or problems should contact site support. 3.2.3 LINUX PPC SUPPORT (*** NEW IN V2.12.2 ***) V2.12.2 is the first release to fully support Linux for the PPC platform as part of the PC-IRAF system. The port was done a while ago but never fully integrated into the V2.12 release until a disk failure prompted us to configure a dual-boot machine. This upgrade contains the completed port which was built using Yellow Dog Linux V3.0.1 on a PowerMac G4 733Mhz system. The port appears to be stable in our limited testing but we would be interested in working with users on this platform in finding any problems. Initial benchmarking of IRAF V2.12.2 shows that on average IRAF is roughly 30% *faster* under YDL than on the same machine running OS X 10.3.2. The exact cause of this difference is not yet fully understood, see below for benchmark results offering some interesting results. It is also not known at this time whether the binaries will work on other PPC Linux systems such as Redhat, Debian or SuSE (and support for G5 systems is even more in doubt). The system should build cleanly from source on other distributions however some tweaking may be required. If you are interested in building IRAF for a distribution other that YDL, please see the "IRAF Site Manager's Guide" for details on the complete build steps, or contact IRAF site support (iraf@noao.edu). We are grateful to Terra Soft Solutions (www.terrasoftsolution.com) and Yellow Dog Linux (www.yellowdoglinux.com) for their continued interest and support in getting IRAF ported to this platform. 3.2.4 OPTIMIZATION CHANGES FOR MAC OS X The default compiler flags for PC-IRAF systems were re-examined as part of this release with an eye towards improving performance. As part of this, the default optimization level under Mac OS X was raised to "-O3" despite providing only a relatively slight improvement in speed on the same hardware. Similar changes were investigated for Linux systems but had to be abandoned due to a (as yet untraced) compiler optimizer bug present in GCC 2.95 thru GCC 3.2 which produce incorrect results. This bug is present in both x86 and ppc linux systems, however the GCC 3.3 compiler under OS X 10.3 seems have fixed it. Sample benchmarks (including LinuxPPC for comparison) are shown below. It's important to understand that these tests provide only a very crude benchmark, but show systematic differences between the platforms tested. All tests were conducted on the same physical machine. XREGISTER Tests: A CPU intensive test using the following commands: cl> blkrep dev$pix test100.fits 4 4 cl> $xregister test100.fits test100.fits "[*,*]" test1 Results: Version Opt Flag Build OS Time ------- -------- -------- ---- (Times were about equal V2.12.1 -O OSX 10.1 1:19 for both FITS and IMH V2.12.2 -O OSX 10.3.2 1:02 image formats) V2.12.2 -O3 OSX 10.3.2 0:52 V2.12.2 -O YDL 3.0.1 0:52 BENCH script: A crude script which approximates a CCD reduction and analysis. Uses both CPU and Disk-intensive tasks to generate and operate on the images. See script at ftp://iraf.noao.edu/pub/bench.cl Results: V2.12.1/-O V2.12.2/-O V2.12.2/-O3 V2.12.2/YDL 3.0 imh fits imh fits imh fits imh fits Make 7 imgs 41 48 38 50 40 52 26 33 Proc 5 imgs 28 36 25 37 25 36 6 15 Combine 5 imgs 16 16 14 17 12 16 12 11 Median 1 img 32 32 29 33 28 32 27 17 Total time 117 133 106 137 106 137 71 77 Following the V2.12.2 release we will examine the potential gains for further tuning the OS X binaries for G5 systems. If these are found to be significant a separate set of binaries for G5 will be released. ----------------------------------------------------------------------------- 4. X11/GUI SUPPORT ----------------------------------------------------------------------------- IRAF V2.12 includes full support for the X11IRAF utilities - these include xgterm for xterm-compatible terminal emulation and graphics, and ximtool for image display under X. The X11IRAF package is not included in IRAF; you need to get it and install it separately, as you would any other X software. X11IRAF is available in /iraf/x11iraf on the main IRAF network server (iraf.noao.edu). This software is continually under development and new versions appear on a timetable independent of that for the main IRAF distribution. Note that a major new X11IRAF V1.3 release is timed to coincide with the IRAF V2.12 system. XImtool users especially should upgrade to take advantage of the many new features and bug fixes. See the README file in the /iraf/x11iraf archive directory and the X11IRAF V1.3 release notes for details on what has changed. Other IRAF-compatible GUIs can also be used with IRAF, e.g. DS9, SAOtng, and SAOimage. This software is available from the archive /contrib directory as a convenience but may not always be the most recent release. 4.1 THE GUIAPPS EXTERNAL PACKAGE Some time ago we started a project to develop prototype IRAF applications with integral GUIs (graphical user interfaces). These applications have since served their purpose in prototyping new technology for science GUIs and component-based applications in IRAF. The GUI applications are much more than just technology prototypes however: these are very useful science applications with many new features, with a nice graphical user interface to boot. With the release of IRAF V2.11.3 and X11IRAF V1.2 several years ago, it became possible to wrap up work on the GUI prototypes and get them out for people to use. The prototype GUI applications are contained in the package GUIAPPS available from the /iraf/extern directory of the IRAF archive, and contain the following tasks: demo - GUI Demo Task spt - SPECTOOL Package xhelp - GUI Help Browser Task xrv - GUI Version of the RV Package xapphot - GUI Aperture Photometry Package Note that with V2.12 the XHELP task is included as part of the core system as a special device type (e.g. "help implot dev=gui" will run HELP as a GUI task). The GUI tasks require that the user be running an XGterm graphics window (from X11IRAF) in order to display the GUI: Xterm users WILL NOT be able to use the GUIs presently. To install the package users should download the 'guiapps.tar.Z' file from the IRAF archive directory and uncompress/untar it in the local external package directory (typically /iraf/extern). Detailed installation inst- ructions are 'guiapps.readme' file in the same directory. More information of the GUIAPPS package is available from the project page at http://iraf.noao.edu/iraf/web/projects/guiapps/. 4.2 THE X11 DESKTOP The X11IRAF utilities will run under any X desktop. Most people will probably use Sun's CDE or OpenWindows desktops, but Motif/mwm, twm, fvwm, and so on may be used as well. As of the time of this writing, the X11IRAF utilities do not run on 24 bit truecolor screens, only 8 bit pseudocolor. Support for 24 bit screens is planned. New users of X11 who are not sure how to configure the window system might want to look at the .Xdefaults, .xinitrc, .openwin-menu, etc. files in the IRAF system manager login directory ($iraf/local, or ~iraf). These files will set up a working IRAF desktop under OpenWindows and should serve as an example or starting point for an IRAF desktop under OpenWindows. Logging in as "iraf" and then typing "win" or "openwin" will start up the windows. 4.3 THINGS TO WATCH OUT FOR (X11IRAF) Please see the documentation included with X11IRAF V1.2 or later releases for information on running these utilities, including common problems and how to deal with them. One thing we would like to emphasize here is that we STRONGLY suggest that you use "xgterm", not the standard "xterm" to run IRAF. XGterm, which is included in X11IRAF, has advanced graphics capabilities developed for use with IRAF. Xterm graphics work, but not terribly well. When you start up the cl in an xgterm window, type "stty xgterm" after the CL starts up to tell it you are using an xgterm window. The default terminal type may be set with the MKIRAF command to make the change more permanent. 4.3.1 REDHAT 8/9 SPECIAL NOTE X11IRAF users on RedHat 8 system are likely to encounter two known problems when using the current binary distribution: The first is an error when start- ing xgterm such as % xgterm xgterm: error while loading shared libraries: libncurses.so.4: cannot open shared object file: No such file or directory This is a known problem with how the binary was built and RH7/8 systems. The simplest solution is to just create a symlink to satisfy the dependency, i.e. as 'root' do # cd /usr/lib # ln -s libncurses.so.5 libncurses.so.4 Alternatively you could recompile the system from the sources and you should then be able to run xgterm normally. Additionally, you may encounter another problem starting xgterm under RH8 caused by the xgterm trying to write a /var/run/utmp entry without the proper permissions, this causes the window to appear briefly and then shut down. The workaround is to either start it as "xgterm -ut" to disable this utmp entry, or else change the permissions on the binary as root using # chown root:root xgterm # chmod g+s xgterm This will make the binary setgid root and should give it the proper permissions to write a utmp entry. The reason 'xterm' doesn't require this is that it's linked against a special library which calls a different setgid root task to create the same entry. ----------------------------------------------------------------------------- 5. MAGTAPE INTERFACE ----------------------------------------------------------------------------- The DEV directory contains default template tapecap files for Linux (i.e. dev$tapecap.linux), Freebsd (dev$tapecap.freebsd), and Solaris x86 (dev$tapecap.sunos). There is presently no tape support for MacOSX, as we don't have a tape drive on any of our test machines. If a server is configured to run IRAF for multiple network clients, you can now have multiple tapecap files, one for each host, e.g. "tapecap.foobar" for host "foobar". If a node-specific tapecap file is not found the fallback will be to use the 'dev$tapecap' file. Users should copy one of the template tapecap files provided to the fallback dev$tapecap file to take advantage of several common predefined tape device entries, however the new install script in V2.12 will do this automatically if you proceed with the post-install configuration. See the release notes for further information on this capability, and the IRAF Site Manager's Guide for more information on configuring tape devices. ----------------------------------------------------------------------------- 6. PRINTER INTERFACE ----------------------------------------------------------------------------- Local printers are interfaced to IRAF using the dev$graphcap (for hardcopy graphics) and dev$termcap (for text output) files. The default printer, defined by the "printer" environment variable for text and 'stdplot' for graphics in hlib$zzsetenv.def, is "lp". This uses the host system lpr with no explicit printer name given, allowing the host environment variable PRINTER to be defined in ther user's environment to direct out to the actual printer. These files may need to be customized to support the printers in use at your site. See the IRAF Site Manager's Guide for detailed instructions on configuration the printer interface. ----------------------------------------------------------------------------- 7. PATCH INSTRUCTIONS ----------------------------------------------------------------------------- 7.1 PC-IRAF V2.12.2 - Fri February 6, 2004 The PC-IRAF distribution files have been fully regenerated for V2.12.2, so one way to upgrade IRAF to V2.12.2 is to do a full install and diff/merge selected locally customized files from DEV (tapecap, graphcap, imtoolrc, devices.hlp, etc.) and HLIB (extern.pkg, mkiraf.csh, login.cl, zzsetenv.def). If you have an existing PC-IRAF V2.12 installation you have the option of installing the patch file. Note that THE V2.12.1 PATCH WILL OVERWRITE CERTAIN SITE SPECIFIC FILES. These are the following: unix/hlib/extern.pkg unix/hlib/zzsetenv.def dev/graphcap dev/termcap dev/imtoolrc dev/hosts You may want to save copies of these files and diff/merge them with the new versions after installing the patch. To install the patch, login as the iraf system manager, go to the $iraf directory, and untar the patch as follows: % cd $iraf % cat patch2.tar.Z | uncompress | tar -xpvf - or % tar -zxpvf patch2.tar.gz Then diff/merge the files listed above. Next, go to the archives and download and install the IB (IRAF core system) and NB (NOAO package) binaries for the architectures your installation will support. For example, to install IB.RHUX.X86 (the RedHat Linux binaries for the core system, with the IB.RHUX.X86 distribution downloaded to the directory "/ib.rhux.x86" (where is where you created this directory): % cd $iraf/bin.redhat % pwd /iraf/irafbin/bin.redhat # (you should be here, or somewhere similar) % cat /ib.rhux.x86.gz | zcat | tar -xpvf - A similar procedure is followed to install each of the other binaries. See the URL http://iraf.noao.edu/v212/v212-patch2.html for a detailed desc- ription of what is included in the patch. 7.2 PC-IRAF V2.12.2a - Thu July 15, 2004 Details of the V2.12.2a patch release may be found in the file ftp://iraf.noao.edu/iraf/v212/PCIX/patch2a/README Note that V2.12.2a is limited to only a few platforms for PC-IRAF, users should consult the README before upgrading for system requirements and recommendations about whether to upgrade. This is largely a development release. ----------------------------------------------------------------------------- 8. NOTES ADDED SINCE THE LAST RELEASE. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- Install Script Bug -- Sun/IRAF tapecap configuration (10 May 2002) Two small typos were found in the new install script during the post-install configuration of the tapecap files: o The first is simply a typo in the output message where it refers to 'tapecap.sunos' rather than 'tapecap.solaris' when the script is run on Solaris systems. This is harmless since the links are in fact created with respect to the proper file when executed. o The second problem is another small typo in a variable name that would prevent an existing tapecap file from being properly deleted, the script next tries to create a symlink of the same name resulting in an error message. Both problems have been fixed and a new version of the install script is available from: ftp://iraf.noao.edu/pub/install ----------------------------------------------------------------------------- IRAF V2.12 Install Script Bug -- "Badly formed number" Error on Sun/IRAF (15 May 2002) The post-install configuration of the tapecap files can sometimes fail on Sun/IRAF systems with a "Badly formed number" error similar to: : Create a default tapecap file? (yes): Creating default file 'tapecap.foobar' from tapecap.sunos... if: Badly formed number The cause is a check for a tapecap being a symbolic link using the "-l" csh directive which isn't portable, the solution is to simply use a "-e" to check for the existance of the file/link. Both problems have been fixed and a new version of the install script is available from: ftp://iraf.noao.edu/pub/install ----------------------------------------------------------------------------- IRAF V2.12 Install Script Bug -- More syntax errors (17 May 2002) Several more problems have been reported with the new install script on Mac OS X and Sun systems: o On some Mac OS X systems there is no /usr/include directory where the Developer's Tools haven't been installed. The script was modified to check for the existance of this directory and create it if needed. o The install script uses the C-shell builtin 'which' command in some cases to determine when commands might exist on the system. The script however was assuming that this command would fail with a "command not found" message but on some systems the error would be "no cmd found in ....". The script was modified to handle either case. Both problems have been fixed and a new version of the install script is available from: ftp://iraf.noao.edu/pub/install ----------------------------------------------------------------------------- IRAF V2.12 Install Script Bug -- More changes (24 May 2002) On some systems the detection of an 'iraf' user account may fail since it relies either on the 'id' command or an entry in the local /etc/passwd file. An iraf user account may exist under DNS but still not show up in the install script. The verification was changed from a fatal error to a warning to allow the installation to proceed. This problem has been fixed and a new version of the install script is available from: ftp://iraf.noao.edu/pub/install ----------------------------------------------------------------------------- IRAF V2.12 Install Script Bug -- More changes (28 May 2002) In some user environments the "which" command may not be the shell-builtin command but and Open Source application. When this application fails to find the command the message is written to the stderr stream which was not properly being checked in all cases, usually resulting in a "syntax error". This problem has been fixed and a new version of the install script is available from: ftp://iraf.noao.edu/pub/install ----------------------------------------------------------------------------- IRAF V2.12.1 PHOTCAL -- FITPARAMS task not finding catalogs (20 July 2002) The FITPARAMS task may fail to find catalogs due to a invalid 'catdir' package parameter introduced in the V2.12.1 update. This problems affects all systems. This can be fixed at the user level by resetting the PHOTCAL package parameters to the correct value (before loading the PHOTCAL package), i.e. cl> photcal.catdir = "photcal$catalogs/" Site managers can make the fix system-wide by editing the file iraf$noao/digiphot/photcal/photcal.par to change the default value for the 'catdir' parameter to remove the 'x' from 'photcalx'. ----------------------------------------------------------------------------- IRAF V2.12.1 RedHat 9 -- Binary incompatability (13 August 2003) RedHat 9.0 introduced the GLIBC 2.3 library which is not bacwards binary compatible with earlier releases using the system functions such as toupper(), tolower(), etc. These routines are used in the IRAF HSI (i.e. libos.a and libboot.a) and so users building software against V2.12.1 will see linking failures such as /iraf/iraf/unix/bin.redhat/libos.a(zfioks.o)(.text+0x19): In function `zopnks_': undefined reference to `__ctype_b' when compiling external packages or local tasks. The only workaround is to use a version of the IRAF system compiled entirely under RH9 (however we are investigating other solutions for the next patch to avoid having two binary systems). The "redhat9" subdirectory here contains such a system and should be used when installing from scratch on a RH9 platform. Note this is exactly the same V2.12.1 system as before so there is no need to upgrade your IRAF unless you are 1) on a RH9 platform and 2) need to build IRAF software. The directory contains only the AS, IB and NB distribution files, installation of these files is the same as before. In addition, HSI binaries (e.g. RTAR/WTAR, hardcopy SGI graphics translators, etc) have been known to fail on RH9 systems due to a similar incompatability. If you need to update your system only to fix this problem, use the file hs.rhux.x86.gz to replace your existing $iraf/unix/bin.redhat directory contents. It is not necessary to upgrade your entire IRAF system with this release, simply installing the 'hs.rhux.x86.gz' system by uncompressing and untarring in your $iraf/unix/bin.redhat directory is sufficient to fix both compatability problems. Please contact iraf@noao.edu if you have questions or problems. ----------------------------------------------------------------------------- IRAF V2.12.2 Slackware 4 -- Binary incompatability (12 February 2004) The 'slack40' subdirectory contains the IRAF V2.12.2 system built for Slackware 4.0 and similar systems. Due to numerous system differences it was not possible to build a single binary for Slackware that would run on V4.0 thru the latest (V9.1 at this writing) release, and so official support for Slackware 4 was dropped. If you still have one of these systems and require IRAF V2.12.2, these binaries should be used instead. To use this release: 1) Install the 'as.pcix.gen.gz' file (AS distribution) as usual. This file is found in the parent directory. 2) Overlay the hs.lnux.x86.gz file from this directory on the source distribution by unpacking from the $iraf root directory. 3) Install the IB and NB distributions from this directory. Then proceed with the rest of the installation as usual. Please contact iraf@noao.edu with questions.