[issue6983] Add specific get_platform() for freebsd
Stef Walter added the comment: Shrug. I guess you can close it. This is still a bothersome issue, but we've taken to patching every version of python downstream before deploying them. All for a simple three line patch. -- ___ Python tracker <http://bugs.python.org/issue6983> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6983] Add specific get_platform() for freebsd
Stef Walter added the comment: Good plan. So the issue is: * Platform specific eggs are built containing a path that has the full patch level of the freebsd kernel, like "8.2-RELEASE-p2". The "-p2" part is updated for every security patch of FreeBSD. * Thus when you apply a security patch to FreeBSD, platform specific eggs built for that version of FreeBSD (before the security patch was applied) are no longer considered compatible. FYI, FreeBSD has an unwritten policy of keeping all 8.x releases backwards compatible with one another. So platform specific eggs built for 8.1 would work without inherent problems on 8.2 or 8.3. But at the very least, platform specific eggs should not be dependent on the patch level of the FreeBSD kernel. On 11/20/2011 03:38 PM, Éric Araujo wrote: > > Éric Araujo added the comment: > >> This is still a bothersome issue, but we've taken to patching every version >> of python >> downstream before deploying them. All for a simple three line patch. > > Sorry about the unsatisfactory situation. Could we start anew and define > exactly what the problem is, so that distutils2 can be free of it? (I’m > afraid distutils can’t be changed: even undocumented, the platform string > used for FreeBSD is certainly used by tools out there that we don’t want to > break. I second the suggestion to bring up the issue to the projects > responsible for eggs, i.e. setuptools and distribute, not distutils.) > > -- > > ___ > Python tracker > <http://bugs.python.org/issue6983> > ___ -- ___ Python tracker <http://bugs.python.org/issue6983> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6983] Add specific get_platform() for freebsd
New submission from Stef Walter : In Lib/distutils/util.py in the get_platform() function there's OS specific code to create a string which describes the current platform. This usually includes the OS + version + arch. FreeBSD specific code is missing from this function. Currently get_platform() returns a string specific to the security patch level of freebsd. For example: freebsd-7.2-RELEASE-p3-i386 This results in eggs that only work on a specific patch level release of FreeBSD and are not portable between (for example) 7.2-RELEASE-p2 and 7.2-RELEASE-p3. However FreeBSD is actually binary compatible within a major version number. For example 7.1 and 7.2 are binary compatible. This patch adds freebsd specific code to get_platform() after which it will return a string like: freebsd-7-i386 -- assignee: tarek components: Distutils files: patch-python-distutils-osrel.diff keywords: patch messages: 93050 nosy: stefw, tarek severity: normal status: open title: Add specific get_platform() for freebsd type: behavior versions: Python 2.4, Python 2.5, Python 2.6, Python 2.7 Added file: http://bugs.python.org/file14961/patch-python-distutils-osrel.diff ___ Python tracker <http://bugs.python.org/issue6983> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6983] Add specific get_platform() for freebsd
Stef Walter added the comment: I agree with your comments, and the solution you're proposing solves the problem (and several others) for the long term. However in the short term, could this patch be committed? Most other OS's (including openbsd and netbsd) have OS specific code in get_platform(). FreeBSD is notably missing from that function. Obviously this would not preclude work on a better all encompassing solution. -- ___ Python tracker <http://bugs.python.org/issue6983> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6983] Add specific get_platform() for freebsd
Stef Walter added the comment: Other OSs have special cases in get_platform() to specifically limit the amount of code, and make proper decisions with regard to package compatibility. Here's an example this commit for Mac OS X: http://svn.python.org/view? view=rev&revision=67988 It was discussed here at this issue: http://bugs.python.org/issue4064 Another example is how linux has no version information at all (ie: linux-i586). Perhaps this is why the easy_install authors thought their package system worked. They only tested it on linux? Yes I agree that obviously this cannot be changed for 2.6. But it would be great to get this code in for python 2.7 Anyway, this is ultimately your call, since I don't have the 50,000 foot view over the entire situation. FWIW, I've had to patch python in a very large set of client installations. This patch has become a routine in order to unbreak python wrt to platform dependent packages. -- ___ Python tracker <http://bugs.python.org/issue6983> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6983] Add specific get_platform() for freebsd
Stef Walter added the comment: Marc-Andre Lemburg wrote: > Is that binary compatibility scheme documented somewhere ? Not sure, it's been referred to and adhered to many times in the FreeBSD community, but I'm not sure where it's documented. I'll ask around on the FreeBSD mailing lists and post my findings here. FWIW, the freebsd kernel and package system have options specifically for compatibility with previous major versions. ie: FreeBSD 8 has COMPAT_FREEBSD7 and COMPAT_FREEBSD6 kernel options, and has misc/compat7x and misc/compat6x libraries available for install. But again, I'll let you know for sure. >> FWIW, I've had to patch python in a very large set of client >> installations. This patch has become a routine in order to unbreak >> python wrt to platform dependent packages. > > Since this only affects easy_install/setuptools, it's probably > easier to just create a patched egg for that and then use it > with the normal Python installation. True, I could give that a shot. -- ___ Python tracker <http://bugs.python.org/issue6983> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6983] Add specific get_platform() for freebsd
Stef Walter added the comment: About FreeBSD ABI compatibility between minor versions: Julian Elischer wrote: > It is a policy of the project but I don't think our policies are > written down as such. I think you will find it referenced in > many places in a sideways manner rather than directly. http://docs.freebsd.org/cgi/getmsg.cgi?fetch=141507+0+current/freebsd- hackers -- ___ Python tracker <http://bugs.python.org/issue6983> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com