Skip to content

docs: deprecate RTAI-kernel-only hardware drivers, fix stale manpage trap - #4513

Open
grandixximo wants to merge 4 commits into
LinuxCNC:masterfrom
grandixximo:rtai-driver-deprecate
Open

docs: deprecate RTAI-kernel-only hardware drivers, fix stale manpage trap#4513
grandixximo wants to merge 4 commits into
LinuxCNC:masterfrom
grandixximo:rtai-driver-deprecate

Conversation

@grandixximo

Copy link
Copy Markdown
Contributor

Closes the docs side of #4505.

The ten RTAI-kernel-only drivers (hal_stg, hal_motenc, hal_vti, hal_evoreg, hal_ax5214h, opto_ac5, pci_8255, pcl720, pluto_servo, pluto_step) have not been built on uspace since 2014. The user poll on the forum and emc-developers found zero users with the hardware: the only pci_8255 respondent turned out to use plain parport, and Vital Systems reports no Motenc cards remaining and none known in use.

Three commits:

  1. build: wipe generated manpage tree on clean. clean-manpages removed manpages by $(GENERATED_MANPAGES) list, which depends on BUILD_SYS, so kbuild-only driver manpages survived forever on uspace trees. gen_complist.py then generated links for them locally that CI never produces (the discrepancy hdiethelm hit in ci: Enable fail on htmlcheck error #4471). Everything under docs/build/man is generated, so wipe the tree.
  2. docs: deprecate the RTAI-kernel-only hardware drivers. Deprecation warning on the five driver pages, the opto_ac5 manpage, and the comp-embedded docs of pcl720/pluto_servo/pluto_step; components.adoc gets the seven missing rows and all ten are marked "deprecated, RTAI kernel builds only"; changelog entry. No removal version is named; if a user with hardware appears, the driver can still be ported to uspace.
  3. build: stop building hal_skeleton. It is a code template, not hardware support. The source stays as a reference.

Verified: full build plus htmldocs pass, all ten warnings render, stale pluto_servo.9/pcl720.9 files get wiped by clean.

If a maintainer with Pluto-P hardware shows up, the uspace port is still possible (the comp compiles on uspace today), but the FPGA firmware is unmaintainable since Jeff Epler's 2013 maintainer call found no takers.

GENERATED_MANPAGES depends on BUILD_SYS, so removing manpages by list
leaves stale files behind on uspace trees (e.g. the kbuild-only driver
manpages pluto_servo.9, pluto_step.9, pcl720.9).  gen_complist.py then
picks up the stale files and generates links to manpages the current
build configuration cannot produce, making local doc builds diverge
from CI.

Everything under docs/build/man is generated (halcompile output,
asciidoctor output from docs/src/man, alias pages, translations), so
wipe the whole tree in both clean-manpages and genclean.
These drivers only build for RTAI kernels and have never been
available in uspace builds (the only builds current users run):

  hal_stg, hal_motenc, hal_vti, hal_evoreg, hal_ax5214h,
  opto_ac5, pci_8255, pcl720, pluto_servo, pluto_step

They serve ISA/PCI/parport cards from the early 2000s.  The poll on
the forum and emc-developers found one pci_8255 user on a legacy
install (unaffected by removal from master) and Vital Systems
reported no Motenc cards remaining and none known in use.

Mark them deprecated in the driver docs, the component list, the
opto_ac5 manpage, and the comp-embedded docs of pcl720, pluto_servo
and pluto_step, and note the deprecation in the changelog.  Removal
is intentionally not tied to a specific release.  If a user with
hardware shows up, the driver can still be ported to uspace; see
LinuxCNC#4505
hal_skeleton is not a hardware driver but John Kasunich's code
template for writing new drivers.  It only builds on kbuild (RTAI),
is never loaded by any config, and the source file stays in the tree
as a reference.
Comment thread src/hal/drivers/pcl720.comp Outdated
Comment thread src/hal/drivers/pluto_servo.comp Outdated
Comment thread src/hal/drivers/pluto_step.comp Outdated
Comment thread docs/src/drivers/ax5214h.adoc Outdated
Comment thread docs/src/hal/components.adoc Outdated
Comment thread debian/changelog
Comment on lines +9 to +14
[ Luca Toniolo ]
* Deprecate the RTAI-kernel-only hardware drivers (hal_stg, hal_motenc,
hal_vti, hal_evoreg, hal_ax5214h, opto_ac5, pci_8255, pcl720,
pluto_servo, pluto_step). They are not built for uspace and will be
removed in a future release.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is quite a lone addition. There is a list ...very... long that should have been added here. What reasoning is behind this that it must now be added to the Debian changelog?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kept, because this is exactly the audience that matters for a deprecation. Users do not read driver doc pages until something breaks, but people scanning the release notes do read the changelog. A deprecation that only lives in the docs of the deprecated thing itself is invisible until it is too late. If the changelog is the wrong channel, where should release-level deprecations go?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but people scanning the release notes do read the changelog

Optimist?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just trying to be as loud as I can about the deprecation, I think is better to have it than not?

- Use admonition blocks instead of one-line WARNING paragraphs
- Drop the troff .SH markup from the comp descriptions, plain text
  is enough and the descriptions are asciidoc now
- Do not add the seven never-listed drivers to components.adoc;
  keep the deprecation marker only on the three existing rows
  (opto_ac5, pluto_servo, pluto_step)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants