1. Introduction

The document covers updating from FS 10.2 to the latest commit on its branch. The latest commit is experimental. We make every effort to keep the latest commit usable, but any commit that is not tagged for release is not intended for operations. The intended use of this document is to collect update information, as it becomes available, before the next release.

Important
Commits that are not tagged for release may have significant issues including: not building, crashing, and incompatibilities with operational observation schedule files. Such commits are intended for testing only. Let the user beware.
Caution
It is expected that those using the latest commit are experts and will manage the differences for updating to the next official release themselves. No specific documentation will be provided. What commit was last updated to will determine what needs to be done. It might work to verify that all the steps in the official release update notes were completed. However, that may not be complete. Let the user beware.

This document is up to date with the 0fd7297690a7e13395665b350b432dd2322c21fc (0fd72976) commit. Due to small increments, such as updating this document, that may not be the literal last commit, but the differences should be small unless you happen to pull between a significant change and this document being updated.

2. Upgrading from 10.2 to the latest commit

You must have already upgraded to 10.2.0 according to the FS 10.2 Update Notes document before installing this update.

2.1. Fetch the latest commit

There are two alternatives:

  1. If you are using FSL9, FSL10, FSL11, or another system that supports connections to github and you are using git (as is recommended) then as prog execute:

    cd /usr2/fs-git
    git fetch
    git checkout -q 0fd72976
  2. If you are using FSL8, or otherwise unable to use git:

    Please follow the steps, through the step that includes the option to set the /usr2/fs link, in the Installing from an archive subsection in the Release Model document. Please note that:

    • For FSL8, you will need the TIP in the wget step.

    • For the tag in the wget and tar commands, use the short SHA for the commit. For example, for commit under discussion here, 0fd7297690a7e13395665b350b432dd2322c21fc, use 0fd72976.

    • After extracting the archive, change the name of the output directory to use the latest feature release and the short SHA of the commit, like fs-10.2.0-66-0fd72976 (note the g before the short SHA), which will then be used in the following cd command. For example (Tab completion is your friend for the long SHA):

      cd /usr2
      mv fs-0fd7297690a7e13395665b350b432dd2322c21fc fs-10.2.0-66-g0fd72976
      cd /usr2/fs-10.2.0-66-g0fd72976
    • You will end the “installing from an archive” with the step setting the link for /usr2/fs by running make install.

2.2. Make the FS

As prog:

cd /usr2/fs
make clean rmdoto rmexe all >& /dev/null
make -s

No output from the last command indicates a successful make.

2.3. Update your station code.

Except if noted otherwise, these steps should all be performed as prog. Click on the Details toggle in each item for the needed steps.

  1. If your station code depends on none indicating that no schedule and/or no schedule procedure file are in use, you need to make changes. Most stations, possibly all, won’t need to make any changes.

    Details

    There are two situations in which local code will need to be updated:

    • If it compares the shared memory variables LSKD2 and LPRC2 (or LSKD or LPRC) to none to determine that no schedule or schedule procedure library is active, the comparison(s) will need to be changed to use spaces.

    • If it filters the log (or display) output to determine if no schedule or schedule procedure library is active, it will need to be changed to accept a null field (i.e., empty, not even spaces), instead of none in the schedule/ and proc/ output.

2.4. Make the station software

The layout of some variables in shared memory has changed. Even if you have not updated your station code, you should re-make it to be safe. If /usr2/st/Makefile is set-up in the standard way, you can do this with (as prog):

cd /usr2/st
make rmdoto rmexe all

2.5. Reboot

This step is not needed at this time.

Important
This will make sure shared memory is reallocated.

2.6. Additional steps

