Bug#459257: lsb-release reports testing/unstable mix as unstable

2008-04-08 Thread David R. Hedges
I'm in this same situation as well. I checked out the source, and it 
appears to be designed this way.


This information is coming from running apt-cache policy and is parsed 
as explained by this comments:

   # If the user has multiple releases we should
   # only return the 'newest'.

   # Unstable is always the 'newest'

It's my opinion that this behavior is wrong, and if it's going to 
continue to use apt-cache policy (instead of /etc/debian_version or 
something), it should be based off the highest priority [for c=main, 
which is already enforced]. I think maybe it should also enforce 
label=Debian, so we're not parsing the Debian-Security repositories, too.


I've attached a patch that addresses these issues, and changes the 
behavior how I've noted I feel it should behave.


-David R. Hedges

---

[EMAIL PROTECTED]:~$ apt-cache policy
Package files:
100 /var/lib/dpkg/status
release a=now
990 http://security.debian.org lenny/updates/contrib Packages
release v=None,o=Debian,a=testing,l=Debian-Security,c=contrib
origin security.debian.org
990 http://security.debian.org lenny/updates/main Packages
release v=None,o=Debian,a=testing,l=Debian-Security,c=main
origin security.debian.org
500 http://ftp.us.debian.org unstable/main Packages
release o=Debian,a=unstable,l=Debian,c=main
origin ftp.us.debian.org
990 http://ftp.us.debian.org lenny/main Packages
release o=Debian,a=testing,l=Debian,c=main
origin ftp.us.debian.org
Pinned packages:

[EMAIL PROTECTED]:~$ /usr/bin/lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:Debian GNU/Linux unstable (sid)
Release:unstable
Codename:   sid

[EMAIL PROTECTED]:~$ ./lsb-3.1/lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:Debian GNU/Linux testing (lenny)
Release:testing
Codename:   lenny
--- /usr/bin/lsb_release2007-07-25 08:49:12.0 -0500
+++ ./lsb_release   2008-04-08 19:41:18.0 -0500
@@ -127,48 +127,26 @@
 return data
 
 def guess_release_from_apt(origin='Debian', component='main',
-   ignoresuites=('experimental')):
+   ignoresuites=('experimental'),
+   label='Debian'):
 releases = parse_apt_policy()
 
 if not releases:
 return None
 
-# We only care about the specified origin and component
+# We only care about the specified origin, component, and label
 releases = [x for x in releases if (
 x[1].get('origin', '') == origin and
-x[1].get('component', '') == component)]
+x[1].get('component', '') == component and
+x[1].get('label', '') == label)]
 
 releases.sort()
 releases.reverse()
 
-# If the user has multiple releases we should
-# only return the 'newest'.
+# We've sorted the list by descending priority, so the first entry should
+# be the main release in use on the system
 
-# Unstable is always the 'newest'
-for (pri, rinfo) in releases:
-if rinfo.get('suite', '') == 'unstable':
-return rinfo
-# After it goes testing
-for (pri, rinfo) in releases:
-if rinfo.get('suite', '') == 'testing':
-return rinfo
-
-# Finally, find the highest numeric value
-highestrelease = 0
-for (pri, rinfo) in releases:
-if rinfo.get('suite', '') not in ignoresuites:
-version = RELEASE_CODENAME_LOOKUP.get(unknown, rinfo.get('suite',''))
-if version  highestrelease:
-highestrelease = version
-
-# And return it
-for (pri, rinfo) in releases:
-if rinfo.get('suite', '') not in ignoresuites:
-version = RELEASE_CODENAME_LOOKUP.get(unknown, rinfo.get('suite',''))
-if version == highestrelease:
-return rinfo
-
-return None
+return releases[0][1]
 
 def guess_debian_release():
 distinfo = {'ID' : 'Debian'}


Bug#459257: lsb-release reports testing/unstable mix as unstable

2008-01-04 Thread Philippe Cloutier
Package: lsb-release
Version: 3.1-24
Severity: minor

lsb-release outputs

No LSB modules are available.
Distributor ID: Debian
Description:Debian GNU/Linux unstable (sid)
Release:unstable
Codename:   sid

on a testing/unstable mix (with only 2 packages from unstable).

--- System information. ---
Architecture: i386
Kernel:   Linux 2.6.22-3-686

Debian Release: lenny/sid
  990 testing security.debian.org 
  990 testing debian.ift.ulaval.ca 

--- Package information. ---
Depends   (Version) | Installed
===-+-===
python  | 2.4.4-6




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]