From 5347d4d4fcdd4ec53aa272ca208d837f395baaef Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Wed, 9 Apr 2025 13:22:20 -0700 Subject: [PATCH] distro: detect debian for OS_FAMILY for LMDE 6 (#84941) Fixes: #84934 Signed-off-by: Abhijeet Kasurde --- changelogs/fragments/distro_LMDE_6.yml | 4 ++ .../module_utils/facts/system/distribution.py | 7 +-- .../system/distribution/fixtures/lmde_6.json | 44 +++++++++++++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 changelogs/fragments/distro_LMDE_6.yml create mode 100644 test/units/module_utils/facts/system/distribution/fixtures/lmde_6.json diff --git a/changelogs/fragments/distro_LMDE_6.yml b/changelogs/fragments/distro_LMDE_6.yml new file mode 100644 index 00000000000..212f09de837 --- /dev/null +++ b/changelogs/fragments/distro_LMDE_6.yml @@ -0,0 +1,4 @@ +--- +bugfixes: + - distro - add support for Linux Mint Debian Edition (LMDE) (https://github.com/ansible/ansible/issues/84934). + - distro - detect Debian as os_family for LMDE 6 (https://github.com/ansible/ansible/issues/84934). diff --git a/lib/ansible/module_utils/facts/system/distribution.py b/lib/ansible/module_utils/facts/system/distribution.py index 473ccc99497..bd9dacd438f 100644 --- a/lib/ansible/module_utils/facts/system/distribution.py +++ b/lib/ansible/module_utils/facts/system/distribution.py @@ -319,7 +319,7 @@ class DistributionFiles: def parse_distribution_file_Debian(self, name, data, path, collected_facts): debian_facts = {} - if 'Debian' in data or 'Raspbian' in data: + if any(distro in data for distro in ('Debian', 'Raspbian')): debian_facts['distribution'] = 'Debian' release = re.search(r"PRETTY_NAME=[^(]+ \(?([^)]+?)\)", data) if release: @@ -398,6 +398,8 @@ class DistributionFiles: if version: debian_facts['distribution_version'] = version.group(1) debian_facts['distribution_major_version'] = version.group(1).split('.')[0] + elif 'LMDE' in data: + debian_facts['distribution'] = 'Linux Mint Debian Edition' else: return False, debian_facts @@ -515,7 +517,7 @@ class Distribution(object): 'EuroLinux', 'Kylin Linux Advanced Server', 'MIRACLE'], 'Debian': ['Debian', 'Ubuntu', 'Raspbian', 'Neon', 'KDE neon', 'Linux Mint', 'SteamOS', 'Devuan', 'Kali', 'Cumulus Linux', - 'Pop!_OS', 'Parrot', 'Pardus GNU/Linux', 'Uos', 'Deepin', 'OSMC'], + 'Pop!_OS', 'Parrot', 'Pardus GNU/Linux', 'Uos', 'Deepin', 'OSMC', 'Linux Mint Debian Edition'], 'Suse': ['SuSE', 'SLES', 'SLED', 'openSUSE', 'openSUSE Tumbleweed', 'SLES_SAP', 'SUSE_LINUX', 'openSUSE Leap', 'ALP-Dolomite', 'SL-Micro', 'openSUSE MicroOS'], @@ -571,7 +573,6 @@ class Distribution(object): distribution_facts.update(dist_file_facts) distro = distribution_facts['distribution'] - # look for a os family alias for the 'distribution', if there isnt one, use 'distribution' distribution_facts['os_family'] = self.OS_FAMILY.get(distro, None) or distro diff --git a/test/units/module_utils/facts/system/distribution/fixtures/lmde_6.json b/test/units/module_utils/facts/system/distribution/fixtures/lmde_6.json new file mode 100644 index 00000000000..267bab92942 --- /dev/null +++ b/test/units/module_utils/facts/system/distribution/fixtures/lmde_6.json @@ -0,0 +1,44 @@ +{ + "name": "Linux Mint Debian Edition 6", + "distro": { + "codename": "faye", + "id": "linuxmint", + "name": "LMDE", + "version": "6", + "version_best": "6", + "lsb_release_info": {}, + "os_release_info": { + "pretty_name": "LMDE 6 (faye)", + "name": "LMDE", + "version_id": "6", + "version": "6 (faye)", + "version_codename": "faye", + "id": "linuxmint", + "home_url": "https://www.linuxmint.com/", + "support_url": "https://forums.linuxmint.com/", + "bug_report_url": "http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/", + "privacy_policy_url": "https://www.linuxmint.com/", + "id_like": "debian", + "debian_codename": "bookworm", + "codename": "faye", + "release_codename": "faye" + } + }, + "input": { + "/etc/os-release": "PRETTY_NAME=\"LMDE 6 (faye)\"\nNAME=\"LMDE\"\nVERSION_ID=\"6\"\nVERSION=\"6 (faye)\"\nVERSION_CODENAME=faye\nID=linuxmint\nHOME_URL=\"https://www.linuxmint.com/\"\nSUPPORT_URL=\"https://forums.linuxmint.com/\"\nBUG_REPORT_URL=\"http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/\"\nPRIVACY_POLICY_URL=\"https://www.linuxmint.com/\"\nID_LIKE=debian\nDEBIAN_CODENAME=bookworm\n", + "/usr/lib/os-release": "PRETTY_NAME=\"LMDE 6 (faye)\"\nNAME=\"LMDE\"\nVERSION_ID=\"6\"\nVERSION=\"6 (faye)\"\nVERSION_CODENAME=faye\nID=linuxmint\nHOME_URL=\"https://www.linuxmint.com/\"\nSUPPORT_URL=\"https://forums.linuxmint.com/\"\nBUG_REPORT_URL=\"http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/\"\nPRIVACY_POLICY_URL=\"https://www.linuxmint.com/\"\nID_LIKE=debian\nDEBIAN_CODENAME=bookworm\n" + }, + "platform.dist": [ + "linuxmint", + "6", + "faye" + ], + "result": { + "distribution": "Linux Mint Debian Edition", + "distribution_version": "6", + "distribution_release": "faye", + "distribution_major_version": "6", + "os_family": "Debian" + }, + "platform.release": "6.1.0-12-amd64" +}