Very partial patches to build Python3.
[fedora-mingw.git] / python3 / mingw32-python-3.1-pwdmodule.patch
diff --git a/python3/mingw32-python-3.1-pwdmodule.patch b/python3/mingw32-python-3.1-pwdmodule.patch
new file mode 100644 (file)
index 0000000..270fa82
--- /dev/null
@@ -0,0 +1,104 @@
+Index: configure.in
+===================================================================
+--- configure.in       (revision 67686)
++++ configure.in       (working copy)
+@@ -1179,7 +1203,7 @@
+ AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
+ fcntl.h grp.h \
+ ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
+-shadow.h signal.h stdint.h stropts.h termios.h thread.h \
++pwd.h shadow.h signal.h stdint.h stropts.h termios.h thread.h \
+ unistd.h utime.h \
+ sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
+ sys/lock.h sys/mkdev.h sys/modem.h \
+@@ -2362,7 +2386,7 @@
+ AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
+  clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
+  gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
+- getpriority getpwent getspnam getspent getsid getwd \
++ getpriority getpwent getpwuid getpwnam getspnam getspent getsid getwd \
+  kill killpg lchmod lchown lstat mkfifo mknod mktime \
+  mremap nice pathconf pause plock poll pthread_init \
+  putenv readlink realpath \
+Index: Modules/pwdmodule.c
+===================================================================
+--- Modules/pwdmodule.c        (revision 67686)
++++ Modules/pwdmodule.c        (working copy)
+@@ -5,8 +5,12 @@
+ #include "structseq.h"
+ #include <sys/types.h>
++
++#ifdef HAVE_PWD_H
+ #include <pwd.h>
++#endif
++#ifdef HAVE_GETPWUID
+ static PyStructSequence_Field struct_pwd_type_fields[] = {
+       {"pw_name", "user name"},
+       {"pw_passwd", "password"},
+@@ -30,6 +34,7 @@
+       struct_pwd_type_fields,
+       7,
+ };
++#endif
+ PyDoc_STRVAR(pwd__doc__,
+ "This module provides access to the Unix password database.\n\
+@@ -43,6 +48,8 @@
+       
+ static int initialized;
++
++#ifdef HAVE_GETPWUID
+ static PyTypeObject StructPwdType;
+ static void
+@@ -117,7 +124,9 @@
+       }
+       return mkpwent(p);
+ }
++#endif
++#ifdef HAVE_GETPWNAM
+ PyDoc_STRVAR(pwd_getpwnam__doc__,
+ "getpwnam(name) -> (pw_name,pw_passwd,pw_uid,\n\
+                     pw_gid,pw_gecos,pw_dir,pw_shell)\n\
+@@ -138,6 +147,7 @@
+       }
+       return mkpwent(p);
+ }
++#endif
+ #ifdef HAVE_GETPWENT
+ PyDoc_STRVAR(pwd_getpwall__doc__,
+@@ -173,8 +183,12 @@
+ #endif
+ static PyMethodDef pwd_methods[] = {
++#ifdef HAVE_GETPWUID
+       {"getpwuid",    pwd_getpwuid, METH_VARARGS, pwd_getpwuid__doc__},
++#endif
++#ifdef HAVE_GETPWNAM
+       {"getpwnam",    pwd_getpwnam, METH_VARARGS, pwd_getpwnam__doc__},
++#endif
+ #ifdef HAVE_GETPWENT
+       {"getpwall",    (PyCFunction)pwd_getpwall,
+               METH_NOARGS,  pwd_getpwall__doc__},
+@@ -203,6 +217,7 @@
+       if (m == NULL)
+               return NULL;
++#ifdef HAVE_GETPWUID
+       if (!initialized)
+               PyStructSequence_InitType(&StructPwdType, 
+                                         &struct_pwd_type_desc);
+@@ -210,6 +225,8 @@
+       PyModule_AddObject(m, "struct_passwd", (PyObject *) &StructPwdType);
+       /* And for b/w compatibility (this was defined by mistake): */
+       PyModule_AddObject(m, "struct_pwent", (PyObject *) &StructPwdType);
++#endif
++
+       initialized = 1;
+       return m;
+ }