1. Introduction

Caution
The beta2 pre-release of the FS does not make on older Linux distributions such as FSL8. The beta1 pre-release does make on FSL8. This is fixed for FSL8 in beta3, which also has a workaround for even older distributions.

The document covers updating from the beta1 pre-release to the beta2 pre-release. Like all beta pre-releases, beta2 is not intended to operations.

2. Upgrading from 10.0.0-beta1 to 10.0.0-beta2

You must have already upgraded to the 10.0.0-beta1 release before installing this update.

If you made it through the beta1 update despite the errors and omissions in the instructions (now corrected, we apologize), the update instructions from the beta1 are much simpler. The overall method is described here:

2.1. Fetch and make the release

Caution
The beta2 pre-release of the FS does not make on older Linux distributions such as FSL8. The beta1 pre-release does make on FSL8. This is fixed for FSL8 in beta3, which also has a workaround for even older distributions.

If you are using git as is recommended, then as prog execute:

cd /usr2/fs-git
git fetch
git checkout -q 10.0.0-beta2
make clean rmdoto rmexe
make >& /dev/null
make -s

No output from the last command indicates a successful make.

2.2. Reboot

Important
Reboot the computer. This is necessary to allocate FS, and possibly station, shared memory for the new version.

2.3. Login in as oper

The remaining steps assume you are logged in as oper.

2.4. Update control files

  1. If your old version before the beta1 update was 9.12.12, you should review the sub-steps in the Update control files step of the beta2 update notes document. In particular, there were two changes from the beta1 version to review:

    1. In the beta1 version of the now corrected Copy control files sub-step in the beta2 update notes document, your clpgm.ctl file may have been needlessly overwritten. We think is is unlikely that any local customizations were lost, but if they were, we apologize. Hopefully you made a backup before trying the update. In which case, you should be able to recover the file from the backup. Otherwise, hopefully the changes needed are small. Additional changes to clpgm.ctl are covered farther below.

    2. In the beta1 version of the now corrected Update equip.ctl sub-step in the beta2 update notes document, you may have ended up with extra lines at the end of equip.ctl because in the beta1 installation instruction, the FiLa10G input select lines (including the comment line) were added after the DBBC3 configuration lines (including the comment line) and extra DBBC3 configuration lines were added. Presumably you have already sorted this out because the FS would probably not have run if the file was changed as previously described. If you have not sorted this out, the change that is needed is to move the FiLa10G input select lines before the DBBC3 configuration lines and to delete any additional lines after the DBBC3 configurations lines. In case it is helpful, more detail is provided in the Review_control_files sub-step of the beta2 update notes document.

  2. There were two changes to the clpgm.ctl control file:

    1. The flags for the monX programs in clpgm.ctl have changed from a to d.

      Please check the file to see if those lines are present. If so, and the second field is a, please change it to d for each occurrence.

    2. The line for the scnch window has been generalized to cover Mark 5 recorders as well as Mark 6.

      Please update your file accordingly after comparing to the new default:

      cd /usr2/control
      diff clpgm.ctl /usr2/fs/st.default/control
  3. In the stpgm.ctl control file, the line for the scnch window has been generalized to cover Mark 5 recorders as well as Mark 6.

    Please update your file accordingly after comparing to the new default:

    cd /usr2/control
    diff stpgm.ctl /usr2/fs/st.default/control
  4. If you use RDBEs in your back-end and want to use the rdbemsg utility to send operations messages, please customize your /usr2/control/rdbemsg.ctl control file. In particular, you should add the station line to the file. Full instructions are provided in the Update rdbemsg.ctl sub-step of the beta2 update notes document. which is a new sub-step since beta1.

    Note
    The instructions it Update rdbemsg,ctl sub-step also include setting the name line in rdbemsg.ctl. That setting is not available as of beta2; it is provided in a later update. However, setting it for beta2 is benign and forward compatible.

2.5. Update .prc files from 10.0.0-beta1

