=============================================================================== *********************************** **** IRAF Version 2.16 Release **** *********************************** ** Mar 22, 2012 - V2.16 for PCIX (Source/OSX/Linux, 32 and 64-bit) ================================================================================ This directory and its subdirectories contains the network version of the full IRAF V2.16EXPORT distribution. README This file README.VO Detailed Virtual Observatory User Notes (in prep) PORT.GUIDE 64-bit IRAF Software Porting Guide COPYRIGHTS Copyright information for this software bugs.log System buglog (known bugs to date) help.log System helplog (user tips to date) v216revs.txt V2.16 revisions summary, text version sysnotes.v216 V2.16 detailed system revisons notes v216-announce.txt V2.16 release announcement PCIX PC-IRAF distribution - Linux/OSX 32- and 64-bit PORT Source and binary distributions used for porting to new platforms See below for information on what it is contained (and what isn't), how to upgrade/install this release, who should install it, and what to look for in terms of potential problems. Questions or problem should be directed to the IRAF user-support forums at http://iraf.net. Contents: --------- 1) What is the IRAF V2.16 Release 2) Who Should Install - Distribution file and patch releases 3) How to Install This Release - I am installing for the First Time - I am replacing an existing IRAF installation - I am installing multiple IRAF versions - I want to build the IRAF system from source - I want to install IRAF to support multiple platforms 3.1) Upgrading External Packages 3.2) Mixed 64-bit IRAF and 32-bit External Packages 3.3) System Requirements and Dependencies 4) Dynamic Loading of External Packages 5) Mixed 64-bit IRAF and 32-bit External Packages 6) Known Problems 7) V2.16 Release Modification History ================================================================================ ---------------------------------- 1) What is the IRAF V2.16 Release ---------------------------------- IRAF V2.16 is a major release of the IRAF system for all supported Linux and OSX platforms. The main feature of this release is the integration of Virtual Observatory data, services and protocols with IRAF tasks. What it contains, and What is still missing ------------------------------------------- V2.16 is a cumulative patch of all applications and system interfaces since the last release, as well as a port of IRAF to 64-bit platforms. In short, this release contains o IRAF V2.16 for the following architectures: linux All 32-bit linux systems linux64 All 64-bit linux systems macintel 64-bit Mac OSX (10.6, Intel only) systems macosx 32-bit Mac OSX (10.4+) Intel and PPC systems Cygwin, FreeBSD and Solaris x86 updates to v2.16 are pending and subject to the interest in these platforms in the community. There are also a number of new features that have changed the system significantly enough to warrant a major release. Specifically, o 64-bit Bug Fixes o "Free" Licenses o A new VO-CL o VO Package o Enhance @-file Capabilities o System File Cache o URL Support by all tasks o VOTable Support by all tasks o SAMP Support by all tasks o URLGET Task (New!) o FCACHE Task (New!) o Simplified Download/Install Process o Simplified External Package Installation o Improved Documentation o Numerous bug fixes and minor enhancements A more detailed description of these changes can be found in the v216revs.txt file in the distribution directory, and the README.VO file in preparation. When reporting a bug or problem, please be sure to indicate the platform used and supply whatever information (parameters or data) is necessary to reproduce the problem. If you are reporting a problem with a Virtual Observatory data service, please also indicate which service and what task was used to access it. ---------------------- 2) Who Should Install ---------------------- IRAF v2.16 is RECOMMENDED FOR ALL USERS. Although the VO features are optional, v2.16 contains a number of important bug fixes (especially for those on 64-bit platforms). In addition, v2.16 contains a number of new capabilities affecting all tasks in the system: o Enhanced @-file templates o New VO-CL Command Language o URL Support in all tasks o VOTable Support in all tasks o SAMP interoperability o New VO External Package o Removal of all license restrictions These are described in more detail in the distribution README file. Detailed release notes are available in the release README file and are included below. Detailed descriptions of the VO capabilities and a quick-start guide are in preparation and will be available shortly. Distribution Files and Patch Releases ------------------------------------- The main IRAF distribution files are build for the latest release of the system (at this writing, v2.16) meaning that new users will always be instaling the most current release. Patch files will be built as a cumulative patch to the initial release, meaning that e.g. the 'patch1' release file applies the v2.16.1 patch to the original IRAF v2.16 release. Patch files include source code changes as well as needed binaries for the patch. Because bugs in or changes to the new core system capabilities will require a complete set of binaries, installation of patches has now been automated using a mechanism similar to what's done for external packages. At this writing, there are no patches available, however the installation of future patches will be a matter of simply: % cd $iraf # go to the iraf root dir % make latest # download and install latest patch Additional targets in the toplevel Makefile include: make latest Update entire system (core + extpkgs) make latest_src Update only source code make latest_core Update only the core iraf system make check_latest Check is system is latest released version ------------------------------- 3) How to Install This Release ------------------------------- To install this release, you should download the binary distribution file appropriate for your machine (either linux or osx) and then identify yourself as one of the following users and follow the steps described: - I am installing for the First Time: 1) Create an 'iraf' directory (preferrably /iraf/iraf) and unpack the distribution file for your platform there. 2) Define $iraf in your environment (with a trailing '/') 3) Run the $iraf/unix/hlib/install script to install the system - I am replacing an existing IRAF installation: 1) Save any local configuration file (graphcap, extern.pkg, etc) of the existing IRAF installation to a separate directory 2) Delete the existing IRAF tree 3) Unpack the distribution in the existing iraf root directory 4) Replace/merge local configuration files - I am installing multiple IRAF versions: 1) Create a new 'iraf' root directory and unpack the distribution file for the host platform 2) Define $iraf in your environment to be the full path to the IRAF system you wish to be the system-wide default. If this is the existing iraf installation you can skip this step, to make the v2.15 the default you'll redefine $iraf and run the install script 3) Set $iraf and $IRAFARCH in your environment as appropriate for the desired version before running the 'cl' command or compiling software - I want to build the IRAF system from source: 1) Download the iraf-src.tar.gz (or as.pcix.gen.gz) source-only distribution file 2) Create a new iraf root directory and unpack the distro 3) Define $iraf, $IRAFARCH in your environment and source the $iraf/unix/hlib/irafuser.csh script. Note a C-shell is required for this step 4) Run the $iraf/unix/hlib/install script to install the system 5) Configure the directory tree for the proper architecture and compile, e.g. on a 64-bit linux system: % cd /iraf/iraf % setenv iraf /iraf/iraf/ <-- trailing '/' required % setenv IRAFARCH linux64 <-- set system architecture % source $iraf/unix/hlib/irafuser.csh % make linux64 <-- reset system % make sysgen <-- compile from source In future versions this process will be made more robust and automatic, the above steps should compile the complete system. - I want to install IRAF to support multiple platforms: IRAF v2.16 now requires several third-party libraries in order build properly. While the sources for these are included in the iraf$vendor directory, their specific build procedures haven't yet been fully integrated into the IRAF build system (especially for 32-bit universal OSX binaries). At this time we request that users interested in building completely from source contact http://iraf.net We recommend if possible that a dedicated machine be used for testing to avoid possible confusion with a multi-version system. Note that while environment variables can typically be used to control which version of IRAF is started, these same environment variables when defined in startup files such as .login or .cshrc can cause confusion when building software. 3.1) Upgrading External Packages -------------------------------- External packages available under v2.15 will continue to be available using the same installation procedures. New binaries for these packages are required so that the new core capabilities will be available to external tasks as well. However, only those packages that were previously updated to support v2.15 can be linked against the v2.16 libraries. This means that packages such as STSDAS/TABLES and other third-party packages that remain 32-bit only are unchanged. These packages can continue to be installed using the external package 'make' mechanism, but will not have VO capabilities. 3.2) Mixed 64-bit IRAF and 32-bit External Packages --------------------------------------------------- On 64-bit systems it is possible to still use 32-bit external package binaries (e.g. for packages that haven't been updated yet), however care must be taken to match the architecture names. For example, on Linux systems the arch name is 'linux64' and this will be used to find binaries in external packages as well. For packages such as STSDAS where no 'bin.linux64' binaries are available, you can simply use the 32-bit binaries by making a 'bin.linux64' symlink that points to the 'bin.linux' directory. 3.3) System Requirements and Dependencies ----------------------------------------- Support for VO data queries is provided by the VOClient interface which relies on a background Java process to execute the queries and web-service calls. Although this process is started transparently by the applications which need it, Java 1.5 or greater must be available on the machine. Additionally, the distributed ECL and VOCL binaries are built dynamically and assume the CURSES libraries are installed. This library is available by default on OSX systems but is often an optional installation for many Linux distributions. Details about exactly which package file is required depend on the distribution being used, however it is typically named NCURSES (or perhaps TERMCAP on some older distributions). Statically-linked binaries for ECL and VOCL can be provided upon request. ---------------------------------------- 4) Dynamic Loading of External Packages ---------------------------------------- Dynamic package loading is a feature introduced in v2.15 that allows for package directories created in the iraf$extern directory to be automatically defined when the CL is started. The means that external package installation no longer *requires* that the hlib$extern.pkg file be edited to define the package, although that remains an option for packages which somehow cannot conform to this new scheme. Getting Started --------------- The IRAF v2.16 system is shipped with no defined external packages, instead we assume packages will be installed using this new feature. To begin, simply execute the 'configure' script in this directory to create the files needed. For example, % ./configure This will create a local 'manifest' file of packages available form the IRAF reposistory and iraf.noao.edu and skeleton directories of available packages will be created automatically along with a Makefile used to do the actual installation. THIS STEP IS REQUIRED BEFORE PACKAGE INSTALLATION! To get a listing of packages that can be installed, or to check which installed packages might need to be updated or are newly available, use the command: % make check Each listed package may then be installed using a simple 'make' command. For packages not on the list, a manual install is still required. The external package tree may be initialize to the distribution state using the command: % make init Updates to the distribution mechanism itself is done using the command: % make self_update This last command is used to update the system to new features or bug fixes that might be available as the mechanism evolves. Installing and Updating Packages -------------------------------- External packages may now be installed with a command such as: % make ctio mscred stsdas Note that dependency packages for each requested package will automatically be added to the installation so you do not need to necessarily list every package (e.g. you'll get FITSUTIL automatically by installing MSCRED). The next time you login to the CL the requested package will be defined. To update packages to the latest version, use the command % make update The information about available packages will be updated, then a comparison of the timestamps of your installed packages with those on the repository will be made. If newer package versions are available they will be updated (along with their depencies) automatically. If a binary repository distribution of a package is not available at the moment, a 'source only' distribution will be installed and you will not a "[SOURCE ONLY]' status from the make command. The user is then responsible for compiling th epackages locally even though the package will still be defined for use (but unusable). Our goal is to provide a binary distribution for all available packages we can reasonably support. How it Works ------------ This scheme relies on IRAF v2.16 changes to the CL login process to scan this directory for packages, as well as a server-side respository of distribution files suited for this method (see below). The 'configure' script customizes the package information for your platform and creates a 'Makefile' based on that information. Subsequent commands update these files, however we don't yet provide an automated system for multi-platform support. The bulk of the work is done using utility scripts found in the iraf@util directory and called from the makefile. The management of the repository files is the rsponsibility of the distribution maintainers (by default this is NOAO). Please contact us if you wish to have your package added to the system. Repositories ------------ The default package repository is defined in the $iraf/util/pkgrepo script and may be changed to point to a local respository (e.g. a mirror site). It may also be changed by pointing the 'IRAF_REPO' environment variable to a new URI source, e.g. setenv IRAF_REPO "ftp://localhost/myrepository" Of course, a network connection is assumed to exist. Local repositories may be preferred for faster local access via mirrors, please contact us for information on creating one. Server-Side Repository Description ================================== [The following comes from the README file on the repository] This is the IRAF v2.16 distribution repository directory. Files here are bundled so as to allow them to operate with the dynamic package mechanism or IRAF install procedurs for v2.16. Aside from the repository files themselves, this directory contains README This file REPO.DESC A description of each package MK Utility script to update repo checksum/manifest CHECKSUM Checksums files on repo tarballs created by MK REPO.MANIFEST Manifest file The MK script is used to generate the CHECKSUMS file and REPO.MANIFEST file automatically, it should be run whenever a package is installed or updated. The REPO.DESC file is a handcrafted description of the available package, this is important to describing the dependencies of each package. The MK script is also capable of determining which of the available packages may be used on which platform. For example, a "redhat" package will suffice for both a linux64 and linux IRAF system if there is no specific version available. The manifest file created will then list the redhat version as the file to be installed for the linux/linux64 platforms. If a binary distribution for a particular package is not provided, the MK script will default to use the source distribution tarball (if available). On the receiving end the user will then have the option of compiling the package locally. The reserved name "universal" is used for script-only packages, or distributions containing binaries for all supported platforms. When packages are installed in the IRAF dynamic package tree, both the REPO.MANIFEST and REPO.DESC files are downloaded. Scripts use these files to build up package lists that are available for a particular platform, as well as which packages are required to be installed to support the requested package. We assume the REPO.DESC file lists full dependencies, e.g. if A requires B, and B requires C the the dependency list for A is both B and C. The convention for file names is as follows: -.tar.gz where is the package name and is the iraf architecture. For external packages, tarfiles are build at the toplevel, i.e. when unpacked, a subdirectory of the package is created in th current directory. For IRAF distributions we violate this rule and assume the tarball is built from the $iraf root directory. When installing a new package, the REPO.DESC file should be edited and the MK script should be run. When installing an update to an existing repo package, or a new architecture version of a package, the MK script should be re-run. ------------------------------------------------- 5) Mixed 64-bit IRAF and 32-bit External Packages ------------------------------------------------- V2.16 is very forgiving in the way that is allows multiple architectures to be used. For example, where the core system might be 'linux64', external packages containing only the 'linux' or older 'redhat' bin directories will be used automatically when a native binary cannot be found. The same is true for mixing the macintel andmacosx architectures. In some cases, external packages can/will not be ported to 64-bit systems or otherwise updated with a new release, v2.16 is designed to allow these older packages automatically to continue to be used whenever possible. ------------------ 6) Known Problems ------------------ There are no known problems with the initial release of v2.16. ------------------------------------- 7) V2.16 Release Modification History ------------------------------------- Mar 22, 2012 Initial IRAF v2.16 release