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:
-
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
-
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
andtar
commands, use the short SHA for the commit. For example, for commit under discussion here,0fd7297690a7e13395665b350b432dd2322c21fc
, use0fd72976
. -
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.
-
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
andLPRC2
(orLSKD
orLPRC
) tonone
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 theschedule/
andproc/
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.
-
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 thetrue
andfalse
commands swapped. Additionally, embedded spaces are no longer supported and a second colon,:
, is now considered part of the schedule name. -
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 thestation
procedure library:if=cont_cal,,ifagc if=cont_cal,,if=ddc\,bbc_gain=all\\\,agc
-
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 withrename '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.NoteIf you don’t have the (perl based) rename command, you can install it on FSLx systems as root with apt-get install rename
. -
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).
-
-
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. -
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
-
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 anun 2
(and ultimately abo -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.
-
-
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. -
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 subsequentsatellite=…
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.
-
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 inpostob
.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.
-
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.
-
-
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 therdbe=
andrdbex=
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.
-
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=…
) forall
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. -
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
. -
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).
-
Add detector device
none
to thefivept
andonoff
commands for exercising/testing an antenna without a signal chain.Details
Normally, the
fivept
andonoff
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 withacquire
by using devicenone
in thefivept
andonoff
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 thehelp
pages forfivept
andonoff
as a reminder. -
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.
-
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 linewx
. Information on using the popen program can be found fromhelp=sy
.Thanks to J. Quick (HartRAO) for conceiving, and providing an implementation, of this change,
-
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. -
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.
-
Improve recovery for loss of an open log file.
Details
-
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
inode
s 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=…
orschedule=…
) when theinode
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.WarningThe 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:
-
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 includeO_APPEND
in the flags foropen()
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:
-
If an existing log file is owned by a different user (perhaps prog), the attributes can’t be changed.
-
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.
-
-
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 includingS_ISGID
. It should set the mode of an existing file that it opens to includeS_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 itssetgid
bit.There are four minor drawbacks to this approach:
-
If an existing log file is owned by a different user (perhaps prog), the
setgid
bit can’t be set/cleared. -
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. -
Mandatory file locking is not considered reliable, but the example cases where there may be problems do not seem relevant to this use.
-
Although not deprecated, it seems as though mandatory file locking may be headed to extinction.
-
-
-
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. -
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).
-
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
-
-
-
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 themake install
was executed a second time after an initial installation. This might happen, for example, ifmake 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 theinstall
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 formake install
.Thanks to Jon Quick (HartRAO) for reporting this issue.
Two further enhancement were made:
-
make install
can only be used by root andinstall
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.
-
-
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. -
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
-
-
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.
CautionFor 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.
-
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. -
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 theschedule
andproc
commands, respectively. Also, in pfmed's preamble, thecurrent FS schedule procedure library
was shown asnone
. This came about because the FS usednone
internally when there was no active file. This was inconsistent and could be confusing becausenone
was also an allowed name for schedules and schedule procedure libraries. This was corrected by making the following changes:-
A string of spaces is now used internally to indicate no file is use.
-
The
schedule
andproc
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. -
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.
-
The
if=schedule:…
command was updated to no longer usenone
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. Seehelp=if
for more information on theif
command. -
pfmed was updated to agree with the changes above. This included making the
current FS schedule procedure library
in the preamble displayno library is selected
when there is none. -
Some other small incidental improvements were made to pfmed:
-
Empty input at the main prompt no longer prints an obscure error message before re-prompting.
-
The check of the length of a second library name in
pfxx,…
commands is now correct. It was still eight characters. -
The length of the optional
library
in thest,…[::library],…
command is now checked. It wasn’t before.
-
-
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:
-
If any station software compares the shared memory variables
LSKD2
andLPRC2
(orLSKD
orLPRC
) tonone
to determine that no schedule or schedule procedure library is active, the comparison(s) will need to be changed to use spaces. -
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 theschedule/
andproc/
output. -
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 thetrue
andfalse
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. -
-
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 to600
and then1200
. 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 list100
and600
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, commit7c26ea900dee19b01958e5c4ad846b89d64638c5
) 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. -
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.
-
-
Improve web documents
Details
-
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.
-
Add examples for non-breaking spaces and hyphens to the Font Conventions.
-
Miscellaneous wording and typographic corrections were made to the 10.2 documents
-
3.2. drudg changes
There are no drudg changes yet.