If you initially upgraded from 9.13.2, there is an optional clean-up of your calonnf, calonfp, caloffnf, and calofffp procedures, probably located in your point procedure library in the Remove extra if commands sub-step of the beta2 update notes document.

2.6. Other updates

  1. Please review the Set FS_DISPLAY_SERVER sub-step of the beta2 update notes document. This sub-step did not exist for the beta1 release. It contains information about making use of the display server the default, which is strongly recommended.

  2. Please review the Update .Xresources sub-step of the beta2 update notes document. This sub-step did not exist for the beta1 release. It contains information about updates needed to the ~/.Xresources files for oper and prog. Please follow those directions.

  3. If you have installed the beta1 as part of installing FSL10, you can optionally rearrange your .bashrc and .profile files to agree with the new default.

    As oper, you can find the differences between your ~/.bashrc and ~/.profile files and the new defaults using, e.g.,:

    cd
    diff .bashrc  /usr2/fs/st.default/oper

    The main changes are:

    1. Move certain commands within ~/.bashrc so they are only used by interactive shells.

    2. Move unset TMOUT from ~/.profile to ~/.bashrc.

    3. Enable the display server in ~/.profile, as also mentioned above.

    Likewise you can do this similarly for prog (and any AUID accounts if you are using those).

  4. If you updated to a 64-bit platform and installed the go language as part of that, according the Option B - Installing latest go language sub-step of the Converting to a 64-bit system document, then you should register for golang announcements as is now described in that sub-step.

2.7. Review other changes

Please see the section Changes since 10.0.0-beta1 below for details of the changes in 10.0.0-beta2 compared to the 10.0.0-beta1 release.

3. Changes since 10.0.0-beta1

There are separate sub-sections with summaries of changes in the FS and drudg. Following those are sub-sections giving the details of the changes. Each summary item has a clickable More details link that leads to the detailed description of that item.

Clickable links such as #36 connect to specific issues reported at https://github.com/nvi-inc/fs/issues.

A complete history of changes can be found using the git log command.

The file /usr2/fs/misc/changes.txt contains the old history of changes in FS9. The file /usr2/fs/misc/VENIX_changes.txt contains the old history of changes in FS8. However these two files have been merged into the history given by git log.

The history of drudg is also described in more detail in /usr2/fs/drudg/change_log.txt.

