lib.Distro: Fix os-release and cascade macros #104

Merged
Jan Lindemann merged 1 commit from jan/fix/20260914-lib-distro-fix-os-release-and-cascade-macros into master 2026-09-14 20:29:45 +02:00 AGit

lib.Distro: Fix os-release and cascade macros

expand_macros() looks up each %{name} via getattr with '-' turned into '_', but macro_names advertises two names that don't resolve: 'os-release' has no corresponding attribute, and 'os-cascade' resolves to the list property os_cascade, which str.replace() rejects. Both macros are listed in the platform info help output, yet always fail when used in a format string.

The space-joined cascade string is the cascade property, and 'cascade' is the macro name the make recipes and scripts already use, together with the --format default in cmds/platform/CmdInfo.py.

Before the App.distro_* properties moved to Distro, the advertised macro names were derived from the distro_* attribute names, so the advertised macro was %{cascade}; the hand-written macro_names replaced it with the list attribute's name.

  • Add the missing os_release attribute as an alias of os_release_str
  • Advertise the 'cascade' macro in macro_names instead of 'os-cascade', leaving os_cascade as the purely programmatic list
  • Update the platform info help expected output accordingly
  • Add unit tests for the os-release field parsers, the derived properties, and the expansion of every advertised macro
#### lib.Distro: Fix os-release and cascade macros expand_macros() looks up each %{name} via getattr with '-' turned into '_', but macro_names advertises two names that don't resolve: 'os-release' has no corresponding attribute, and 'os-cascade' resolves to the list property os_cascade, which str.replace() rejects. Both macros are listed in the platform info help output, yet always fail when used in a format string. The space-joined cascade string is the cascade property, and 'cascade' is the macro name the make recipes and scripts already use, together with the --format default in cmds/platform/CmdInfo.py. Before the App.distro_* properties moved to Distro, the advertised macro names were derived from the distro_* attribute names, so the advertised macro was %{cascade}; the hand-written macro_names replaced it with the list attribute's name. - Add the missing os_release attribute as an alias of os_release_str - Advertise the 'cascade' macro in macro_names instead of 'os-cascade', leaving os_cascade as the purely programmatic list - Update the platform info help expected output accordingly - Add unit tests for the os-release field parsers, the derived properties, and the expansion of every advertised macro
lib.Distro: Fix os-release and cascade macros
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m34s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m30s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m30s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m16s
CI / Packaging test (push) Successful in 0s
13e6ae8807
expand_macros() looks up each %{name} via getattr with '-' turned into '_',
but macro_names advertises two names that don't resolve: 'os-release' has
no corresponding attribute, and 'os-cascade' resolves to the list property
os_cascade, which str.replace() rejects. Both macros are listed in the
platform info help output, yet always fail when used in a format string.

The space-joined cascade string is the cascade property, and 'cascade' is
the macro name the make recipes and scripts already use, together with the
--format default in cmds/platform/CmdInfo.py.

Before the App.distro_* properties moved to Distro, the advertised macro
names were derived from the distro_* attribute names, so the advertised
macro was %{cascade}; the hand-written macro_names replaced it with the
list attribute's name.

- Add the missing os_release attribute as an alias of os_release_str
- Advertise the 'cascade' macro in macro_names instead of 'os-cascade',
  leaving os_cascade as the purely programmatic list
- Update the platform info help expected output accordingly
- Add unit tests for the os-release field parsers, the derived properties,
  and the expansion of every advertised macro

Signed-off-by: Jan Lindemann <jan@janware.com>
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.85.1
Jan Lindemann scheduled this pull request to auto merge when all checks succeed 2026-09-14 20:20:36 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
janware/jw-pkg!104
No description provided.