Issue 3928: os.mknod missing on Solaris (original) (raw)

Created on 2008-09-22 09:38 by sandberg, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
mknod-solaris_3.diff jcea,2010-04-26 16:45
Messages (23)
msg73562 - (view) Author: Erik Carstensen (sandberg) Date: 2008-09-22 09:38
When building Python on Solaris, I don't get the os.mknod function. This seems to be a combination of two errors: 1. The definition of posix_mknod() in posixmodule.c is surrounded by: #if defined(HAVE_MKNOD) && defined(HAVE_MAKEDEV) It works fine if I remove the HAVE_MAKEDEV define. 2. The reason why HAVE_MAKEDEV doesn't work, is that the Python configure script only looks for makedev in <sys/types.h>, while on Solaris you need to include <sys/mkdev.h> as well. cc -V gives: cc: Sun C 5.9 SunOS_sparc Patch 124867-01 2007/07/12 uname -a gives: SunOS zelda 5.9 Generic_117171-07 sun4us sparc FJSV,GPUZC-M
msg73595 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2008-09-22 21:03
It would be best if you could contribute a patch to fix this. The source of configure is configure.in; you need autoconf to generate configure from it.
msg101007 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-13 16:29
The patch seems to be trivial. I need review, specially compiling under non-Solaris OS. I plan to commit this patch to 2.6, 2.7, 3.1 and 3.2. Must I update "NEWS"?
msg101009 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-03-13 17:07
Compiles fine under Debian stable. You shouldn't commit to 2.6 until 2.6.5 is released, though. If you want to do so, contact Barry first.
msg101010 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2010-03-13 17:08
You do need a NEWS entry.
msg101021 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-13 20:23
Please, do the final review, ready for commiting. I have asked about committing to 2.6 in the python-committers mailing list.
msg101027 - (view) Author: Barry A. Warsaw (barry) * (Python committer) Date: 2010-03-13 22:27
This will not block 2.6.5 but is a candidate for 2.6.6.
msg101060 - (view) Author: Roumen Petrov (rpetrov) * Date: 2010-03-14 19:01
Some questions: - why patch don't update posixmodule.c and remove defined(HAVE_MAKEDEV) ? - how is defined HAVE_DEVICE_MACROS in pyconfig.h About changes in configure.in - I'm not sure that they are correct (more later).
msg101115 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-15 14:19
I just did the minimal change. I don't know if removing "defined(HAVE_MAKEDEV)" is safe. "HAVE_DEVICE_MACROS" is defined if "configure" finds "makedev()" macro. Clarify your comment about configure.in changes being wrong.
msg101135 - (view) Author: Roumen Petrov (rpetrov) * Date: 2010-03-15 22:13
Jesús Cea Avión wrote: > > Jesús Cea Avión<jcea@jcea.es> added the comment: > > I just did the minimal change. I don't know if removing "defined(HAVE_MAKEDEV)" is safe. The python build system is full with minimal changes and result is a big mess. Did you found which revision add ".. defined(HAVE_MAKEDEV)" in posix*.c ? > "HAVE_DEVICE_MACROS" is defined if "configure" finds "makedev()" macro. And what is result on you platform ? > Clarify your comment about configure.in changes being wrong. Usually just adding #include will break test on platforms where xxxx is missing. The correct implementation will depend from above. Cases: 1) platform is no longer supported - it is save to remove test case from configure and defined(HAVE_MAKEDEV) from posixmodule.c 2) HAVE_DEVICE_MACROS is defined for you . Then check how is written test for HAVE_DEVICE_MACROS and make test for makedev similar. Roumen
msg101190 - (view) Author: Barry A. Warsaw (barry) * (Python committer) Date: 2010-03-16 20:50
jcea, why did you make this a release blocker for 2.6.5?
msg101232 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-17 15:34
Sorry, Barry. Don't know what happened. Probably write a followup without reloading the page and "undid" previous changes. I keep my issues permanently open in firefox tabs. I will try to be more careful.
msg101515 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-22 15:32
Roumen Petrov (rpetrov) wrote: >> >> Jesús Cea Avión<jcea@jcea.es> added the comment: >> >> I just did the minimal change. I don't know if removing "defined(HAVE_MAKEDEV)" is safe. > The python build system is full with minimal changes and result is a > big mess. Did you found which revision add ".. defined(HAVE_MAKEDEV)" > in posix*.c ? The code was added in 2002-07-30 by nnorwitz, to support OSF1 (Dec Unix). Is that platform still supported?. I don't see any related buildbot. >> "HAVE_DEVICE_MACROS" is defined if "configure" finds "makedev()" macro. > And what is result on you platform ? It is defined if I add the new "include". > Cases: > 1) platform is no longer supported - it is save to remove test case from > configure and defined(HAVE_MAKEDEV) from posixmodule.c Do we have a list of officially supported?. > 2) HAVE_DEVICE_MACROS is defined for you . Then check how is written > test for HAVE_DEVICE_MACROS and make test for makedev similar. Investigating the issue, I could say that HAVE_MAKEDEV should be deleted, but I don't have access to a OSF1 machine for trying. How should I proceed?
msg101519 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-22 16:37
My browser keeps deleting nosy. Sorry. Roumen, please read.
msg101536 - (view) Author: Roumen Petrov (rpetrov) * Date: 2010-03-22 21:24
>>> "HAVE_DEVICE_MACROS" is defined if "configure" finds "makedev()" macro. >> And what is result on you platform ? >It is defined if I add the new "include". a) Why you touch test case for "AC_MSG_CHECKING(for major, minor, and makedev) AC_TRY_LINK([ #if defined(MAJOR_IN_MKDEV) #include <sys/mkdev.h> #elif defined(MAJOR_IN_SYSMACROS) #include <sys/sysmacros.h> #else #include <sys/types.h> #endif ],[ makedev(major(0),minor(0)); ],[ AC_DEFINE(HAVE_DEVICE_MACROS, 1, [Define to 1 if you have the device macros.]) AC_MSG_RESULT(yes) ],[ AC_MSG_RESULT(no) ])" ? Sorry I did't understand why this test case fail for you. b) PEP 11 list unsupported platforms and OSF1 is not listed. c) So code if from revision 27820 that fix "SF patch #584245, get python to link on OSF1 (Dec Unix)" . The current patch as is will break OSF1 and other OS-es (as example linux don't define this header). Just adding new include will fail test case and will left as undefined HAVE_MAKEDEV => mknod won't be added for those platforms.
msg102272 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2010-04-03 15:26
I think this small change can slip in after beta.
msg104248 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-04-26 16:45
Please, Review. Roumen?. I plan to commit this to 2.7, 2.6, 3.1 and 3.2, if you agree.
msg104249 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-04-26 16:55
Jesus, this looks ok, have you checked the changes work fine under e.g. Linux? I don't think DEC Unix is supported anymore, actually I'm not sure anyone still uses it.
msg104251 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-04-26 17:11
Pitrou, the code configures correctly in Linux. Reading PEP11, I don't see the procedure to propose a platform for deprecation. Just mailing python-dev? I will delay the patch committing a couple of days, just in case somebody else want to comment. Thanks for the review, Pitrou.
msg104252 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-04-26 17:22
> Reading PEP11, I don't see the procedure to propose a platform for > deprecation. Just mailing python-dev? Yes. > Thanks for the review, Pitrou. You can call me Antoine.
msg104265 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-04-26 18:00
Informal europeans! :-). Hi, Antoine, I am Jesús (sunny Spain!). Deprecation request mailed to python-dev.
msg104279 - (view) Author: Roumen Petrov (rpetrov) * Date: 2010-04-26 21:30
Sorry Jesús, right now I cannot test new patch it but It looks goodand I expect first test to succeed so that second won't be tested as result OCF_XXX to be defined. If there is no spelling error it is fine. Roumen
msg104427 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-04-28 12:03
Patch committed. trunk (2.7): r80574 2.6: r80575 py3k (3.2): r80576 3.1: r80577
History
Date User Action Args
2022-04-11 14:56:39 admin set github: 48178
2010-04-28 12:03:49 jcea set status: open -> closedresolution: acceptedmessages: + stage: commit review -> resolved
2010-04-26 21:30:44 rpetrov set messages: +
2010-04-26 18:00:05 jcea set messages: +
2010-04-26 17:22:18 pitrou set messages: +
2010-04-26 17:11:09 jcea set messages: +
2010-04-26 16:55:24 pitrou set priority: release blocker -> highmessages: +
2010-04-26 16:45:48 jcea set files: + mknod-solaris_3.diffmessages: +
2010-04-26 16:42:59 jcea set files: - mknod-solaris_2.diff
2010-04-10 19:28:20 benjamin.peterson set priority: deferred blocker -> release blocker
2010-04-03 15:26:35 benjamin.peterson set priority: release blocker -> deferred blockernosy: + benjamin.petersonmessages: +
2010-03-22 21:24:37 rpetrov set messages: +
2010-03-22 16:37:13 jcea set nosy: + barry, rpetrovmessages: +
2010-03-22 15:32:42 jcea set nosy: - barry, rpetrovmessages: +
2010-03-19 23:12:23 barry set priority: deferred blocker -> release blocker
2010-03-17 15:34:00 jcea set messages: +
2010-03-16 20:50:41 barry set priority: release blocker -> deferred blockernosy: + barrymessages: +
2010-03-15 22:13:12 rpetrov set nosy: + rpetrovmessages: +
2010-03-15 14:19:31 jcea set priority: deferred blocker -> release blockernosy: - barry, rpetrovmessages: +
2010-03-14 19:01:25 rpetrov set nosy: + rpetrovmessages: +
2010-03-13 22:27:47 barry set priority: release blocker -> deferred blockernosy: + barrymessages: +
2010-03-13 20:31:14 jcea set priority: normal -> release blocker
2010-03-13 20:23:54 jcea set files: - mknod-solaris.diff
2010-03-13 20:23:23 jcea set files: + mknod-solaris_2.diffmessages: + versions: + Python 2.6, Python 3.1, Python 2.7, Python 3.2, - Python 2.5
2010-03-13 20:19:14 jcea set messages: -
2010-03-13 20🔞22 jcea set type: behavior -> enhancementmessages: + stage: patch review -> commit review
2010-03-13 17:08:03 loewis set messages: +
2010-03-13 17:07:18 pitrou set nosy: + pitroumessages: +
2010-03-13 16:29:46 jcea set stage: patch review
2010-03-13 16:29:06 jcea set files: + mknod-solaris.diffpriority: normalassignee: jceakeywords: + needs review, patchnosy: + jceamessages: +
2009-02-16 00:59:36 movement set nosy: + movement
2008-09-22 21:03:20 loewis set nosy: + loewismessages: +
2008-09-22 09:38:53 sandberg create