1. Introduction
This document covers the steps needed to update from FS9 to 10.0.0 (now patched as 10.0.1). The changes in the FS and drudg for 10.0.0 are covered in the separate Changes from FS9 document.
This update is intended for all stations using FS9, both the main, non-VGOS, branch (latest version 9.13.2) and the VGOS branch (latest versions 9.12.10-9.12.13).
It has been tested for several configurations but not all possible ones. You should test it carefully before using it for operations. Please email Ed if you encounter problems so that we can resolve them.
Installing the new version as an update is fairly simple but has several steps, see the Upgrading from an FS9 version section below. This update has more steps than usual due to the unification of the main and VGOS branches as well as several loose ends being cleaned-up.
The most significant changes in 10.0.0 are:
-
One unified version for all FS users.
Both non-VGOS and VGOS operations are supported by the new version. Previous installations of the main (non-VGOS) branch will need to have some new local control files added.
The most significant change for users is that previous main branch users will find that in the new FS input is case sensitive, as it was already in the VGOS branch.
CautionWhile it is possible to have different SNAP commands or procedures with names that differ only in case, it is strongly discouraged. In the future, case insensitivity may be introduced for command and procedure names. -
Support for use on both 32- and 64-bit systems.
The new version should run on 32-bit systems that currently support the FS as well as on 64-bit systems. We have verified it will run on 32-bit systems as far back as FSL8. We have not yet tested it on even older systems, such as FSL7.
There are also instructions for transitioning to a 64-bit system, which may require some relatively simple changes to station software. See the Converting to a 64-bit System document for more details. Also see the TIP in the Upgrading from an FS9 version section below.
A new FS Linux distribution, FSL10 (based on Debian Stretch), is now available for 64-bit (and 32-bit) use. We recommend using this distribution if you would like to move to using a 64-bit OS or need a 32-bit OS that is still under support (the base Debian distribution, Wheezy, used for FSL9, and those for older FSLx versions, are no longer under support). This also may be an alternative for users with distributions (such as FSL7) that may be too old to support the current FS. Installation instructions for FSL10 can be found at https://nvi-inc.github.io/fsl10.
-
Version control with git.
The FS source is now managed using git and github is used for distribution. The source code is now under the GPL3 license.
The details of the model used for FS releases under git are described in the Release Model document.
We expect updates in the future to require fewer steps, typically less than in FS9 updates. This is in part due to the fact that distributing the FS via github will make it easier to have smaller incremental updates instead of having to collect lots of changes for infrequent updates.
This change increases the importance of not modifying the /usr2/fs directory tree since such changes will make it more difficult to simply
pull
updates to install bug fixes and new features. -
The FS display server is now recommended for normal use.
Please see the separate Changes from FS9 document for the full details of changes since FS9.
The release of 10.0.0 would not have been possible without the many and large contributions of Dave Horsley (UTAS, Australia and NVI/GSFC). These contributions include, but are not limited to:
-
Making the FS 32- and 64-bit compatible
-
Placing the FS under git version control
-
Importing the existent archive of FS versions into git
-
Merging the main and VGOS branches of FS9
Dave single-handedly imported the entire existent history of FS source code into git. This includes over 130 FS9 versions (under Linux), 17 FS8 versions (under VENIX), and two older versions (under HP RTE-1000/A) going back to version 5.5 in 1988. Having the source code in git greatly simplified the task of merging the main and VGOS branches. Dave also did the most critical work on that and provided excellent guidance on using git. Having the historical code in git is a great resource for understanding its evolution.
An essential contribution was also made by Tetsuro Kondo (NICT, Japan and SHAO, China). Kondo-san pioneered 64-bit support in the FS with his 64-bit implementations for the Sejong and Ishioka stations. Dave built on his work in developing a version that would support both 32- and 64-bit systems.
As always, we are deeply indebted to Jonathan Quick (HartRAO, South Africa) for his many significant contributions that go far beyond what is explicitly mentioned here. For this particular release, his contributions include testing and insights for adapting the code for 64-bit use, patiently solving various problems, identifying and fixing issues with the new version on FSL8, developing FSL10, making many helpful suggestions for changes, testing, and providing feedback.
We also thank Beppe Maccaferri (Medicina, Italy) for being a diligent beta tester, reporting bugs, helping test several fixes, and making helpful suggestions for changes.
We would also like to thank Eskil Varenius (Onsala, Sweden) for bug reports and feedback, particularly on DBBC3 related issues.
2. Other useful documents
This section provides links to some other useful documents.
2.1. Other update documents
2.2. Miscellaneous documents
-
Known Bugs document with the known bugs list from FS9.
-
Installation Reference document with other useful install information is available. It includes nine sections:
If you haven’t upgraded or installed the FS before, you may want to review the appendix. It is strongly recommended that you back-up your operational system before upgrading.
3. Upgrading from an FS9 version
Caution
|
This release of the FS may not build on older Linux distributions, such as FSL7 (Etch). If you do try it on a FSL7 or an earlier distribution please email Ed with your experience. If it doesn’t work we will try to help resolve any issues. |
This section covers upgrading from FS9, which was always 32-bit only, to 10.0.0. It is assumed you are upgrading on a 32-bit system. There are two possible paths for upgrading:
-
Upgrading from a main branch version. The main branch versions are numbered 9.13.<x> and 9.11.<x> or older. Specifically, versions 9.12.<x> are not part of the main branch. If you are upgrading from a main branch version, it is assumed that upgrade is from 9.13.2, the previous stable release. If you have a main branch version older than version 9.13.2 you should upgrade to 9.13.2 first, please refer to the Upgrading from FS versions before the previous stable section in the Installation Reference document for more information.
-
Upgrading from a VGOS branch version. The VGOS branch versions are numbered 9.12.<x>. The instructions provided in this section are for installing as an upgrade to versions 9.12.10-9.12.13, the latest VGOS branch releases. As far as we know, no other VGOS versions are in use. If you have a different version, please email Ed for more information.
The differences in upgrading the main branch and the VGOS branch are almost entirely in the Update control files step below. To upgrade from FS9 to FS10 on a 32-bit system, please follow the steps below.
Tip
|
It is also possible to upgrade as a new installation on a 64-bit system. Doing so will allow you to upgrade to 10.0.0 and 64-bit without disturbing your operational 32-bit system. However, the upgrade may be more involved because it may require additional changes and testing for your station software. The instructions for combining the FS and 64-bit upgrade are:
|
3.1. Back-up your operational system
Having a back-up to return to will allow you to continue operations in case something goes wrong with the installation. For more details, please see the Making a back-up before installing section in the Installation Reference document.
Note
|
If you are using FSL10 with a RAID, that sub-section points you to the improved backup and test procedure that is available with that distribution. |
Note
|
That section also includes a description of how to preserve your operational files and switch back and forth between an operational and a test set-up by changing symbolic links. |
3.2. Login as root
Login as root.
3.3. Download the FS
Place a copy of the FS git repository in the /usr2 directory on your computer. For example, you might do the following:
cd /usr2 git clone https://github.com/nvi-inc/fs.git fs-git
or alternatively, if you are using FSL8 or other old Linux distribution, or otherwise need to use ssh instead:
cd /usr2 git clone git@github.com:nvi-inc/fs fs-git
Tip
|
Using ssh requires you to have a github account and for you to add an SSH public key from your machine’s root account to your github account. For more information, go to https://github.com/join and https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account.
|
Tip
|
If you don’t have git, you may be able to install it. Some older Linux distributions, e.g., FSL8, have the git package available under a different name, git-core. To install git, we recommend trying to install the git-core package first. In older Debian-based distributions this should install the required package instead of another package that was named git in those distributions (Gnu IT). If you don’t see anything named git-core, then try installing git instead. If you are unable to install git (or git-core), you can install the FS from an archive. Please follow these directions:
|
3.4. Checkout the release
Checkout the 10.0.1 release from the local repository:
cd fs-git git checkout -q 10.0.1
Note
|
The use of 10.0.1 is not a typo. That is the latest patch
release for 10.0.
|
3.5. Set the /usr2/fs link
Set the link for the new FS version:
cd /usr2/fs-git make install
Answer y
to confirm installation.
Caution
|
This step will change your /usr2/fs symbolic link to point to /usr2/fs-git. To switch back to your old version, you will need to change the link manually. |
Note
|
The make install command may create and possibly rename some
existing directories if the FS was never installed on this system
before. However, since you should only be following this path if you
are upgrading an FS9 installation, there should not be any problem.
|
3.6. Fix file permissions
Having the wrong ownership and/or permissions on the operational
files (procedure libraries, control files, schedules, and logs)
can cause errors during FS operations. For a full discussion,
please refer to the
Set operations file permissions
section of the
Installation Reference document.
For stations where all the operational files are
expected to be owned by user oper in group rtx, with permissions
ug+rw,o+r,o-w
, the following command will enforce this (note
that the execute/search bits are not changed):
/usr2/fs/misc/fix_perm
Answer y
to the prompt if you wish to proceed. It is recommended for most stations.
3.7. Login as prog
Important
|
Logout as root, and login as prog. |
3.8. Set FORTRAN compiler
Starting with version 10.0.0, the standard FORTRAN compiler for use with the FS is f95 (gfortran). We recommend that you use it. On the 32-bit systems you can still use fort77, but you should only use it if you either don’t have f95 or if you have FORTRAN station code that is too difficult to convert to f95, see the Conversion of FORTRAN code sub-step below for more details.
To select f95 as your compiler, you will need to set the
FC
variable to this value. If your shell is tcsh you can
use:
setenv FC f95
If your shell is bash, you can use:
export FC=f95
Warning
|
If you are testing the installation on a 32-bit system, you may not want to make this change permanent since it is incompatible with pre-10.0.0 versions. |
To make this change permanent, you should add the appropriate command to the appropriate rc file depending on your login shell: ~prog/.login for tcsh or probably ~prog/.profile for bash.
3.9. Make the FS
Tip
|
If you are using an old distribution that is not compatible with the latest update of the server, you can still use the FS without the server by removing it from the make process. If your first attempt to build the FS fails because of the server (most likely while working in third_party/), please follow the steps in the description of the not building the display server change (in the FS changes that are in common since FS9 sub-section of the Changes from FS9 document). Please email Ed about needing to do this or if you still can’t build the FS. |
cd /usr2/fs make >& /dev/null
and then
make -s
to confirm that everything compiled correctly (no news is good news).
3.10. Update station programs
This step is for modifying your station programs in /usr2/st. There are four possible issues:
They are discussed next.
3.10.1. Conversion of FORTRAN code
If you don’t have any FORTRAN station code, you should skip this sub-step. If you do have some, please email Ed so he is aware.
Basically you have two options (also see the Set FORTRAN compiler step above):
-
Change to using f95 for both the FS and your station FORTRAN programs. It is recommended that you follow this approach for 32-bit systems and it is necessary when moving to a 64-bit system.
You will need to adapt your Makefiles to use the same compiler options as the FS, which can be found in /usr2/fs/include.mk. As a first cut, it may work to add the following two lines to your Makefiles for FORTRAN programs:
FFLAGS += -ff2c -I../../fs/include -fno-range-check -finit-local-zero -fno-automatic -fbackslash FLIBS += -lgfortran -lm
-
Continue to use fort77 for both the FS and your station programs. You should follow this approach only if you are on a 32-bit system and it is too difficult to convert to f95.
3.10.2. Case sensitive strings in antenna= commands
If you don’t have a local antenna=…
command, you should skip this
sub-step.
In FS9 versions, the strings used in antenna=…
commands were
always converted to uppercase before being sent to antcn. That no
longer happens due to FS input becoming case sensitive. If your
antenna, or your side of the antenna interface, requires that the
strings passed by the antenna=…
command are uppercase, you have
two options:
-
Convert your code. For simple backward compatibility, change your antcn program to always convert the
antenna=…
strings to upper case. Alternatively, make your code case insensitive. -
Convert the strings in your
antenna=…
commands wherever they occur: SNAP procedures, SNAP schedules, external programs, or scripts, to upper case.
The former choice is probably easier, but in some cases the second is probably better (it keeps with the spirit of case sensitivity). If you have questions about which to use and how to do it, please email Ed.
3.10.3. Update local lo/lo_config commands
If you don’t have a local (station) lo
or lo_config
command, you
should skip this sub-step.
-
Local
lo
commandIf you have a local
lo
command, you will need to update it (or replace it, see the next paragraph) to get full support for rack types that were not in your previous FS9 version and to implement the new capability described in the logging .rxg files change (in the FS changes that are in common since FS9 sub-section of the Changes from FS9 document).You should consider switching to use the new version of the
lo
command described in the LO hooks change (in the FS changes that are in common since FS9 sub-section of the Changes from FS9 document). This approach may not be suitable for all stations, but it may work well for your station. If so, it should reduce, and in most cases eliminate, the need to update your local software when the FSlo
command changes in the future. -
Local
lo_config
commandLikewise, if you have a local
lo_config
command, it will need to be updated to get full support for the new rack types. You should also consider switching to using the new hook for this described in the LO hooks change (in the FS changes that are in common since FS9 sub-section of the Changes from FS9 document).
3.10.4. Update metserver
If you don’t use metserver as a local program, you should skip this sub-step.
This sub-step is optional even if you use metserver. You should consider it if you are upgrading from the VGOS branch or you are upgrading from the old main branch and have not already updated to the latest metserver from that branch. The latest version of metserver has several improvements:
-
A new command line argument to disable errors messages for specific sensors if they are broken.
-
Support for the
FS_SERIAL_CLOCAL
make time environment variable for FSL9 and later. -
Improved reporting of errors when opening serial devices.
-
Reduction in the threshold for old data being declared stale to 10 seconds, which is more than sufficient.
See st.default/st-0.0.0/metserver/INSTALL for the installation instructions.
3.11. Make local software
If /usr2/st/Makefile is set-up in the standard way, you can do this with:
cd /usr2/st make rmdoto rmexe all
Note
|
At this point, you are only trying to verify the code will make successfully. You may still need to debug it in the step Test the FS below. |
3.12. Reboot
Important
|
Reboot the computer. This is necessary to allocate FS, and possibly station, shared memory for the new version. It will also make sure you are using the latest version of the display server. |
3.13. Login as oper
The remaining steps assume you are logged in as oper.
3.14. Update control files
This step is for updates to the local control files. There are seven sub-steps:
Differences for updating from different previous versions are noted. Please read all cases in each sub-step carefully to make sure you find all the cases for your old version; sometimes an old version is included in more than one case in a given sub-step.
3.14.1. Update stcmd.ctl
-
Old version 9.13.2:
The non-comment lines need another digit added to the subroutine number. This sub-step is only needed for updates from 9.13.2. You can fix your file with the commands:
cd /usr2/control /usr2/fs/misc/cmdctlfix6 stcmd.ctl
You may also want to expand the (typically) second comment line to correspond to the new format by adding a
U
after character 18 to read as follows:*COMMAND SEG SUBPA BO
3.14.2. Copy control files
You will need to execute the following commands to copy the new files that are needed (copy-and-paste is your friend). There are three cases depending on what your old version was:
-
Old versions 9.12.10 - 9.12.12:
cd /usr2/control cp /usr2/fs/st.default/control/clpgm.ctl . cp /usr2/fs/st.default/control/rdbemsg.ctl .
-
Old version 9.12.13:
cd /usr2/control cp /usr2/fs/st.default/control/rdbemsg.ctl .
-
Old version 9.13.2:
cd /usr2/control cp /usr2/fs/st.default/control/dbba2.ctl . cp /usr2/fs/st.default/control/mk6c?.ctl . cp /usr2/fs/st.default/control/monit6.ctl . cp /usr2/fs/st.default/control/rdbc?.ctl . cp /usr2/fs/st.default/control/rdbe.ctl . cp /usr2/fs/st.default/control/rdbemsg.ctl .
3.14.3. Update equip.ctl
It is necessary to add lines for the FiLa10G input select and the DBBC3 configuration. There are three cases, please check which applies for you. In any event, you should compare your equip.ctl to the example as described when you get to the Review control files sub-step below, to make sure there are no duplicated lines or other problems caused by the commands in this current sub-step (i.e., Update equip.ctl).
-
If your old version was 9.12.10 or 9.12.11 (or 9.12.12 at GGAO only), you will need to add the final four lines of the example equip.ctl file to yours:
cd /usr2/control tail -n 4 /usr2/fs/st.default/control/equip.ctl >>equip.ctl
-
If your old version was 9.12.12 (but not at GGAO) or 9.12.13, you will need to insert two lines before the final two lines. This is covered in the Review control files sub-step below.
-
If your old version was 9.13.2, you will need to add the final two lines of the example equip.ctl file to yours:
cd /usr2/control tail -n 2 /usr2/fs/st.default/control/equip.ctl >>equip.ctl
3.14.4. Review control files
You should compare your versions of the following files:
-
clpgm.ctl
-
equip.ctl
-
stpgm.ctl
to the example files, e.g., using:
cd /usr2/control diff clpgm.ctl /usr2/fs/st.default/control/ | less
and consider whether and what changes you should make to your copies.
Tip
|
If you are familiar with vimdiff, you may find it a more convenient way to compare files and update your local copy. Like vim, vimdiff may be challenging to use until you are familiar with it. Some help is available from web searches. Don’t use it if you aren’t comfortable with it. |
The following sub-sections give the details of the changes in these example files. You will need to make the corresponding changes to your copies of the files.
3.14.4.1. Review clpgm.ctl
You may only need to replace your copy with the new one.
-
Old versions 9.12.10 - 9.12.12:
This file was not present so the new default version (copied by commands in the Copy control files sub-step above) should not require modification.
-
Old versions 9.12.13, and 9.13.2:
-
The
-title …
parameter for each window was removed so that it is uniquely supplied by the .Xresources file. -
The value of the
-name
parameter for erchk was changed fromERRORS
toerchk
. -
The useful display window scnch was added.
-
The xterm program was added.
-
For RDBE systems, the useful RDBE display windows: monit6, and mon<x> (<x>=[a-d]) were added. If these are not relevant for your site, you may not want to add them.
The mon<x> displays use the rdbe30_mon.py script written by Russ McWhirter (Haystack). It is not distributed with the FS at this time, but should already be available at all stations with RDBEs.
-
The monan program was added to the default since it is used at several sites. If it is not relevant for your site, you may not want to add it.
-
3.14.4.2. Review equip.ctl
Caution
|
This sub-step has the most complicated changes. Please read all clauses to make sure you see all that apply to your old version. |
There are two sub-sections. The first sub-section covers changes to non-comment lines; the second, comments. The former are required. The later are in some sense optional, especially when they refer to equipment you don’t (or never will) have. However, changing them now may help avoid confusion at a later date.
Non-comment lines
-
Old versions 9.12.10-9.12.13:
-
The line for DBBC PFB version was changed to have a minimum version number of
v15_1
. The line is shown here with the typical preceding comment:*DBBC PFB version v15_1 v15_1 or later
-
The line that defines the DBBC2 CoMo configuration was changed. Please see item (12) in the installation instructions in /usr2/fs/misc/fs91119up.txt for full details on handling this. However, the following commands will probably make the needed change if you don’t have a DBBC2 or if your DBBC2 configuration is four CoMos with one Core per CoMo:
cd /usr2/control /usr2/fs/misc/dbbc_equip '1 1 1 1' equip.ctl
If the script prints a warning about the number of IF power conversions being incorrect, the issue must be resolved before continuing, either by adjusting the number of power conversions, adjusting the CoMo configuration, or both.
-
-
Old versions 9.12.10 and 9.12.11 (and 9.12.12 at GGAO only):
A FiLa10G input select line was added, but the Update equip.ctl sub-step above should have handled that.
-
Old versions 9.12.12 (but not at GGAO) and 9.12.13:
A stanza (actually one comment and one FiLa10G input select line) was inserted before the final stanza (typically one comment and one DBBC3 configuration line). An example of the lines inserted can be found near the end of the default example /usr2/fs/st.default/control/equip.ctl file. They are listed here as well (one comment and one FiLa10G input select line):
*FiLa10G input select, one of: vsi1, vsi2, vsi1-2, vsi1-2-3-4, gps, tvg vsi1-2
-
Old versions 9.12.10, 9.12.11, and 9.13.2 (and 9.12.12 at GGAO only):
A new line for the DBBC3 configuration was added at the end, but the Update equip.ctl sub-step above should have handled that.
Comment lines
-
All old versions:
Compared to all old versions, comment lines were added or modified for new equipment type options.
-
All old versions:
The trailing comment on the line for the met. device was removed and the preceding comments were reworded.
-
Old versions 9.12.10-9.12.13:
The comment lines describing the available clock rates was completely rewritten and greatly expanded, and an additional clock rate (
128
) was appended to the end of the comment on the clock rate line itself.
3.14.4.3. Review stpgm.ctl
Warning
|
If you are planning to not use the FS display server, we recommend that you comment out the lines for erchk, monit2, and scnch and not add any other monit<x> programs or other uses of xterms. If they are used in stpgm.ctl without the display server and they are accidentally closed, the FS will be killed. This applies as well if you built the FS without the display server as described in the not building the display server change (in the FS changes that are in common since FS9 sub-section of the Changes from FS9 document). |
-
For all old versions, if you are planning to use the FS display server:
-
The line for erchk is now uncommented as the default and differs from the previous commented version with the addition of the
-name erchk
parameter and the removal of the-title …
and-geom …
parameters, so that the latter two are uniquely supplied by the .Xresources file.You should change the second field in the erchk line from
n
tox
as shown in the /usr2/fs/st.default/control/stpgm.ctl example.NoteAn x
should be used as the second field for all X window display programs. They will be automatically started and stopped with each instance of the display client, on its display. -
New lines were added for monit2, and scnch for when the display server is in use. You may want to include those if you would like them to start automatically when you launch the FS or separate display clients.
If you are using the display server you may want to add other monit<x> programs. If so, you may also want to add resources for them (if they aren’t already there) in the ~/.Xresources files for oper and prog.
-
If you are using the display server and were starting any xterms with
sy=…
from youriniti
procedure in yourstation
library, you should remove those (see the sub-section Remove running xterm from your SNAP procedures farther below) and probably add them to stpgm.ctl, usually withx
for the second field. The syntax is slightly different than what is used withsy=…
command. You can use the /usr2/fs/st.default/control/stpgm.ctl file as an example.
-
3.14.5. Update rdbemsg.ctl
-
Versions 9.12.10-9.12.13:
If you have RDBEs for your back-end and will use the rdbemsg utility to send operations messages, you will need to customize your /usr2/control/rdbemsg.ctl file.
-
You will need to update the
station
two letter code (lowercase) to your station’s value. -
You will need to update the
name
station name to your station’s value.NoteThe station name is also defined in the /usr2/control/location.ctl file. -
You should set the addresses for the RBDE-A (
R-A
) through RDBE-D (R-D
).The example file uses aliases, rdbea through rdbed, that you can define in /etc/hosts. Likewise, if you have an mci node, you can set its alias, perhaps hubpc, in /etc/hosts. Alternatively of course, you can use any scheme you prefer for the nodes names used in rdbemsg.ctl.
NoteIt is usually necessary to have root access to modify /etc/hosts. -
The default email address
to
is for theivs-ops
mail list. You can of course change that to whatever you like.NoteYou can also temporarily override the address in the rdbemsg utility itself. -
If you don’t have an MCI node (hubpc) for front end monitor and control, you should comment out that line.
-
If you do have an MCI node, change the node name from hubpc if it is different (possibly an alias from /etc/hosts).
-
For stations with a prototype MCI node (GGAO and Westford):
If your MCI node uses a different station code (
gg
at GGAO) and/or the values are reported in a different position (3
at GGAO). You can set these values with themci-code
andmci-parameter
lines. As needed, uncomment the example lines and update them with appropriate values.If you have version
0
of the MCI node (Westford), you will need an updatedrdbemsg
program that uses themci-version
line. This is described in rdbemsg.ctl sub-section of the FS RDBE Support document. If you need advice on extracting the version of rdbemsg in commitfb57201c
and installing it, please contact Ed.
-
3.14.6. Update aquir control files
If they are not already, convert the contents of your aquir control files to lowercase. This is usually necessary since the FS is now case sensitive. However, you could arrange your control files and procedure libraries to use uppercase if you want. That would be an unusual situation. For the typical situation, you can convert as oper, for example, with:
Caution
|
These commands will change all the uppercase in the file(s) to lowercase, including in comments. The change for the comments should be benign. While it might not be what is desired for some of the comments, it will enforce lowercase for lines that are currently commented out, but may be uncommented in the future. You can always use an alternative method of conversion to retain uppercase in comments only in places where you want it. |
cd /usr2/control /usr2/fs/misc/to_lower ctlpo.ctl
You can repeat this for other aquir control files you may have. The to_lower script can process multiple files given on the command line. It will make a back-up of original files with an added .bak extension. It will not overwrite any existing .bak file. It stops if any error is encountered.
Caution
|
Each aquir control file has its own horizon mask that is separate from the one in location.ctl. |
3.14.7. Update skedf.ctl
-
All versions:
-
This sub-step applies only if you use the fesh script to fetch schedules, and optionally run drudg for them. There are two possible changes:
-
If not already set, specify a directory for .skd files in the
$schedules
block of the /usr2/control/skedf.ctl control file. You can use any value you want, but to be backward compatible with the previous behavior of fesh it must be /usr2/sched. -
Likewise, directories should be specified in the
$snap
and$proc
blocks of /usr2/control/skedf.ctl. You can use any values you want, but typically they should be set to /usr2/sched and /usr2/proc, respectively, to agree with the FS.
-
-
Due to an error (as described in the FS changes that are in common since FS9 sub-section of the Changes from FS9 document) in the example /usr2/fs/st.defaut/control/skedf.ctl file in previous releases, most stations probably incorrectly show the
lo_config
keyword asif_config
in their local /usr2/control/skedf.ctl version. Please check your local copy and update any occurrences, even in comments, ofif_config
tolo_config
.
-
3.15. Update .prc files
This step is for updates to your .prc SNAP procedure libraries. Except where a script is provided to make the change (which must be used only when the FS not running), all changes should be made with pfmed.
There are four sub-steps. The first change is required for all users: converting from using the old FS go program to rte_go.
The second change is required for all users converting to or already using the display server: remove any instances of running xterms in your procedures.
The third change is optional and only relevant if upgrading from
9.13.2: removing if=cont_cal,,
from the fivpt
and onoff
procedures for calon
and caloff
procedures.
The fourth change, switching to using s_client from other deprecated TCP communication scripts, is only relevant if you are updating from the VGOS branch, versions 9.12.<x>, and probably only if you had a RDBE rack.
3.15.1. Convert from go to rte_go
Convert use of the old FS go program to use rte_go. This is required because the compiler for the go language conflicts with the old program name go. This change is necessary even if you do not have the go language compiler installed.
To make this change for all your .prc procedure libraries, execute:
cd /usr2/proc /usr2/fs/misc/go_fix *.prc
Files that are changed will have a pre-change back-up copy with the extension .bak. You can use the .bak files to recover in case of a problem.
3.15.2. Remove running xterm from your SNAP procedures
This step is only needed for stations using the display server. You
should remove any instances of running xterms from your SNAP
procedures. Typically this would only occur in the initi
procedure
in the station
library, where it might be used to start monitor
displays automatically when the FS is launched. In addition to there
being issues with the functioning of such xterms with the display
server, a more comprehensive solution is now provided through the
stpgm.ctl control file (see the Review stpgm.ctl sub-step
farther above for more information on setting this up).
To check whether you have an instance of running xterms in your procedures, you can use:
cd /usr2/proc grep xterm *.prc
This will only identify which libraries have commands that run xterms. You can list those libraries with less to find which procedures they are in. You should use pfmed to modify the procedures involved. You can delete or comment out the relevant commands.
3.15.3. Remove extra if commands
This sub-step is optional and only relevant if you are upgrading from
9.13.2. You can remove the if=cont_cal,,
as a prefix from before
the calon
and caloff
commands in your calonnf
, calonfp
,
caloffnf
, and calofffp
procedures, probably located in your
point procedure library. This is just a clean-up and not making this
change will have no impact.
3.15.4. Switch to using s_client
This sub-step is optional and only relevant if you were using the VGOS branch, versions 9.12.<x>. You should replace use of the deprecated scripts be_client and mcicn, if you were using them, with the more general s_client. You can find instances of these commands, using, e.g., for be_client:
cd /usr2/proc grep be_client *.prc
You can use less
to identify the SNAP procedures in each file that
uses the script. Use pfmed to make the changes.
Information about using s_client can be found using help=sy
in
the FS.
3.16. Miscellaneous FS related changes
There are three changes:
-
Set FS_DISPLAY_SERVER environment variable for oper and prog. This is only needed if you were not running the FS display server before.
-
Set environment variables for fesh. These are optional changes to consider if you use fesh.
-
Update .Xresources file for the oper and prog accounts.
3.16.1. Set FS_DISPLAY_SERVER
Set the FS_DISPLAY_SERVER
environment variable for oper and
prog. This will make using the display server the default for your
system. We strongly recommend this, but if it is not suitable for you
for some reason you can skip this. If you are already using the
display server, you should also skip this. You should not implement
this step (or instead remove setting the variable if already being
set), if you built the FS without the display server as described in
the not building the display server
change
(in the
FS changes that are in common since FS9
sub-section of the
Changes from FS9
document).
Warning
|
If you don’t use the display server, you will probably need to update the stpgm.ctl file for that case as described in the WARNING in the Review stpgm.ctl sub-step above. |
-
As oper:
-
Set the variable
-
If using the bash shell then in the ~oper/.profile file, you can uncomment or insert
export FS_DISPLAY_SERVER=on
-
If using the tcsh shell then in the ~oper/.login file, you can uncomment or insert
setenv FS_DISPLAY_SERVER on
-
-
You should logout and login again after making this change.
-
-
You should make the corresponding change for prog while logged in as prog.
3.16.2. Set environment variables for fesh
These are optional changes that should be considered if you use fesh.
-
The fesh script uses cddis as the default data center. You can specify a different data center by setting the
FESH_DATA_CENTER
environment variable. Available data centers for geodesy are bkg, cddis, and opar; for astronomy, vlbeer.TipFor FSL8 and other old Linux distributions, access to cddis may not be possible, due to out-of-date certificates (for both FTP-SSL or HTTPS). If you are in that situation, bkg or opar may be suitable alternatives. -
The fesh script uses FTP-SSL as the default access method for the cddis data center. For this case, you can avoid having to answer a prompt for your email address each time you run fesh by setting your email address in the
FESH_EMAIL
environment variable.TipThe FTP-SSL method may not work from behind some firewalls. If it doesn’t work for you, either use a different data center (see above) or use HTTPS for cddis (see below). -
You can change the access method for cddis to HTTPS, by setting the
FESH_CDDIS_METHOD
environment variable tohttps
.NoteUsing HTTPS requires an EarthData login and setting it in your .netrc file. If you don’t have an EarthData login, you should be able to get one by selecting REGISTER
at: https://urs.earthdata.nasa.gov/.
A more complete description of the new features in fesh is available
in the FS 10.0.0 fesh Changes document. Please
use fesh -h
for more information on using these features.
3.16.3. Update .Xresources
The main change was to add values for the erchk, scnch, and helpsh windows. There were some minor changes for other windows, but what to use for the changed values may depend on the resolution of your display. The example values worked well for an FSL10 installation on a system with a non-GPU CPU.
Tip
|
Fine tuning the You can find an effective strategy to help with setting the |
As oper, you can find the differences between your file and the example file with:
cd diff .Xresources /usr2/fs/st.default/oper
Tip
|
If you are familiar with vimdiff, you may find it a more convenient way to compare files and update your local copy. Like vim, vimdiff may be challenging to use until you are familiar with it. Some help is available from web searches. Don’t use it if you aren’t comfortable with it. |
Please make any changes to your file that you find appropriate, but at a minimum you should probably add the lines for monit6, erchk, scnch, and helpsh if not already present. You will need to logout and login again (or reload the X-resources a different way) for the changes to become effective.
Caution
|
The example .Xresource file for 9.13.2 did not have any of these items, but you may have already included some in your local file. Similarly, the example files for the 9.12.<x> versions only had monit6 included, but you may have already included some of the others in your local file. You should be careful to not specify values for a window more than once. So don’t use the suggested commands below if they cover windows that already values in your .Xresources file. Instead you will need to hand edit to make the appropriate changes. Every station will probably need the lines for helpsh. |
-
All the new lines are at the end of the file, so if you need to add lines for monit6, erchk, scnch, and helpsh, you can use:
cd tail -n 24 /usr2/fs/st.default/oper/.Xresources >>.Xresources
-
To add lines for just erchk, scnch, and helpsh, you can use:
cd tail -n 20 /usr2/fs/st.default/oper/.Xresources >>.Xresources
-
To add lines for just helpsh, you can use:
cd tail -n 6 /usr2/fs/st.default/oper/.Xresources >>.Xresources
You can update prog's .Xresources file similarly, but you will need to be logged in as prog.
3.17. Miscellaneous FSLx changes
-
Update ~/.xsession: If you are running the FS on the console and your login shell is tcsh (or if you are using AUID accounts, see the NOTE immediately below.)
NoteIf you are using an AUID accounts (with bash as the login shell) in FSL10 (see the Adding AUID account sub-section, https://nvi-inc.github.io/fsl10/cis-setup.html#_adding_auid_accounts, of the CIS hardening for FSL10 document, https://nvi-inc.github.io/fsl10/cis-setup.html), you only need to update the ~/.profile files for the AUID accounts to set the needed environment variables.
If you are using tcsh as the login shell for those accounts, you will need to make the changes below and add the environment variables to the ~/.login files for those accounts.
If you are using tcsh as your login shell for oper or prog (or AUID accounts in FSL10), the (optional) changes in this sub-step will make sure any FS runtime environment variables are set properly for the console window display manager (fvwm2). This could be important for example, if you want to run fsclient (perhaps for a
scan_check
window) from a console hotkey. There are two cases: FSL9/FSL10 and FSL8.-
FSL9/FSL10: If you are using one of these distributions (or any other that uses the graphical manager gdm3 for the console), update your ~/.xsession files.
-
If oper uses tcsh as its login shell, then as oper, make these change to ~/.xsession:
-
Change the first line to:
#!/bin/tcsh
-
Change the
source .profile
line to:source .login
-
-
Likewise, if prog uses tcsh you should make the same changes, as prog.
-
-
FSL8: If you are using this distribution (or any other that uses the graphical manager gdm for the console), update your ~/.profile files.
-
If oper uses tcsh as its login shell, then as oper, you will need to update the ~/.profile file to set any FS runtime environment variables you are using in .login. The syntax in .profile is different from that in .login. You can look at an example in /usr2/fs/st.default/oper/.profile.
-
Likewise, if prog uses tcsh you should make the same changes, as prog.
-
-
3.18. Test the FS
There is one item that might need to be completed and two things that need to be tested:
-
Complete: You may want to tune the positions of the various windows on the display. For this, you can follow the suggested method from the TIP in the Update .Xresources sub-step above.
-
Test: the FS and drudg:
ImportantBefore testing, if as part of your testing of station code you ran the FS under the prog account, either reboot or use the command:
fsserver stop
to make sure the server is no longer running as prog.
For details on why this is needed, please see the second IMPORTANT item in Server continues running after FS termination sub-section of the FS 10.0.0 fsserver Changes document.
Generally speaking, a fairly thorough test is to run a test experiment. Start with using drudg to rotate a schedule, drudging it to make .snp and .prc files, making listings, and any other pre-experiment preparation and tests you normally do, then execute part of schedule, and perform any normal post-experiment plotting and clean-up that you do. The idea here is to verify that everything works as you expect for normal operations.
-
Test: fesh, if you use it:
If you use fesh to download schedules, you should test that using the latest version. If you also use it to drudg schedules, you should test that as well.
CautionIf you have been using an updated version of fesh outside the FS, be sure to test and use the new FS version. For example, if you have been using ~/fesh
to run a version in ~oper, be sure to usefesh
to get the new FS version.A quick check is to just make sure the files have reasonable contents. If you want to make a detailed check, a strategy for that might be:
-
Move an old schedule file and its the drudg output, e.g., r4948.skd, r4948<xx>.lst, r4948<xx>.snp, and r4948<xx>.prc, (where <xx> is your station’s two letter code) to a different directory, e.g., /tmp.
-
Rerun fesh for that schedule.
-
Compare the old and new versions with diff (or vimdiff). They only differences should be:
-
Comments in the .snp and .prc files.
-
Compared to .snp files produced by 9.12.<x> versions for Mark 6 recorders, the GB used in the
mk6=record=
commands (third parameter) will be slightly, by a factor of 1024/1000, larger, truncated to an integer. -
The timestamps in the
define
lines in the .prc file. However, it is possible the procedures will be in a different order if you edited the old version. -
Compared to drudg summary listings produced by 9.12.<x> versions, the GB shown will slightly, by a factor of 1024/1000, larger.
-
Insignificant rounding differences in drudg summary listing files.
-
-
Copy your original files back from where you placed them, if you want to preserve them.
-
3.19. Consider when to update your back-ups
It would be prudent to wait until you have successfully run an experiment or two and preferably received word that the experiment(s) produced good data. The chances of needing to use your back-up should be small. If something does happen, you can copy the back-up to the (now assumed bad) updated disk. You can then either use the restored disk or apply the FS update again. The FSL10 test procedure has more options for recovery. Managing this is a lot easier and safer if you have a third disk.
4. Changes from FS9
Due to the large number of changes since FS9, they are provided in the separate Changes from FS9 document. That document includes sections:
Each of those sections is divided into three sub-sections:
-
Changes that are in common since FS9
-
Changes relative to the main branch
-
Changes relative to the VGOS branch
Please see the Changes from FS9 document for full details.