Except if noted otherwise, these should all be performed as oper. Click on the Details toggle in each item for the needed steps.

  1. If your SNAP procedures use the if=schedule:none…​ command to test for no schedule being active, you need to make changes. Most stations, possibly all, won’t need to make any changes.

    Details

    If the if=schedule:none…​ command is used to determine that no schedule is active, the :none will need to be removed and the true and false commands swapped. Additionally, embedded spaces are no longer supported and a second colon, :, is now considered part of the schedule name.

  2. For DBBC(2) and DBBC3 stations, make sure that the AGC is restored after scans for legacy calibration.

    Details

    Add the following to postob in the station procedure library:

    if=cont_cal,,ifagc
    if=cont_cal,,if=ddc\,bbc_gain=all\\\,agc
  3. Optionally, update the comments in your .rxg files to correctly show the correct maximum number of Tcal table entries allowed.

    Details

    A script, /usr2/fs/misc/rxgfix4, has been provided for this. If the original version of the affected comments have been preserved, they will be updated to the new form. Only the comments immediately before the active Tcal entries will be updated.

    Execute:

    cd /usr2/control/rxg_files
    /usr2/fs/misc/rxgfix4 *.rxg

    If the script stops because there are existing .bak files, you can delete them, if it is safe to do so, by adding the -d option (see /usr2/fs/misc/rxgfix4 -h for the details) to the command before the files to be updated. If it is not safe to delete them, you could, for example, rename them to end in .bak2 with rename 's/.bak$/.bak2/' *.rxg.bak first. The rename command, by default, will not overwrite existing files, but you might want to check that your new ending is not already in use for some .rxg backup files to avoid possibly mixing different “generations” of backups.

    Note
    If you don’t have the (perl based) rename command, you can install it on FSLx systems as root with apt-get install rename.
  4. Optionally, add the new day-of-year aliases. dj and lj, to your shells.

    Details

    Execute the commands for all the shells that you use, typically just your login shell:

    • bash — The default login shell for FSL10 and FSL11 (and possibly later):

      cd ~
      tail -2 /usr2/fs/st.default/oper/.bash_aliases >>.bask_aliases
    • tcsh — The default login shell for FSL8 and FSL9:

      cd ~
      tail -2 /usr2/fs/st.default/oper/.cshrc >>.cshrc

    You will need to exit any active shell (including possibly logging out and back and in again) to make the aliases active.

    You may also wish to make these changes for prog (and any AUID accounts).

  5. Optionally, install the fsy utility for use with the display server to conditionally start the client if the FS is already running.

    Details

    To install this script, execute:

    cp /usr2/fs/misc/fsy cd ~oper/bin

    If you are using a remote connection and would like to open a new window to run the FS (or client) in, comment out the “normal” if clause and uncomment the command for a new window. In either case, if you use AUID accounts, you must promote to oper before running the script.

  6. Optionally, update the check_ntp SNAP procedure for the new, simpler, standard.

    Details

    The updated /usr2/fs/misc/ntp.txt file describes the new form and how to install the needed scripts, all in sections 6a and 6e. Please use those directions as a guide if you want to update.

3. Changes since 10.2.0

There are separate subsections below with summaries of the changes in the FS and drudg.

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 from within the FS git working directory, usually /usr2/fs-git.

Each change is listed as a numbered summary typically followed by a “Details” toggle, like:

Details

Details are shown here.

that can be clicked on to toggle showing (or not showing) a collapsible box with the details. In this way, you can view the summary as a list and only reveal the details of items that interest you. The collapsible box may be omitted if providing further details didn’t seem warranted. The collapsible boxes for the details may also have nested collapsible boxes inside them if there are many sub-items.