3.1. Summary of FS changes

  1. Improve fesh (includes closing #34). More details.

  2. Update example equip.ctl (includes closing #35). More details.

  3. Fix some error messages (includes closing #43 & #22). More details.

  4. Improve plog. More details.

  5. Restore if command. More details.

  6. Update GPL in files. More details.

  7. Remove usage of system() call to find help file_(closes #40 & #3). More details.

  8. No longer set /usr2/fs and /usr2/st to be owned by prog. More details.

  9. Add checking for a procedure or schedule file before attempting to open it (closes #45). More details.

  10. Add more log header lines. More details.

  11. Fix year wrap error message in procedure logging (closes #23). More details.

  12. Fix remaining case of a closed procedure library causing a crash if there was an attempt to execute a procedure from the library was fixed. More details.

  13. Move X resources for helpsh to ~/.Xresources. More details.

  14. Move unsetting of TMOUT environment variable for oper to ~/.bashrc in the default files. More details.

  15. Improve error logging for dbbcn. More details.

  16. Improve help page for tpicd. More details.

  17. Add popen time-out feature. More details.

  18. The FS display server is now recommended for normal use. More details.

  19. Make fsclient honor the -n flag properly (closes #48). More details.

  20. Make fsclient ignore prompt in no-X11 mode (closes #49). More details.

  21. Add fsserver improvements and log support (includes closing #29 & #25). More details.

  22. Eliminate cls_chk error from inject_snap -w …​ command when an error occurs (partly closes #50). More details.

  23. Fix labels in gnplt windows that display the gain curve coefficients (closes #51). More details.

  24. Improve holog/MASK. More details.

  25. Fix onoff for the DBBC3 rack (closes #52). More details.

  26. Add support for DBBC3 to if=cont_cal,…​ (closes #54). More details.

  27. Update help pages for onoff and fivpt. More details.

  28. Always check for day 248 problem in setcl (closes #56). More details.

  29. Change the flags for the monX programs in clpgm.ctl from a to d. More details.

  30. Generalize the scnch window to cover Mark 5 recorders (closes #61). More details.

  31. Update misc/release_model.txt. More details.

  32. Improve update notes. More details.

3.2. Summary of drudg changes

drudg opening message date is 2020Jun30.

  1. Fix uninitialized variables. More details.

  2. Fix missing preob when EARLY start non-zero. More details.

  3. Add support for additional wait at the end of recording for broadband. More details.

  4. Update comment on line three of .snp files. More details.

3.3. Details of FS changes

  1. Improve fesh (includes closing #34).

    1. A typo in the error message for when the schedule is already downloaded was fixed (closes #34). Thanks to Morgan Goodrich (KPGO) for reporting this.

    2. The internal version number was replaced with the FS version.

  2. Update example equip.ctl (includes closing #35).

    1. The example DBBC3 firmware version is now more sensible (closes #35). Thanks to Eskil Varenius (Onsala) for reporting this.

    2. The minimum DBBC3 firmware version required was added in a comment.

  3. Fix some error messages (includes closing #43 & #22).

    1. Fixed errors in control/fserr.ctl. Errors in some double double-quotes ("") lines and some incorrectly reused error codes were fixed (closes #43). Thanks to Alexander Neidhardt (Wettzell) for reporting these.

    2. The errors for a tnx command not being found when attempting to manipulate its display setting were clarified (closes #22). Thanks to Jon Quick (HartRAO) for reporting this.

    3. Error messages that should refer to the (not yet implemented) active_rdbes and active_mk6s commands were corrected to no longer incorrectly refer to the rdbe_active and mk5_active commands, respectively.

    4. Obsolete errors for the, no longer used, sw.ctl control file were removed.

  4. Improve plog.

    1. Use of an environment variable NETRC_DIR was added to support not having the .netrc file in the user’s home directory was added. Please see plog -h for details on how to use this.

    2. The internal version number was replaced with the FS version.

  5. Restore if command. It had accidentally been overlooked in beta1. Thanks to Beppe Maccaferri (Medicina) for reporting this.

  6. Update GPL in files. The GPL header was added to the holog/MASK/*.m and misc/mk6in* scripts and removed from fserver/tests/convey.*.

  7. Remove usage of system() call to find help files (closes #40 & #3). The help command no longer uses the system() to find the correct help file to display.

  8. No longer set /usr2/fs and /usr2/st to be owned by prog. This was an error in the misc/fsinstall script.

  9. Add checking for a procedure or schedule file before attempting to open it (closes #45). This change is to avoid accidentally closing an active procedure or schedule file if the new one specified in the proc=…​ or schedule=…​ commands, respectively, does not exist (or has incorrect permissions). Previously, if the files did not exist (or did not have the correct permission), the old file would be closed. Thanks to Jon Quick (HartRAO) for pointing out this inconsistency.

    The old behavior was partly a consequence of how the original file handling worked on HP-RTE systems, but is not sensible for how the SNAP commands should work. Note that this is a non-backward compatible change in how the SNAP commands behave. Previously supplying a non-existent procedure or schedule file name would cause the closure of the corresponding file. Now to close an open procedure or schedule without opening a new one, a null parameter must be supplied, i.e., proc= or schedule=. As before, the latter will not close an open schedule procedure library.

  10. Add more log header lines. Log header lines were added for uname() system information and the compile time value of the FC environment variable.

  11. Fix year wrap error message in procedure logging (closes #23). This fixed a benign and spurious error message if a log was kept open past the end of the year and any procedures that had last been logged in the previous year were executed again. Thanks to Eskil Varenius (Onsala) and Alexander Neidhardt (Wettzell) for reporting this.

  12. Fix remaining case of a closed procedure library causing a crash if there was an attempt to execute a procedure from the library was fixed. This case could happen if the schedule that was opened was named station, which would lead to the closure of an already open schedule procedure library (there cannot be station schedule procedure library since station can only be opened once).

  13. Move X resources for helpsh to ~/.Xresources. This allows the geometry and other parameter of the FS help display xterm to be controlled locally.

  14. Move unsetting of TMOUT environment variable for oper to ~/.bashrc in the default files. This allows all interactive shells to disable the time-out.

    Additionally, some settings were rearranged in ~/.bashrc to make them only apply to interactive shells (this was also done for prog and AUID accounts). This change is only relevant for stations using FSL10.

  15. Improve error logging for dbbcn. The name of the program is now correctly displayed.

  16. Improve help page for tpicd. Made it clearer that when in the no mode, data_valid=on will only start logging of tpicd data when a schedule is running and not-blocked. This behavior was inherited from the VGOS branch where accidentally leaving tpicd logging RDBE multi-cast data after closing a schedule or halting it creates a lot of extra log entries. This is probable beneficial for all back-ends.

  17. Add popen time-out feature. There is a now a -t …​ time-out option. If the command being run has a time-out feature, it is generally better to use the command’s feature. See help=sy for more details.

  18. The FS display server is now recommended for normal use. This was changed as of the beta2 release.

  19. Make fsclient honor the -n flag properly (closes #48). This eliminates opening “double” windows if fsclient is run with -n under an already running fsclient.

  20. Make fsclient ignore prompt in no-X11 mode (closes #49). If FS client is in no-X11 mode, it created a fs.prompt when instructed by the server. This change removes that behaviour, though it may cause an issue if no other clients exist to dismiss the prompt, see issue #49. If this is a problem for anyone’s use case we will need a new feature here.

  21. Add fsserver improvements and log support (includes closing #29 & #25). These changes introduce new functionality to fsserver, as well as simplifies some use cases.

    1. The first major change is that the server now only needs to use one socket when using websockets — address which start with ws:// (closes #29). The new default base URL for all fsserver streams and control channels is now:

      ws://127.0.0.1:7083

      (70 83 are decimal ASCII encoding of F and S.)

      This can be changed by editing FS_SERVER_URL_BASE in include/params.h; however, we will likely introduce command-line flag and/or environment variable to set this in the future.

      This is should be safe to expose on the network (rather than just the loop-back), but users may wish to use an HTTP(S) as a proxy to provide some authentication/authorisation.

      This was enabled by factoring out functionality spub into a reusable “buffered stream” library, which has been incorporated into fsserver. All the behaviour of streams are now managed within the fsserver process rather than an external spub instance.

    2. The second major change of this patch is the addition of the FS log to the streams available from the server (closes #25). (Previously only the “display” was available, which has a reduced time-stamp format and filters some output.)

      This is available at

      FS_SERVER_URL_BASE/log

      that is, by default

      ws://127.0.0.1:7083/log
    3. A third change is that the server now continues running after the FS is terminated. This allows clients to detect the FS termination and prevents a socket conflict if the FS is terminated and restarted in quick succession. The only user visible impact will be a slight delay if the FS is restarted quickly after termination while the old session is finishing up. This also means, after an FS upgrade, it’s important to either shutdown the server (fsserver stop) or restart the system.

    4. Fourth, the server can now accept snap commands to be sent to FS, e.g.:

      fsserver fs snap "terminate"

      This allows clients to interact with the FS directly through fsserver rather than needing access to inject_snap.

      No filtering or authorisation is implemented on this command channel, so it effectively allows complete command execution privileges in the FS context to anyone with access to the socket. Note this is also true for inject_snap on a standard system. If a station wishes to limit local access they can use iptables/nftables, or use the server in UNIX socket mode and use file system permissions. Stations that would like to enable remote access should implement their own authentication/authorisation that suits their needs, e.g. SSH port forwarding or HTTP proxying.

    5. Finally, this patch also upgrades the included messaging library nng to version 1.3.0, which brings with it some performance improvements and bug fixes, the most obvious to FS users caused some ssub instances in “wait” mode to use a high amount of CPU time.

  22. Eliminate cls_chk error from inject_snap -w …​ command when an error occurs (partly closes #50). This was caused by inject_snap not implementing the new linkage that was added for fserr. This is covered in issue #50. To correctly retrieve the error message would have required making a new interface to fserr or subsuming it into library routine that both ddout and inject_snap could use. It was not possible to do either in the available time. Instead inject_snap was modified to output the error without the message, but pointing out that the message can be found in the log and display. Thanks to Dave Horsley (Hobart) for reporting this.

  23. Fix labels in gnplt windows that display the gain curve coefficients (closes #51). Previously the labels, when displayed were in reverse order. In one window, there were no coefficient labels at all. Thanks to Beppe Maccaferri (Medicina) for reporting this and testing the solution.

  24. Improve holog/MASK. The elevation spacing was corrected for the example in step (3), using holog.m. Axis titles were added to plot_mask.m.

  25. Fix onoff for the DBBC3 rack (closes #52). A code block from 9.12.13 in onoff/get_samples.c had been omitted, preventing sampling of the TPI values and causing onoff to crash. Thanks to Eskil Varenius (Onsala) for reporting that this caused a crash.

  26. Add support for DBBC3 to if=cont_cal,…​ (closes #54). Thanks to Eskil Varenius (Onsala) for reporting that this was missing.

  27. Update help pages for onoff and fivpt. Added a section on switching between continuous and non-continuous cal. Removed if=cont_cal,, in calon/off-nf/fp procedures. Add recovery method for misconfigured cal.

  28. Always check for day 248 problem in setcl (closes #56). Previously setcl only checked for the day 248 problem (due to use of 32-bit arithmetic in the time handling code), if the time model was not computer. In principle, when the model is computer there is no need to check for this issue. However, since the time is still managed with the same 32-bit arithmetic as for the non-computer models, it is still necessary to check. Not doing so was an oversight. The result was that there were no warnings of an impending 248 day time problem if the model was computer. This is now fixed. Thanks to Richard Blaauw (WSRT), and subsequently Jon Quick (HartRAO) for reporting this.

  29. Change the flags for the monX programs in clpgm.ctl from a to d. Since they do not depend on the FS, they can continue running after the client is closed.

  30. Generalize the scnch window to cover Mark 5 recorders (closes #61). The scnch window was initially developed for Mark 6 recorders. The form has now been generalized to cover Mark 5 recorders as wekk

  31. Update misc/release_model.txt. The release steps were clarified.

  32. Improve update notes.

    1. The -q option was added to the pull to suppress the detached HEAD warning.

    2. A sentence was added to the description of the change to using git that it now even more important to not change the contents of the /usr2/fs source tree. Changing the source tree will make it harder to install bug fixes and updates.

    3. The paths to the example control files now include the needed intermediate directory fs/.

    4. The sub-steps for updating the control files were corrected to properly depend or not depend on the old version being 9.12.12.

    5. A sub-step was added to make using the FS display server the default.

    6. A sub-step was added for updating the ~/.Xresources file for oper and prog.

    7. A sub-step to update where the TMOUT environment variable is unset for stations using FSL10 was added.

    8. A recommendation was added to sign-up for the go language announcements to be informed of security updates if you are installing the latest version of go language.

3.4. Details of drudg changes

  1. Fix uninitialized variables. Several previously uninitialized variables are now initialized. As part of this implicit none was added to all FORTRAN routines that did not have it before, except for xat.f.

  2. Fix missing preob when EARLY start non-zero. This was broken in the implementation of staggered start for FS 9.13.0 and has been restored.

  3. Add support for additional wait at the end of recording for broadband. This allows schedules to include a fixed amount of additional wait for buffering per station. This seems to be needed for Mark 6 recorders in configurations that otherwise would require no buffer time for disks that are slower than nominal.

  4. Update comment on line three of .snp files. Previously at the end of line, the number of passes and the tape length were listed. Since there is no tape support, these fields were replaced with the recorder type.