* [PATCH 00/27] Improve ABI documentation generation
@ 2025-02-10 10:17 Mauro Carvalho Chehab
2025-02-10 10:17 ` [PATCH 04/27] ABI: sysfs-class-rfkill: fix kernelversion tags Mauro Carvalho Chehab
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2025-02-10 10:17 UTC (permalink / raw)
To: Linux Doc Mailing List
Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel,
Jonathan Corbet, Guilherme G. Piccoli, Chao Yu, Jaegeuk Kim,
James Clark, Johannes Berg, Mike Leach, Suzuki K Poulose,
Tony Luck, bpf, coresight, linux-arm-kernel, linux-f2fs-devel,
linux-hardening, linux-wireless
Hi Jon/Greg,
This series replace get_abi.pl with a Python version.
I originally started it due to some issues I noticed when searching for
ABI symbols. While I could just go ahead and fix the already existing
script, I noticed that the script maintainance didn't have much care over
all those years, probably because it is easier to find Python programmers
those days.
Also, the code is complex and was not using modules or classes and
were using lots of global variables.
So, I decided to rewrite it in Python. I started with a manual conversion
for each function. Yet, to avoid future maintainership issues, I opted to
divide the main code on three classes, each on a sepaparate file.
Just like the original RFC, I opted to keep the Sphinx kernel-abi module
on three different phases:
- call get_abi.py as an exec file;
- import AbiParser on a minimal integration scenario;
- cleanup the code to avoid needing to parse line numbers from the text.
This way, if something goes wrong, it would be easier to just revert any
offending patches, It also provides a better rationale about what each
logical change is doing.
The initial patches on this series do some preparation work and
cleans some ABI symbol bugs that lack ":" delimiter.
I opted to place on this series the Sphinx and Python version updates.
I still have ~10 patches here with additional cleanups, from the original
series I sent as RFC but let's get the main changes merged first.
Mauro Carvalho Chehab (27):
docs: sphinx: remove kernellog.py file
docs: sphinx/kernel_abi: adjust coding style
docs: admin-guide: abi: add SPDX tags to ABI files
ABI: sysfs-class-rfkill: fix kernelversion tags
ABI: sysfs-bus-coresight-*: fix kernelversion tags
ABI: sysfs-driver-dma-idxd: fix date tags
ABI: sysfs-fs-f2fs: fix date tags
ABI: sysfs-power: fix a what tag
scripts/documentation-file-ref-check: don't check perl/python scripts
scripts/get_abi.py: add a Python tool to generate ReST output
scripts/get_abi.py: add support for symbol search
docs: use get_abi.py for ABI generation
scripts/lib/abi/abi_parser.py: optimize parse_abi() function
scripts/lib/abi/abi_parser.py: use an interactor for ReST output
docs: sphinx/kernel_abi: use AbiParser directly
docs: sphinx/kernel_abi: reduce buffer usage for ABI messages
docs: sphinx/kernel_abi: properly split lines
scripts/get_abi.pl: Add filtering capabilities to rest output
scripts/get_abi.pl: add support to parse ABI README file
docs: sphinx/kernel_abi: parse ABI files only once
docs: admin-guide/abi: split files from symbols
docs: sphinx/automarkup: add cross-references for ABI
docs: sphinx/kernel_abi: avoid warnings during Sphinx module init
scripts/lib/abi/abi_parser.py: Rename title name for ABI files
scripts/lib/abi/abi_parser.py: make it backward-compatible with Python
3.6
scripts/get_abi.py: add support for undefined ABIs
scripts/get_abi.pl: drop now obsoleted script
Documentation/ABI/removed/sysfs-class-rfkill | 2 +-
Documentation/ABI/stable/sysfs-class-rfkill | 12 +-
.../ABI/stable/sysfs-driver-dma-idxd | 4 +-
.../testing/sysfs-bus-coresight-devices-cti | 78 +-
.../testing/sysfs-bus-coresight-devices-tpdm | 52 +-
Documentation/ABI/testing/sysfs-fs-f2fs | 4 +-
Documentation/ABI/testing/sysfs-power | 2 +-
.../admin-guide/abi-obsolete-files.rst | 7 +
Documentation/admin-guide/abi-obsolete.rst | 6 +-
Documentation/admin-guide/abi-readme-file.rst | 6 +
.../admin-guide/abi-removed-files.rst | 7 +
Documentation/admin-guide/abi-removed.rst | 6 +-
.../admin-guide/abi-stable-files.rst | 7 +
Documentation/admin-guide/abi-stable.rst | 6 +-
.../admin-guide/abi-testing-files.rst | 7 +
Documentation/admin-guide/abi-testing.rst | 6 +-
Documentation/admin-guide/abi.rst | 17 +
Documentation/sphinx/automarkup.py | 47 +
Documentation/sphinx/kernel_abi.py | 162 ++-
Documentation/sphinx/kerneldoc.py | 14 +-
Documentation/sphinx/kernellog.py | 22 -
Documentation/sphinx/kfigure.py | 81 +-
scripts/documentation-file-ref-check | 2 +-
scripts/get_abi.pl | 1103 -----------------
scripts/get_abi.py | 214 ++++
scripts/lib/abi/abi_parser.py | 628 ++++++++++
scripts/lib/abi/abi_regex.py | 234 ++++
scripts/lib/abi/helpers.py | 38 +
scripts/lib/abi/system_symbols.py | 378 ++++++
29 files changed, 1830 insertions(+), 1322 deletions(-)
create mode 100644 Documentation/admin-guide/abi-obsolete-files.rst
create mode 100644 Documentation/admin-guide/abi-readme-file.rst
create mode 100644 Documentation/admin-guide/abi-removed-files.rst
create mode 100644 Documentation/admin-guide/abi-stable-files.rst
create mode 100644 Documentation/admin-guide/abi-testing-files.rst
delete mode 100644 Documentation/sphinx/kernellog.py
delete mode 100755 scripts/get_abi.pl
create mode 100755 scripts/get_abi.py
create mode 100644 scripts/lib/abi/abi_parser.py
create mode 100644 scripts/lib/abi/abi_regex.py
create mode 100644 scripts/lib/abi/helpers.py
create mode 100644 scripts/lib/abi/system_symbols.py
--
2.48.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 04/27] ABI: sysfs-class-rfkill: fix kernelversion tags
2025-02-10 10:17 [PATCH 00/27] Improve ABI documentation generation Mauro Carvalho Chehab
@ 2025-02-10 10:17 ` Mauro Carvalho Chehab
2025-02-10 18:30 ` [PATCH 00/27] Improve ABI documentation generation Jonathan Corbet
2025-03-27 21:58 ` [f2fs-dev] " patchwork-bot+f2fs
2 siblings, 0 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2025-02-10 10:17 UTC (permalink / raw)
To: Linux Doc Mailing List
Cc: Mauro Carvalho Chehab, Jonathan Corbet, Mauro Carvalho Chehab,
Johannes Berg, linux-kernel, linux-wireless
Some kernelversion tags are missing colons. Add them to comply with
ABI description and produce right results when converted to html/pdf.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
Documentation/ABI/removed/sysfs-class-rfkill | 2 +-
Documentation/ABI/stable/sysfs-class-rfkill | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/Documentation/ABI/removed/sysfs-class-rfkill b/Documentation/ABI/removed/sysfs-class-rfkill
index f25174eafd55..20cb688af173 100644
--- a/Documentation/ABI/removed/sysfs-class-rfkill
+++ b/Documentation/ABI/removed/sysfs-class-rfkill
@@ -4,7 +4,7 @@ For details to this subsystem look at Documentation/driver-api/rfkill.rst.
What: /sys/class/rfkill/rfkill[0-9]+/claim
Date: 09-Jul-2007
-KernelVersion v2.6.22
+KernelVersion: v2.6.22
Contact: linux-wireless@vger.kernel.org
Description: This file was deprecated because there no longer was a way to
claim just control over a single rfkill instance.
diff --git a/Documentation/ABI/stable/sysfs-class-rfkill b/Documentation/ABI/stable/sysfs-class-rfkill
index 037979f7dc4b..67b605e3dd16 100644
--- a/Documentation/ABI/stable/sysfs-class-rfkill
+++ b/Documentation/ABI/stable/sysfs-class-rfkill
@@ -16,7 +16,7 @@ Description: The rfkill class subsystem folder.
What: /sys/class/rfkill/rfkill[0-9]+/name
Date: 09-Jul-2007
-KernelVersion v2.6.22
+KernelVersion: v2.6.22
Contact: linux-wireless@vger.kernel.org
Description: Name assigned by driver to this key (interface or driver name).
Values: arbitrary string.
@@ -24,7 +24,7 @@ Values: arbitrary string.
What: /sys/class/rfkill/rfkill[0-9]+/type
Date: 09-Jul-2007
-KernelVersion v2.6.22
+KernelVersion: v2.6.22
Contact: linux-wireless@vger.kernel.org
Description: Driver type string ("wlan", "bluetooth", etc).
Values: See include/linux/rfkill.h.
@@ -32,7 +32,7 @@ Values: See include/linux/rfkill.h.
What: /sys/class/rfkill/rfkill[0-9]+/persistent
Date: 09-Jul-2007
-KernelVersion v2.6.22
+KernelVersion: v2.6.22
Contact: linux-wireless@vger.kernel.org
Description: Whether the soft blocked state is initialised from non-volatile
storage at startup.
@@ -44,7 +44,7 @@ Values: A numeric value:
What: /sys/class/rfkill/rfkill[0-9]+/state
Date: 09-Jul-2007
-KernelVersion v2.6.22
+KernelVersion: v2.6.22
Contact: linux-wireless@vger.kernel.org
Description: Current state of the transmitter.
This file was scheduled to be removed in 2014, but due to its
@@ -67,7 +67,7 @@ Values: A numeric value.
What: /sys/class/rfkill/rfkill[0-9]+/hard
Date: 12-March-2010
-KernelVersion v2.6.34
+KernelVersion: v2.6.34
Contact: linux-wireless@vger.kernel.org
Description: Current hardblock state. This file is read only.
Values: A numeric value.
@@ -81,7 +81,7 @@ Values: A numeric value.
What: /sys/class/rfkill/rfkill[0-9]+/soft
Date: 12-March-2010
-KernelVersion v2.6.34
+KernelVersion: v2.6.34
Contact: linux-wireless@vger.kernel.org
Description: Current softblock state. This file is read and write.
Values: A numeric value.
--
2.48.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 00/27] Improve ABI documentation generation
2025-02-10 10:17 [PATCH 00/27] Improve ABI documentation generation Mauro Carvalho Chehab
2025-02-10 10:17 ` [PATCH 04/27] ABI: sysfs-class-rfkill: fix kernelversion tags Mauro Carvalho Chehab
@ 2025-02-10 18:30 ` Jonathan Corbet
2025-02-10 20:27 ` Mauro Carvalho Chehab
2025-03-27 21:58 ` [f2fs-dev] " patchwork-bot+f2fs
2 siblings, 1 reply; 5+ messages in thread
From: Jonathan Corbet @ 2025-02-10 18:30 UTC (permalink / raw)
To: Mauro Carvalho Chehab, Linux Doc Mailing List
Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel,
Guilherme G. Piccoli, Chao Yu, Jaegeuk Kim, James Clark,
Johannes Berg, Mike Leach, Suzuki K Poulose, Tony Luck, bpf,
coresight, linux-arm-kernel, linux-f2fs-devel, linux-hardening,
linux-wireless
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes:
> Hi Jon/Greg,
>
> This series replace get_abi.pl with a Python version.
>
> I originally started it due to some issues I noticed when searching for
> ABI symbols. While I could just go ahead and fix the already existing
> script, I noticed that the script maintainance didn't have much care over
> all those years, probably because it is easier to find Python programmers
> those days.
>
> Also, the code is complex and was not using modules or classes and
> were using lots of global variables.
>
> So, I decided to rewrite it in Python. I started with a manual conversion
> for each function. Yet, to avoid future maintainership issues, I opted to
> divide the main code on three classes, each on a sepaparate file.
>
> Just like the original RFC, I opted to keep the Sphinx kernel-abi module
> on three different phases:
>
> - call get_abi.py as an exec file;
> - import AbiParser on a minimal integration scenario;
> - cleanup the code to avoid needing to parse line numbers from the text.
>
> This way, if something goes wrong, it would be easier to just revert any
> offending patches, It also provides a better rationale about what each
> logical change is doing.
>
> The initial patches on this series do some preparation work and
> cleans some ABI symbol bugs that lack ":" delimiter.
>
> I opted to place on this series the Sphinx and Python version updates.
>
> I still have ~10 patches here with additional cleanups, from the original
> series I sent as RFC but let's get the main changes merged first.
OK, I have applied this set - it seems to work for me, though it does
lead to some changes in the organization of
Documentation/admin-guide/abi.html in the output.
It would be nice if, eventually, we could put the README link up at the
top rather than under "ABI file", or even just include its contents
there directly.
Anyway, let's see how this goes :)
Thanks,
jon
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/27] Improve ABI documentation generation
2025-02-10 18:30 ` [PATCH 00/27] Improve ABI documentation generation Jonathan Corbet
@ 2025-02-10 20:27 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2025-02-10 20:27 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Linux Doc Mailing List, linux-kernel, Guilherme G. Piccoli,
James Clark, Johannes Berg, Mike Leach, Suzuki K Poulose,
Tony Luck, bpf, coresight, linux-arm-kernel, linux-f2fs-devel,
linux-hardening, linux-wireless
Em Mon, 10 Feb 2025 11:30:46 -0700
Jonathan Corbet <corbet@lwn.net> escreveu:
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes:
>
> > Hi Jon/Greg,
> >
> > This series replace get_abi.pl with a Python version.
> >
> > I originally started it due to some issues I noticed when searching for
> > ABI symbols. While I could just go ahead and fix the already existing
> > script, I noticed that the script maintainance didn't have much care over
> > all those years, probably because it is easier to find Python programmers
> > those days.
> >
> > Also, the code is complex and was not using modules or classes and
> > were using lots of global variables.
> >
> > So, I decided to rewrite it in Python. I started with a manual conversion
> > for each function. Yet, to avoid future maintainership issues, I opted to
> > divide the main code on three classes, each on a sepaparate file.
> >
> > Just like the original RFC, I opted to keep the Sphinx kernel-abi module
> > on three different phases:
> >
> > - call get_abi.py as an exec file;
> > - import AbiParser on a minimal integration scenario;
> > - cleanup the code to avoid needing to parse line numbers from the text.
> >
> > This way, if something goes wrong, it would be easier to just revert any
> > offending patches, It also provides a better rationale about what each
> > logical change is doing.
> >
> > The initial patches on this series do some preparation work and
> > cleans some ABI symbol bugs that lack ":" delimiter.
> >
> > I opted to place on this series the Sphinx and Python version updates.
> >
> > I still have ~10 patches here with additional cleanups, from the original
> > series I sent as RFC but let's get the main changes merged first.
>
> OK, I have applied this set - it seems to work for me, though it does
> lead to some changes in the organization of
> Documentation/admin-guide/abi.html in the output.
Yes. I moved the files part to separate files, as IMHO this would
make easier for people to navigate.
> It would be nice if, eventually, we could put the README link up at the
> top rather than under "ABI file",
Moving its position is not hard: all we need to do is to change abi.rst
file. See the enclosed patch.
> or even just include its contents
> there directly.
>
> Anyway, let's see how this goes :)
>
> Thanks,
>
> jon
Thanks,
Mauro
From e1b864d1d333d94430420d1d6fc15ea7d8a99b4b Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Date: Mon, 10 Feb 2025 21:24:06 +0100
Subject: [PATCH] docs: ABI: move README contents to the top
The ABI documentation looks a little bit better if it starts
with the contents of the README is placed at the beginning.
Suggested-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
diff --git a/Documentation/admin-guide/abi-readme-file.rst b/Documentation/admin-guide/abi-readme-file.rst
deleted file mode 100644
index 6172e4ccbda2..000000000000
--- a/Documentation/admin-guide/abi-readme-file.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0
-
-ABI README
-==========
-
-.. kernel-abi:: README
diff --git a/Documentation/admin-guide/abi.rst b/Documentation/admin-guide/abi.rst
index 15a2dcb1388c..2067336353ae 100644
--- a/Documentation/admin-guide/abi.rst
+++ b/Documentation/admin-guide/abi.rst
@@ -4,6 +4,11 @@
Linux ABI description
=====================
+ABI README
+==========
+
+.. kernel-abi:: README
+
ABI symbols
-----------
@@ -21,7 +26,6 @@ ABI files
.. toctree::
:maxdepth: 2
- abi-readme-file
abi-stable-files
abi-testing-files
abi-obsolete-files
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [f2fs-dev] [PATCH 00/27] Improve ABI documentation generation
2025-02-10 10:17 [PATCH 00/27] Improve ABI documentation generation Mauro Carvalho Chehab
2025-02-10 10:17 ` [PATCH 04/27] ABI: sysfs-class-rfkill: fix kernelversion tags Mauro Carvalho Chehab
2025-02-10 18:30 ` [PATCH 00/27] Improve ABI documentation generation Jonathan Corbet
@ 2025-03-27 21:58 ` patchwork-bot+f2fs
2 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+f2fs @ 2025-03-27 21:58 UTC (permalink / raw)
To: Mauro Carvalho Chehab
Cc: linux-doc, tony.luck, corbet, james.clark, suzuki.poulose,
linux-wireless, linux-kernel, linux-f2fs-devel, gpiccoli,
linux-hardening, coresight, johannes, bpf, linux-arm-kernel,
mike.leach
Hello:
This patch was applied to jaegeuk/f2fs.git (dev)
by Jonathan Corbet <corbet@lwn.net>:
On Mon, 10 Feb 2025 11:17:49 +0100 you wrote:
> Hi Jon/Greg,
>
> This series replace get_abi.pl with a Python version.
>
> I originally started it due to some issues I noticed when searching for
> ABI symbols. While I could just go ahead and fix the already existing
> script, I noticed that the script maintainance didn't have much care over
> all those years, probably because it is easier to find Python programmers
> those days.
>
> [...]
Here is the summary with links:
- [f2fs-dev,07/27] ABI: sysfs-fs-f2fs: fix date tags
https://git.kernel.org/jaegeuk/f2fs/c/90800df0da78
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-03-27 21:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-10 10:17 [PATCH 00/27] Improve ABI documentation generation Mauro Carvalho Chehab
2025-02-10 10:17 ` [PATCH 04/27] ABI: sysfs-class-rfkill: fix kernelversion tags Mauro Carvalho Chehab
2025-02-10 18:30 ` [PATCH 00/27] Improve ABI documentation generation Jonathan Corbet
2025-02-10 20:27 ` Mauro Carvalho Chehab
2025-03-27 21:58 ` [f2fs-dev] " patchwork-bot+f2fs
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).