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
-
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:
-
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.
-
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.
-
-
There were two changes to the clpgm.ctl control file:
-
The flags for the monX programs in clpgm.ctl have changed from
a
tod
.Please check the file to see if those lines are present. If so, and the second field is
a
, please change it tod
for each occurrence. -
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
-
-
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
-
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.
NoteThe 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
-
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.
-
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.
-
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:
-
Move certain commands within ~/.bashrc so they are only used by interactive shells.
-
Move
unset TMOUT
from ~/.profile to ~/.bashrc. -
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).
-
-
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
-
Improve fesh (includes closing #34). More details.
-
Update example equip.ctl (includes closing #35). More details.
-
Fix some error messages (includes closing #43 & #22). More details.
-
Improve plog. More details.
-
Restore
if
command. More details. -
Update GPL in files. More details.
-
Remove usage of
system()
call to find help file_(closes #40 & #3). More details. -
No longer set /usr2/fs and /usr2/st to be owned by prog. More details.
-
Add checking for a procedure or schedule file before attempting to open it (closes #45). More details.
-
Add more log header lines. More details.
-
Fix year wrap error message in procedure logging (closes #23). More details.
-
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.
-
Move X resources for helpsh to ~/.Xresources. More details.
-
Move unsetting of
TMOUT
environment variable for oper to ~/.bashrc in the default files. More details. -
Improve error logging for dbbcn. More details.
-
Improve
help
page for tpicd. More details. -
Add
popen
time-out feature. More details. -
The FS display server is now recommended for normal use. More details.
-
Make fsclient honor the
-n
flag properly (closes #48). More details. -
Make fsclient ignore prompt in no-X11 mode (closes #49). More details.
-
Add fsserver improvements and log support (includes closing #29 & #25). More details.
-
Eliminate
cls_chk
error frominject_snap -w …
command when an error occurs (partly closes #50). More details. -
Fix labels in gnplt windows that display the gain curve coefficients (closes #51). More details.
-
Improve holog/MASK. More details.
-
Fix onoff for the DBBC3 rack (closes #52). More details.
-
Add support for DBBC3 to
if=cont_cal,…
(closes #54). More details. -
Update
help
pages for onoff and fivpt. More details. -
Always check for day 248 problem in setcl (closes #56). More details.
-
Change the flags for the monX programs in clpgm.ctl from
a
tod
. More details. -
Generalize the scnch window to cover Mark 5 recorders (closes #61). More details.
-
Update misc/release_model.txt. More details.
-
Improve update notes. More details.
3.2. Summary of drudg changes
drudg opening message date is 2020Jun30
.
-
Fix uninitialized variables. More details.
-
Fix missing
preob
whenEARLY
start non-zero. More details. -
Add support for additional wait at the end of recording for broadband. More details.
-
Update comment on line three of .snp files. More details.
3.3. Details of FS changes
-
Improve fesh (includes closing #34).
-
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.
-
The internal version number was replaced with the FS version.
-
-
Update example equip.ctl (includes closing #35).
-
The example DBBC3 firmware version is now more sensible (closes #35). Thanks to Eskil Varenius (Onsala) for reporting this.
-
The minimum DBBC3 firmware version required was added in a comment.
-
-
Fix some error messages (includes closing #43 & #22).
-
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. -
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. -
Error messages that should refer to the (not yet implemented)
active_rdbes
andactive_mk6s
commands were corrected to no longer incorrectly refer to therdbe_active
andmk5_active
commands, respectively. -
Obsolete errors for the, no longer used, sw.ctl control file were removed.
-
-
-
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 seeplog -h
for details on how to use this. -
The internal version number was replaced with the FS version.
-
-
Restore
if
command. It had accidentally been overlooked in beta1. Thanks to Beppe Maccaferri (Medicina) for reporting this. -
Update GPL in files. The GPL header was added to the holog/MASK/*.m and misc/mk6in* scripts and removed from fserver/tests/convey.*.
-
Remove usage of
system()
call to findhelp
files (closes #40 & #3). Thehelp
command no longer uses thesystem()
to find the correcthelp
file to display. -
No longer set /usr2/fs and /usr2/st to be owned by prog. This was an error in the misc/fsinstall script.
-
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=…
orschedule=…
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=
orschedule=
. As before, the latter will not close an open schedule procedure library. -
Add more log header lines. Log header lines were added for
uname()
system information and the compile time value of theFC
environment variable. -
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.
-
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).
-
Move X resources for helpsh to ~/.Xresources. This allows the geometry and other parameter of the FS
help
display xterm to be controlled locally. -
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.
-
Improve error logging for dbbcn. The name of the program is now correctly displayed.
-
Improve
help
page for tpicd. Made it clearer that when in theno
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. -
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. Seehelp=sy
for more details. -
The FS display server is now recommended for normal use. This was changed as of the beta2 release.
-
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. -
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.
-
Add fsserver improvements and log support (includes closing #29 & #25). These changes introduce new functionality to fsserver, as well as simplifies some use cases.
-
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
andS
.)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.
-
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
-
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. -
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.
-
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.
-
-
Eliminate
cls_chk
error frominject_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. -
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.
-
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.
-
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.
-
Add support for DBBC3 to
if=cont_cal,…
(closes #54). Thanks to Eskil Varenius (Onsala) for reporting that this was missing. -
Update
help
pages for onoff and fivpt. Added a section on switching between continuous and non-continuous cal. Removedif=cont_cal,,
incalon
/off
-nf
/fp
procedures. Add recovery method for misconfigured cal. -
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 iscomputer
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 wascomputer
. This is now fixed. Thanks to Richard Blaauw (WSRT), and subsequently Jon Quick (HartRAO) for reporting this. -
Change the flags for the monX programs in clpgm.ctl from
a
tod
. Since they do not depend on the FS, they can continue running after the client is closed. -
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
-
Update misc/release_model.txt. The release steps were clarified.
-
-
The
-q
option was added to thepull
to suppress the detached HEAD warning. -
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.
-
The paths to the example control files now include the needed intermediate directory fs/.
-
The sub-steps for updating the control files were corrected to properly depend or not depend on the old version being 9.12.12.
-
A sub-step was added to make using the FS display server the default.
-
A sub-step was added for updating the ~/.Xresources file for oper and prog.
-
A sub-step to update where the
TMOUT
environment variable is unset for stations using FSL10 was added. -
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
-
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. -
Fix missing
preob
whenEARLY
start non-zero. This was broken in the implementation of staggered start for FS 9.13.0 and has been restored. -
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.
-
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.