3.1. FS changes

  1. Fix bug in the terminate command (closing #226).

    Details

    Sometimes the terminate command would incorrectly not, in fact, terminate the FS when using the display server. Instead it would give an un    2 (and ultimately a bo -176) error. This happened when the FS was checking to make sure autoftp and fs.prompt weren’t active. Workarounds were:

    • Trying terminate again. More than one try may have been needed.

    • Using terminate=force. That should have worked in all cases (except pfmed being active), but would defeat the check for autoftp and fs.prompt being active. So it had to be used with care.

    This bug was triggered by a process file disappearing from /proc/ after it was found in the directory and before it was opened for reading to see if it was for an instance of autoftp or fs.prompt. There was usually only a very small time window in which this could happen. The code was aware of this case, but there was a bug in how it was handled.

  2. Fix bug in the display server shim for xterm on FSL11, restoring use of autoftp (closing #218).

    Details

    The conversion to python3 for FSL11 (bullseye) missed fsserver/shims/xterm. As a result, it was not possible on FSL11 systems to use autoftp (or sy=xterm …​, which should be avoided anyway). The simple fix for this was to make separate python2 and python3 versions, like the other python scripts in FS 10.2. This bug only occurred for FSL11 systems.

  3. Fix bug in the satellite=…​ command that prevented temporary TLE files from being closed (closing #220).

    Details

    When cleaning up at the end of processing, satellite=…​ commands were not closing the temporary TLE files. As a result, if many of the commands were used in a single invocation of the FS, the limit on the number of open files could be reached, causing subsequent satellite=…​ commands to fail. This situation could happen, e.g., if many of the commands were used sequentially to approximate continuous tracking.

    Thanks to Jamie McCallum and David Schunck (both at Hobart) for finding this, reporting it, and providing the fix.

  4. Add missing restoration of AGC in DBBC3 postob for legacy calibration (closing #231).

    Details

    For legacy calibration, it is necessary to hold the gains fixed during a scan so that sampled TPI values can be related to the most recent Tsys measurement. At the end of the scan, the gains should be released to seek an appropriate level for the next scan. For the DBBC(2), this is done by the next mode setup. However for the DBBC3, setup_proc keyword in skedf.ctl is normally used to suppress the setup procedure for most scans. Instead, the gains can be released in postob.

    To accomplish this, the following was added to the example postob for DBBC3:

    if=cont_cal,,ifagc
    if=cont_cal,,if=ddc\,bbc_gain=all\\\,agc

    The same addition was also made for DDBC(2) since it is benign and the setup_proc keyword might be used.

    The updated example files in /usr2/fs/st.default/proc/ are d3fbstation.prc, dstation.prc, dfbstation.prc, and d5cstation.prc.

    Thanks to Christian Plötz (Wettzell) for pointing out that this was missing and Beppe Maccaferri (Medicina) for confirming the fix.

  5. Fix bug in reporting time from DBBC3 multicast (closing #224).

    Details

    This was a mostly cosmetic (but pretty unsightly) bug that occurred in certain situations. For DDC_V firmware, which does not have multicast time, it caused spurious times to be displayed. While for non-DDC_V (DDC_E/DDC_U) firmware, which does have time available, it caused the time to be suppressed. This was due to an error in FS initialization in 10.2.0. The two situations where the bug occurred were:

    • When using only DDC_V firmware, the first time the FS was run after rebooting.

    • When switching between DDC_V firmware and a non-DDC_V firmware (DDC_E/DDC_U), in either direction, the first time the FS was run after the change in equip.ctl.

    This bug did not occur if only non-DDC_V firmware was used.

    There was a fairly simple workaround for this bug. It was to terminate and restart the FS before using it, after:

    • A reboot, when only using DDC_V firmware

    • Changing equip.ctl, when switching between DDC_V firmware and a non-DDC_V firmware (DDC_E/DDC_U), in either direction.

    Thanks to J. Quick (HartRAO) for reporting this bug.

  6. Stop attempting to receive RDBE multicast messages when the selected rack type is not rdbe (closing #225).

    Details

    When the selected rack type is not rdbe it doesn’t make sense to process multicast messages from RDBEs. Before, this was only disabled if no RDBEs were defined in the rdbc<x>.ctl control files. Doing that was necessary to avoid error messages if the RDBEs were not transmitting multicast for some reason. However, having to remove the definitions when RDBEs were not in use makes it cumbersome to switch between RDBEs and other rack types. Additionally, not having the RDBEs defined disables any access to RDBEs, specifically with the rdbe= and rdbex= low-level device communication commands. Traditionally for flexibility, the FS has allowed low-level communication with devices that were not selected.

    Thanks to Javi González-García (Yebes) for reporting this oversight.

  7. Move the onoff command’s testing for valid LOs for RDBE detectors to when the onoff program is started.

    Details

    Previously when using RDBE detectors with onoff, the LOs being valid was only tested for when setting up onoff (onoff=…​) for all detectors. It was not tested for other detector selections. It is only necessary that the LOs be valid when onoff is started (onoff) and all selected detectors should be checked. That is also the time when the LO and other channel information is collected. This supports changing the configuration of the channels after onoff is setup, which is consistent with how other racks are handled.

  8. Fix bug in the reporting of the MA -104 error that caused an extraneous ( -4) to be displayed in the error message.

    Details

    The MA -104 error is a warning that there may be a 30 second delay while a possible serial line error is worked around at the start-up of matcn. The value of an argument in the call to report the error had a value of -4 instead of, the correct value, 0.

  9. Issue warning if only one processor is in use (closing #178 and #228).

    Details

    The display server requires at least two processors (cores) to operate properly. The issue occurs in server termination. Occasionally, termination occurs normally even when there is only one processor.

    Typically this problem only occurs if the FS is being run in a virtual machine with only one processor. Virtual machines can usually be reconfigured to have more processors.

    It should be possible to make it work with one processor, but that hasn’t been implemented yet. Until then, if there is only one processor available, warning messages (with hints about what to do) are printed at FS startup and when restarting fails because apparently a previous instance of the server failed to terminate.

    Thanks to Christian Plötz (Wettzell), Uwe Bach (Effelsberg) and Javi González-García (Yebes) for reporting this issue. Thanks to David Horsley (Hobart) for diagnosing the cause when it was first reported (issue #178).

  10. Add detector device none to the fivept and onoff commands for exercising/testing an antenna without a signal chain.

    Details

    Normally, the fivept and onoff commands are used to collect pointing and antenna sensitivity data, respectively. This requires some sort of signal chain and detector device. The latter is usually in the back-end rack. If no detector is available, or doesn’t produce useful radiometry data, it is now possible to exercise/test the antenna with acquire by using device none in the fivept and onoff setup commands. In this case, there will be no detector interaction.

    Sample procedure library file st.default/proc/point_no_det.prc and control file st.default/control/ctlpo_no_det.ctl are provided as examples for using none as detector. They are mentioned in the help pages for fivept and onoff as a reminder.

  11. Add rdbemsg emails to experiment log as comments (closing #213).

    Details

    Including the emails in the log avoids having to enter comments from the email messages a second time to get them into the log.

    When originally written (by Jason Soohoo, Haystack Observatory), the program that became rdbemsg did not run on FS computers and could not easily add comments to the log. Due to on oversight when the program was ported to FS computers, adding the email message to the log, as msg does, was not added. This has been corrected for both the python2 and python3 versions of rdbemsg.

    Thanks to the staff at KPGO for reporting this issue.

  12. Add -p option to popen for streamlined log output.

    Details

    The popen program is used to log the output of Linux programs. A -p option was added to replace the #popen# string at the start of log entries with / (the logging system inserts the /). This makes the log entries look like the output of internal FS commands. Its use is not necessary and is not recommended in most circumstances. However, it does look better, particularly for replacements of internal FS commands line wx. Information on using the popen program can be found from help=sy.

    Thanks to J. Quick (HartRAO) for conceiving, and providing an implementation, of this change,

  13. Restore -b startup option as -C (closing #216).

    Details

    The removal of the -b option in FS 10.2.0 was a bit too hasty. The long form of the option was --background, which suggested that it was the inverse of --foreground. This was not the case. With the server enabled, it started the FS without a client. This might be convenient to use for starting the FS from a script or otherwise without the log being displayed on the terminal. A pitfall of using it is that there is no feedback about the whether the FS started correctly or had a start-up error and aborted. As a result, this option must be used with caution.

    To make it clearer that it does not start the client, the short option was changed to -C (not client) and the long option to --no-client. The help output now includes a warning about the lack of feedback for startup errors.

    Thanks to Christian Kristukat (AGGO) for reporting the loss of functionality when the -b option was removed. Thanks to Beppe Maccaferri (Medicina) for pointing out the possible pitfall.

  14. Comment out all lines in example mdlpo.ctl and parpo.ctl files (closing #214).

    Details

    This prevents these example files being used accidentally with values that are incorrect for a new installation. Instead, the pointing analysis programs and/or antcn (while reading the default mdlpo.ctl) will fail until the files have been setup with (hopefully reasonable) values for the antenna. While this may make the first time use for a new antenna a little painful, it is better than having incorrect values being used.

  15. Improve recovery for loss of an open log file.

    Details
    1. Handle the open log file being replaced by a file that is renamed to the open log file’s name.

      Previously automatic lost log file recovery worked if either the log file open in the FS have been deleted (rm) or renamed (mv). It did not cover the case of a different file being renamed to have the name of the open file. That latter most case is now detected by comparing the inodes of the open log file and the file with the name of the open log. If they don’t agree they aren’t the same file. In that case, the open log file will be recovered to a file with _recovered appended to the original name. If a file with that name already exists, the log will instead be recovered to a file with:

      _recovered.<XXXXXX>

      appended at the original name, where <XXXXXX> is a random string, chosen by the kernel, that makes the filename unique, e.g., 3fDhIa.

      There is a consequence of this feature that may not initially appear to be intuitive. It occurs if the user was re-opening the original file (with log=…​ or schedule=…​) when the inode mismatch was discovered. In this case, new log entires will be appended to the file with the original name (regardless of what was already in it), not the recovered log file. The recovery process doesn’t know what the new (if there is one) log file’s name is, but will print a message warning about this possibility, which can occur whenever the recovery file’s name includes recovered. Will all this in mind, this may not be so unintuitive after all.

      Warning

      The case of an open log file being overwritten by copying onto it (cp) is not handled. So it is not possible to automatically recover the log in that case. It should still be possible to recover, most, if not all, of a log lost in this way using the technique described in /usr2/fs/misc/logrecovery.txt

      Two possible approaches to prevent overwriting by copying (cp) onto an open log are described in the Details collapsible box below. Neither have been implemented at this time.

      Details

      Two possible solutions to this are:

      1. Use chattr to make the open log file append only.

        The approach would be for ddout to use chattr to set attribute +a on the log file after opening to make it append only. When the log is closed, it would be changed to -a to allow the file to be used normally thereafter. It is probably necessary to include O_APPEND in the flags for open() calls in ddout in case for some reason -a was not applied (probably a crash) when a log was closed. To employ this method, it is necessary to give chattr the capability to set the append attribute (as root):

        setcap cap_linux_immutable=eip /usr/bin/chattr

        There are two minor drawbacks to this approach:

        1. If an existing log file is owned by a different user (perhaps prog), the attributes can’t be changed.

        2. If the attribute is not changed back to -a (perhaps due to a crash), the file becomes very difficult to work with (no renaming/moving, editing, compressing, etc.) until that is corrected.

      2. Use mandatory file locking to prevent overwriting of the open log file.

        In this case, the /usr2 partition must be mounted with the mand option. ddout would create new logs with a mode including S_ISGID. It should set the mode of an existing file that it opens to include S_ISGID Then it would need to lock the entire file (.l_whence = SEEK_SET; .l_start = 0, .l_len = 0) for reading (.l_type = RDLCK). When the log is closed, ddout would clear its setgid bit.

        There are four minor drawbacks to this approach:

        1. If an existing log file is owned by a different user (perhaps prog), the setgid bit can’t be set/cleared.

        2. If the setgid bit is not cleared (perhaps due to a crash), it will follow the file, including being compressed or renamed, until that is corrected.

        3. Mandatory file locking is not considered reliable, but the example cases where there may be problems do not seem relevant to this use.

        4. Although not deprecated, it seems as though mandatory file locking may be headed to extinction.

    2. Make recovery more robust.

      Previously if errors were detected while determining if the log file existed, recovery would be aborted. The code has been restructured to not give up for this case or for a problem determining the inode values. It now aborts only if an unrecoverable error occurs in the process of recopying the log contents. Making the recovery as robust as possible is prudent since this is the only chance to accomplish this.

    3. Update /usr2/fs/misc/logrecovery.txt note.

      This note provides an alternate recovery process that may be helpful if the automatic process isn’t sufficent. It has been updated to also cover more modern systems and to include more specific steps. This approach was originally suggested by Pablo de Vicente (Yebes).

    4. Make miscellaneous improvements:

      • Simplify recovery logic

      • Show recovery activity even if a percentage can’t be shown

      • Make error reports more consistent

      • Report partial recovery even if an error occurred

  16. Improve overall Makefile (closing #212).

    Details

    In FSL11, the make install command would fail if the source directory was not owned by root. While this situation would not normally occur, it could if the make install was executed a second time after an initial installation. This might happen, for example, if make install were used to reset the /usr2/fs link. The failure occurred because of a confluence of two issues: (i) git was unnecessarily used to determine the version of the FS with the install target and (ii) the version of git in FSL11, and probably later versions, will throw an error if the directory is not owned by the user. The problem was resolved by removing the use of git to determine the FS version for make install.

    Thanks to Jon Quick (HartRAO) for reporting this issue.

    Two further enhancement were made:

    • make install can only be used by root and install is the only make target allowed for root.

    • When installing from an archive, if the source directory name is incorrectly formed (missing the tag information), an explanatory error will be reported and the make will be aborted.

  17. Prevent root from running the FS.

    Details

    The FS is a user application. It is risky, and a potential security issue, to run it as root. In particular, the sy=…​ command, if misused either accidentally or on purpose, could cause serious damage. To avoid this, the FS startup program, fs, the server, fsserver, and the client program, fsclient, will refuse to run if the user is root. This is not strictly necessary for the client, but it was included for consistency. Off-line utilities, including pfmed, can still be run by root, but this is not recommended and should be avoided. It may lead to problems. However, it would not be inherently dangerous.

  18. Create shell aliases for date and ls command output with day-of-year and 24-hour time display.

    Details

    Two new shell aliases were added:

    • dj — Display the current date/time (down to the seconds) in the same format as used by FS logs as well as some additional date information. This might be useful if the day-of-year and/or 24-hour time are not readily visible elsewhere. Example output:

      Mon 2025.104.13:44:54 UTC (Apr 14)
    • lj — Display an ls -l listing with the date/time field (down to the seconds) in the same format as used by FS logs. This is intended to help associate logs with the day-of-year they were used when troubleshooting. It can be combined with other ls flags. For example, the -t flag can used and the output piped to less to show the logs, newest first, one page at a time:

      cd /usr2/log
      lj -t | less
  19. Add fsy utility for conditionally running fsclient if the FS is already active.

    Details

    This utility can be found in misc/fsy. It can installed in ~oper/bin. It will check to see if the client can be run (i.e. FS is running and display server is enabled). If not, it will start the FS. It can be useful for systems using the display server to start the FS if it is not already running or the client if it is. There is some risk associated with this since you will not get obvious feedback if the FS is not running and you expect it to be. However, you may prefer to not have to enter a separate command to run the FS if attempting to start the client (fslcient) first fails.

    The script includes commented out commands that you can use instead if you prefer to open a new window to run the FS or client in. This may be useful for some remote connections.

    Caution
    For systems with AUID accounts, it is necessary to promote oper before running the script.

    Thanks to Chevo Terrazas (MGO) for pointing out the overall usefulness of this script, which was originally only provided as a site-specific ad hoc tool.

  20. Add utilities to simplify the check_ntp SNAP procedure.

    Details

    New scripts, grep_ntpq, cname_ntpq_ip, and redact_ntpq_ip were added to simplify (i.e., make more readable and easier to maintain) the check_ntp SNAP procedure. The updated /usr2/fs/misc/ntp.txt file describes the new form and how to install the new scripts, all in sections 6a and 6e.

  21. Remove using none as the displayed name when no schedule or no schedule procedure library is in use (closing #222).

    Details

    Previously when no schedule and schedule procedure library was in use, none was displayed as the name in the output of the schedule and proc commands, respectively. Also, in pfmed's preamble, the current FS schedule procedure library was shown as none. This came about because the FS used none internally when there was no active file. This was inconsistent and could be confusing because none was also an allowed name for schedules and schedule procedure libraries. This was corrected by making the following changes:

    1. A string of spaces is now used internally to indicate no file is use.

    2. The schedule and proc commands now display the name as a null field (i.e., empty, not even spaces) when no schedule or schedule procedure library, respectively, is in use.

    3. Spaces are no longer allowed in these names. Actually, they weren’t before, but this only became apparent when the low-level RTE-A emulation file routines truncated the name at the first space and attempted to use a file with the shorter name. That might lead to a difficult to understand error message if the file didn’t exist or unexpected behavior if it did. This is now trapped at the highest level and an appropriate error message is given.

    4. The if=schedule:…​ command was updated to no longer use none as the schedule name to test if no schedule is active. The use of embedded spaces in the schedule name are no longer supported. If a second colon, :, is used, it will now be interpreted as part of the name. See help=if for more information on the if command.

    5. pfmed was updated to agree with the changes above. This included making the current FS schedule procedure library in the preamble display no library is selected when there is none.

    6. Some other small incidental improvements were made to pfmed:

      1. Empty input at the main prompt no longer prints an obscure error message before re-prompting.

      2. The check of the length of a second library name in pfxx,…​ commands is now correct. It was still eight characters.

      3. The length of the optional library in the st,…​[::library],…​ command is now checked. It wasn’t before.

    7. Additionally, a few error messages for boss were fixed to refer to schedules and schedule procedure libraries more consistently.

    The consequences of these changes for existing FS installations is fairly limited. It seems unlikely they will affect anyone, but to be complete, they are listed here:

    1. If any station software compares the shared memory variables LSKD2 and LPRC2 (or LSKD or LPRC) to none to determine that no schedule or schedule procedure library is active, the comparison(s) will need to be changed to use spaces.

    2. If any station software filters the log (or display) output to determine if no schedule or schedule procedure library is active, it will need to be changed to accept a null field (i.e., empty, not even spaces), instead of none in the schedule/ and proc/ output.

    3. If any station uses the if=schedule:none…​ command to determine that no schedule is active, they will need to remove :none from the command and swap the true and false commands. No embedded spaces are allowed, and a second colon, :, is now considered part of the schedule name.

    The positive outcome of all this is that the schedule and schedule procedure library names are now handled consistently. The use of none is not recommended for either since that may be confusing, but the behavior will now be clearer and predictable.

  22. Update comments in .rxg files for the current maximum number of Tcal table entries (closing #211).

    Details

    The comments in the example .rxg files (/usr2/fs/st.default/control/rxg_files/*.rxg) had not kept up with the expansion of the size of the Tcal table, first from 400 entries to 600 and then 1200. The files have now been updated.

    A script, /usr2/fs/misc/rxgfix4, has been provided for optional use to update the working .rxg files at station. If the original version of the comments, with 400, have been preserved, they will be updated to the new form. Only the comments immediately before the active Tcal entries will be updated. Lines that list 100 and 600 as the maximum will also be updated. The former was apparently the size in some preliminary versions before the first official release (9.6.9, September 2003, commit 7c26ea900dee19b01958e5c4ad846b89d64638c5) that supported .rxg files. The latter was never provided as an example, but is covered just in case. See /usr2/fs/misc/rxgfix4 -h for the details.

  23. Remove bad characters from ASCII files.

    Details

    A few ASCII files had non-ASCII characters in them.

    • There were UTF-8 characters in help/core3h_mode.j__ and misc/logrecover.txt. They were removed. They did not display properly on non-UTF-8 systems, principally FSL9 and earlier.

    • The extended ASCII character for angstroms (Å) was incorrectly specified in the help/lvdt.* files. It was replaced with the word.

  24. Improve web documents

    Details
    1. Add a sub-step to update the comments for rack types in equip.ctl in the FS 10.1 and FS 10.2 updates notes. Updating the comments is strictly speaking optional, but not doing so could lead to confusion later since the available DBBC3 rack types were changed in both of those updates. The previous omission of these sub-steps was an oversight.

      Thanks to J. Gonzalez (Yebes) for pointing out that these sub-steps were missing.

    2. Add examples for non-breaking spaces and hyphens to the Font Conventions.

    3. Miscellaneous wording and typographic corrections were made to the 10.2 documents

3.2. drudg changes

There are no drudg changes yet.