Skip to content

Commit

Permalink
Update anaconda variables source
Browse files Browse the repository at this point in the history
Anaconda IsFinal property use to be processed out of ANACONDA_ISFINAL
environmental variable. This commit changes this behaviour to use
RELEASE_TYPE variable out of /etc/os-release instead.

Related change in Fedora spec file:
- https://src.fedoraproject.org/rpms/fedora-release/pull-request/347

Resolves: INSTALLER-4068
  • Loading branch information
elkoniu committed Feb 1, 2025
1 parent eb0aca5 commit 72a2c20
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
13 changes: 12 additions & 1 deletion pyanaconda/core/product.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,18 @@ def get_product_values():
# .buildstamp, environment, stupid last ditch hardcoded defaults.
config = configparser.ConfigParser()
config.add_section("Main")
config.set("Main", "IsFinal", os.environ.get("ANACONDA_ISFINAL", "false"))

# Get IsFinal property from /etc/os-release file
with open('/etc/os-release') as file:
for line in file:
key, value = line.split('=')
value = value.strip()
if key == 'RELEASE_TYPE':
if value == 'release' or value == 'stable':
config.set("Main", "IsFinal", str(True))
else:
config.set("Main", "IsFinal", str(False))

config.set("Main", "Product", os.environ.get("ANACONDA_PRODUCTNAME", "anaconda"))
config.set("Main", "Version", os.environ.get("ANACONDA_PRODUCTVERSION", "bluesky"))

Expand Down
11 changes: 10 additions & 1 deletion tests/unit_tests/pyanaconda_tests/core/test_product.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,16 @@ def test_buildstamp_multiple(self, mock_cfp_open):
@patch("pyanaconda.core.product.configparser.open", side_effect=FileNotFoundError)
def test_env(self, mock_cfp_open):
"""Test product values loaded from environment variables."""
values = get_product_values()
# ANACONDA_ISFINAL variable is processed out of /etc/os-release host file
FAKE_OS_RELEASE = """\
NAME="Fedora Linux"
VERSION="41 (Workstation Edition)"
RELEASE_TYPE=stable
ID=fedora
"""
m = mock_open(read_data=FAKE_OS_RELEASE)
with patch("builtins.open", m):
values = get_product_values()
expected = ProductData(True, "TestProduct", "rawhide", "testproduct")
assert values == expected

Expand Down

0 comments on commit 72a2c20

Please sign in to comment.