Devuan bug report logs - #468
python platform.linux_distribution() returns debian

version graph

Package: libpython2.7-minimal; Maintainer for libpython2.7-minimal is (unknown); Source for libpython2.7-minimal is src:python2.7.

Reported by: peter@pwduffy.org.uk

Date: Thu, 21 May 2020 15:48:01 UTC

Severity: normal

Found in version 2.7.13

Done: Mark Hindley <mark@hindley.org.uk>

Full log


🔗 View this message in rfc822 format

MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
X-Loop: owner@bugs.devuan.org
From: "Devuan bug Tracking System" <owner@bugs.devuan.org>
To: Mark Hindley <mark@hindley.org.uk>
Subject: bug#468: marked as done (python platform.linux_distribution()
 returns debian)
Message-ID: <handler.468.D468.167458068215557.ackdone@bugs.devuan.org>
References: <Y9ASvbMAw0lc6BV7@hindley.org.uk>
 <1590075215.2942.97.camel@baldur.shiftshaper.org.uk>
X-Devuan-PR-Message: closed 468
X-Devuan-PR-Package: libpython2.7-minimal
Reply-To: 468@bugs.devuan.org
Date: Tue, 24 Jan 2023 17:20:02 +0000
Content-Type: multipart/mixed; boundary="----------=_1674580802-15641-0"
[Message part 1 (text/plain, inline)]
Your message dated Tue, 24 Jan 2023 17:17:49 +0000
with message-id <Y9ASvbMAw0lc6BV7@hindley.org.uk>
and subject line Re: bug#468: python platform.linux_distribution() returns debian
has caused the Devuan bug report #468,
regarding python platform.linux_distribution() returns debian
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.devuan.org
immediately.)


-- 
468: https://bugs.devuan.org/cgi/bugreport.cgi?bug=468
Devuan Bug Tracking System
Contact owner@bugs.devuan.org with problems
[Message part 2 (message/rfc822, inline)]
From: Peter Duffy <peter@pwduffy.org.uk>
To: submit@bugs.devuan.org
Subject: python platform.linux_distribution() returns debian
Date: Thu, 21 May 2020 16:33:35 +0100
Package: libpython2.7-minimal
Version: 2.7.13

Environment in which bug seen: Devuan 2.1 (ascii)

Problem behaviour: python function platform.linux_distribution() returns
"debian" instead of "devuan"

To reproduce: 

(from command-line):
python

(from python prompt):
import platform
platform.linux_distribution()

(should return: "('debian','9','')"

quit()

Test fix:

platform.linux_distribution() tries to use the file /etc/lsb-release.
This doesn't appear to exist either in Debian stretch or Devuan ascii -
unless it's present in a package which isn't included in the default
install. Creating it with appropriate values fixes the problem:

Check whether /etc/lsb-release exists: it shouldn't, - but if so,
rename it (and rename it back after the test).

lsb_release -a > /etc/lsb-release

Edit /etc/lsb-release and change as follows:

"Distributor ID: " => "DISTRIB_ID="
"Description: " => "DISTRIB_DESCRIPTION="
"Release: "     => "DISTRIB_RELEASE="
"Codename: "    => "DISTRIB_CODENAME="

Above test should now return: "('Devuan','2.1','ascii')"

Additional information:

The problem is apparently caused by the combination of the absence
of /etc/lsb-release, and the presence of /etc/debian_release. The
algorithm in platform.linux_distribution() is apparently to try
reading /etc/lsb-release, and if it doesn't exist, look for any file
matching /etc/*_(version|release)

The bug also exists in python3 (package libpython3.5-minimal, version
3.5.3) - to reproduce, repeat the above test using "python3" instead of
"python"

The bug also exists in beowulf

Not sure whether above "fix" is feasible in practice - maybe other
python-based packages rely on getting back "debian" from
platform.linux_distribution()?

This problem came to light because it breaks the waagent package -
because it believes that it's running on debian, waagent tries to use
systemd-based commands and functions. I'm currently working this
problem, but I'm approaching it by putting in place internal tests to
ascertain whether debian or devuan, rather than relying on a
system-level fix. 

platform.linux_distribution() is deprecated and slated for removal

If it's decided that this can be safely fixed by
creating /etc/lsb-release, one question needs answering: whether to
lowercase the DISTRIB_ID field, or to leave it as returned by
lsb_release
[Message part 3 (message/rfc822, inline)]
From: Mark Hindley <mark@hindley.org.uk>
To: peter@pwduffy.org.uk, 468-done@bugs.devuan.org
Subject: Re: bug#468: python platform.linux_distribution() returns debian
Date: Tue, 24 Jan 2023 17:17:49 +0000
Peter,

I am going to close this as libpython2.7-minimal was removed from Debian[1] and
the python3 platform library doesn't have linux_distribution().

Mark

[1]  https://bugs.debian.org/1027108

Send a report that this bug log contains spam.


Devuan BTS -- Powered by Debian bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.

Devuan Bugs Owner <owner@bugs.devuan.org>.
Last modified: Sat Apr 27 21:32:12 2024;