--- python-pam-0.4.2.orig/PAMmodule.c +++ python-pam-0.4.2/PAMmodule.c @@ -24,7 +24,7 @@ PyObject *userData; } PyPAMObject; -staticforward PyTypeObject PyPAMObject_Type; +static PyTypeObject PyPAMObject_Type; static void PyPAM_Err(PyPAMObject *self, int result) { @@ -80,6 +80,7 @@ resp_retcode = 0; if (!PyArg_ParseTuple(respTuple, "si", &resp_text, &resp_retcode)) { free(*resp); + *resp = NULL; Py_DECREF(respList); return PAM_CONV_ERR; } @@ -106,7 +107,7 @@ PyPAMObject *p; struct pam_conv *spc; - PyPAMObject_Type.ob_type = &PyType_Type; + Py_TYPE(&PyPAMObject_Type) = &PyType_Type; p = (PyPAMObject *) PyObject_NEW(PyPAMObject, &PyPAMObject_Type); if ((spc = (struct pam_conv *) malloc(sizeof(struct pam_conv))) == NULL) { @@ -489,35 +490,33 @@ PyObject_FREE(self); } -static PyObject * PyPAM_getattr(PyPAMObject *self, char *name) -{ - return Py_FindMethod(PyPAMObject_Methods, (PyObject *) self, name); -} - static PyObject * PyPAM_repr(PyPAMObject *self) { char buf[1024]; snprintf(buf, 1024, "", self->service, self->user, self->conv, self->pamh); - return PyString_FromString(buf); + return PyUnicode_FromString(buf); } static PyTypeObject PyPAMObject_Type = { - PyObject_HEAD_INIT(0) /* Must fill in type value later */ - 0, + PyVarObject_HEAD_INIT(&PyType_Type, 0) /* Must fill in type value later */ "pam", sizeof(PyPAMObject), 0, (destructor)PyPAM_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ - (getattrfunc)PyPAM_getattr, /*tp_getattr*/ + 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_compare*/ (reprfunc)PyPAM_repr, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ + 0, /*hash*/ + 0, /*ternary*/ + 0, /*another repr*/ + (getattrofunc)PyObject_GenericGetAttr, }; static PyMethodDef PyPAM_Methods[] = { @@ -525,6 +524,16 @@ {NULL, NULL, 0, NULL} }; +#if PY_MAJOR_VERSION > 2 +static struct PyModuleDef PyPAM_Module = { + PyModuleDef_HEAD_INIT, + "PAM", /* name of module */ + NULL, /* module documentation */ + -1, /* size of per-interpreter state */ + PyPAM_Methods +}; +#endif + static char PyPAMObject_doc[] = ""; /* Convenience routine to export an integer value. @@ -534,7 +543,11 @@ */ static void insint(PyObject *d, char *name, int value) { +#if PY_MAJOR_VERSION > 2 + PyObject *v = PyLong_FromLong((long) value); +#else PyObject *v = PyInt_FromLong((long) value); +#endif if (!v || PyDict_SetItemString(d, name, v)) PyErr_Clear(); @@ -542,20 +555,32 @@ Py_XDECREF(v); } +#if PY_MAJOR_VERSION > 2 +PyMODINIT_FUNC PyInit_PAM(void) +#else void initPAM(void) +#endif { PyObject *m, *d; +#if PY_MAJOR_VERSION > 2 + m = PyModule_Create(&PyPAM_Module); +#else m = Py_InitModule("PAM", PyPAM_Methods); +#endif d = PyModule_GetDict(m); PyPAM_Error = PyErr_NewException("PAM.error", NULL, NULL); if (PyPAM_Error == NULL) - return; +#if PY_MAJOR_VERSION > 2 + return m; +#else + return; +#endif PyDict_SetItemString(d, "error", PyPAM_Error); - PyPAMObject_Type.ob_type = &PyType_Type; PyPAMObject_Type.tp_doc = PyPAMObject_doc; + PyPAMObject_Type.tp_methods = PyPAMObject_Methods, Py_INCREF(&PyPAMObject_Type); insint(d, "PAM_SUCCESS", PAM_SUCCESS); @@ -619,4 +644,7 @@ insint(d, "PAM_BINARY_PROMPT", PAM_BINARY_PROMPT); #endif +#if PY_MAJOR_VERSION > 2 + return m; +#endif } --- python-pam-0.4.2.orig/debian/README.Debian +++ python-pam-0.4.2/debian/README.Debian @@ -9,8 +9,10 @@ using PAM. No documentation yet. The module is mostly a wrapper around the PAM library -functions. There's a simple example included in /usr/doc/python-pam/examples. +functions. There's a simple example included in /usr/share/doc/python-pam/examples. 28.08.1999, Gregor Hoffleit + + -- Dima Barsky , Tue, 6 Mar 2012 22:20:11 +0000 --- python-pam-0.4.2.orig/debian/changelog +++ python-pam-0.4.2/debian/changelog @@ -1,3 +1,259 @@ +python-pam (0.4.2-13.2ubuntu6) disco; urgency=medium + + * No-change rebuild to build without python3.6 support. + + -- Matthias Klose Sat, 03 Nov 2018 12:09:29 +0000 + +python-pam (0.4.2-13.2ubuntu5) cosmic; urgency=medium + + * No-change rebuild to build for python3.7. + + -- Matthias Klose Thu, 28 Jun 2018 06:55:01 +0000 + +python-pam (0.4.2-13.2ubuntu4) artful; urgency=medium + + * No change rebuild to drop Python 3.5 support. + + -- Michael Hudson-Doyle Fri, 04 Aug 2017 16:59:28 +1200 + +python-pam (0.4.2-13.2ubuntu3) artful; urgency=medium + + * No change rebuild to add Python 3.6 support. + + -- Michael Hudson-Doyle Fri, 12 May 2017 14:52:12 +1200 + +python-pam (0.4.2-13.2ubuntu2) xenial; urgency=medium + + * No-change rebuild to drop python3.4 support. + + -- Matthias Klose Mon, 18 Jan 2016 19:39:53 +0000 + +python-pam (0.4.2-13.2ubuntu1) xenial; urgency=low + + * Merge from Debian unstable. Remaining changes: + - python3 port + - packaging using dh, dh-python, pybuild and -dbg builds. + + -- Steve Langasek Wed, 28 Oct 2015 15:48:57 -0700 + +python-pam (0.4.2-13.2) unstable; urgency=medium + + * Non-maintainer upload. + * Build using dh-python. Closes: #786291. + + -- Matthias Klose Tue, 18 Aug 2015 19:00:37 +0200 + +python-pam (0.4.2-13.1ubuntu4) wily; urgency=medium + + * No-change rebuild for python3.5 transition + + -- Steve Langasek Thu, 23 Jul 2015 00:03:50 +0000 + +python-pam (0.4.2-13.1ubuntu3) trusty; urgency=medium + + * No change rebuild to drop python3.3 compiled extension. + + -- Dimitri John Ledkov Tue, 01 Apr 2014 02:01:37 +0100 + +python-pam (0.4.2-13.1ubuntu2) trusty; urgency=medium + + * Rebuild for python3.4 as a supported python version. + + -- Matthias Klose Sat, 04 Jan 2014 18:32:32 +0000 + +python-pam (0.4.2-13.1ubuntu1) trusty; urgency=low + + * Merge from debian, remaining changes: + - python3 port + - packaging using dh, dh-python, pybuild and -dbg builds. + + -- Dmitrijs Ledkovs Mon, 21 Oct 2013 16:58:13 +0100 + +python-pam (0.4.2-13.1) unstable; urgency=low + + * Non-maintainer upload. + * debian/control: Change X-Python-Version to >= 2.6 to not explicitly + request Python 2.6. (Closes: #707531) + + -- Sebastian Ramacher Fri, 05 Jul 2013 02:38:29 +0200 + +python-pam (0.4.2-13ubuntu6) saucy; urgency=low + + * Rename compiled module to "PAM" from "PAMmodule", thus matching the + module name passed to PyModule_Create. This unbreaks importing PAM + with python2.7. + + -- Dmitrijs Ledkovs Thu, 26 Sep 2013 11:58:16 +0100 + +python-pam (0.4.2-13ubuntu5) saucy; urgency=low + + * Use dh-python and pybuild, thus getting the extension module correctly + renamed and become importable in python3. + * Simplify packaging and drop python*:Versions & Provides stanzas, use + python*:Depends everywhere instead. + + -- Dmitrijs Ledkovs Wed, 25 Sep 2013 09:18:57 +0100 + +python-pam (0.4.2-13ubuntu4) raring; urgency=low + + * Rebuild to drop python3.2 provides. + + -- Matthias Klose Wed, 07 Nov 2012 23:00:18 +0000 + +python-pam (0.4.2-13ubuntu3) raring; urgency=low + + * No-change upload to build for python3.3. + + -- Matthias Klose Mon, 22 Oct 2012 17:32:14 +0200 + +python-pam (0.4.2-13ubuntu2) quantal; urgency=low + + * Fix up merge breakage that left the python-pam package without a + description. + + -- Steve Langasek Tue, 03 Jul 2012 17:07:10 -0700 + +python-pam (0.4.2-13ubuntu1) quantal; urgency=low + + * Merge from Debian unstable, remaining changes: + - Port to python3; dead project upstream so not forwarding anywhere. + - Modernize packaging to dh and debhelper 9. + - Build the extension for the debug interpreter. + * Dropped changes, included in Debian: + - PAMmodule.c: prevent double free in PyPAM_conv(). + - Build using dh_python2 instead of dh_pycentral. + + -- Steve Langasek Tue, 03 Jul 2012 16:20:31 -0700 + +python-pam (0.4.2-13) unstable; urgency=high + + * Acknowledged NMUs + * Fixed a security vulnerability in PyPAM_conv + (thanks Markus Vervier + for the report and the patch) + + -- Dima Barsky Tue, 06 Mar 2012 21:48:38 +0000 + +python-pam (0.4.2-12.3) unstable; urgency=low + + * Non-maintainer upload. + * Use python-support (closes: #620283). + + Add build-dependency on python-support. + + In debian/rules, replace call to dh_python with dh_pysupport. + + -- Jakub Wilk Fri, 08 Apr 2011 21:08:10 +0200 + +python-pam (0.4.2-12.2ubuntu6) quantal; urgency=low + + * Restore tp_getattro pointer, but use PyObject_GenericGetAttr() in both + the Python 2 and 3 cases. + + -- Barry Warsaw Mon, 25 Jun 2012 11:16:03 -0400 + +python-pam (0.4.2-12.2ubuntu5) quantal; urgency=low + + [ Steve Langasek ] + * Port to python3; dead project upstream so not forwarding anywhere. + - replace 'staticforward' with 'static'. + - replace ob_type with Py_TYPE(ob). + - drop tp_getattr function, we just need to set tp_methods instead. + - fix PyTypeObject definition. + - use PyUnicode_FromString, not PyString_FromString + - use PyLong_FromLong when building for python3. + - use PyModule_Create instead of Py_InitModule for python3 + - LP: #1015320 + * Modernize packaging to dh and debhelper 9. + + [ Sapphira Armageddos ] + * Additional patch to better support Python 2 and Python 3. + + -- Steve Langasek Thu, 24 May 2012 22:56:26 +0000 + +python-pam (0.4.2-12.2ubuntu4) precise; urgency=low + + * SECURITY UPDATE: possible code execution via double-free (LP: #949218) + - PAMmodule.c: prevent double free in PyPAM_conv(). + - Thanks to Markus Vervier for the notification and the patch. + - CVE-2012-1502 + + -- Marc Deslauriers Thu, 08 Mar 2012 08:06:43 -0500 + +python-pam (0.4.2-12.2ubuntu3) precise; urgency=low + + * Rebuild to drop python2.6 dependencies. + + -- Matthias Klose Sat, 31 Dec 2011 02:11:30 +0000 + +python-pam (0.4.2-12.2ubuntu2) natty; urgency=low + + * No-change rebuild to prefer python2.7. + + -- Martin Pitt Wed, 22 Dec 2010 09:41:19 +0100 + +python-pam (0.4.2-12.2ubuntu1) natty; urgency=low + + * Merge with Debian; remaining changes: + - Build the extension for the debug interpreter. + - Revert the bogus change of the Debian upload to call setup.py install + with both --root and --prefix. + * Build using dh_python2 instead of dh_pycentral. + + -- Matthias Klose Wed, 24 Nov 2010 16:06:15 +0100 + +python-pam (0.4.2-12.2) unstable; urgency=low + + * Non-maintainer upload. + * Remove build-dependency on python2.5-dev. Closes: #596314. + + -- Matthias Klose Sun, 12 Sep 2010 15:37:47 +0200 + +python-pam (0.4.2-12.1ubuntu1) lucid; urgency=low + + * Merge with Debian, remaining changes: + - Build the extension for the debug interpreter. + * Revert the bogus change of the Debian upload to call setup.py install + with both --root and --prefix. + * Drop explicite build dependency on python2.5-dev. + + -- Matthias Klose Tue, 19 Jan 2010 15:22:59 +0100 + +python-pam (0.4.2-12.1) unstable; urgency=low + + * Non-maintainer upload. + * Prepare for the upcoming Python 2.6 transition; thanks to Piotr Ożarowski + for the bug report and to Kumar Appaiah for the patch; Closes: #556162 + - debian/rules + + optionally include python.mk, add $(py_setup_install_args) and + --prefix=/usr when installing + + -- Sandro Tosi Sun, 15 Nov 2009 21:36:54 +0100 + +python-pam (0.4.2-12ubuntu3) jaunty; urgency=low + + * Build for python2.6, include symlinks in the package. + + -- Matthias Klose Mon, 23 Feb 2009 18:23:00 +0100 + +python-pam (0.4.2-12ubuntu2) hardy; urgency=low + + * Rebuild with recent python-central. + * Set Ubuntu maintainer address. + + -- Matthias Klose Mon, 10 Mar 2008 12:47:11 +0000 + +python-pam (0.4.2-12ubuntu1) gutsy; urgency=low + + * Merge from debian unstable, remaining changes: + - Build the extension for the debug interpreter. + - Build-depend on python-all-dbg (>= 2.5-0ubuntu5) + - debian/control: New package python-pam-dbg, priority extra. + - debian/control: python-pam: Suggest python-pam-dbg. + - debian/rules: Build the extension with the python debug interpreter. + - debian/rules: python-pam-dbg: symlink to python-pam's docdir. + - Set Ubuntu maintainer address. + + -- Andrew Mitchell Wed, 23 May 2007 13:11:15 +1200 + python-pam (0.4.2-12) unstable; urgency=low * Added Build-Depends: python2.5-dev (Closes: #415377) @@ -11,6 +267,30 @@ -- Dima Barsky Sat, 17 Mar 2007 17:46:16 +0000 +python-pam (0.4.2-10.4ubuntu2) feisty; urgency=low + + * Add a build dependency on python-central. + + -- Matthias Klose Sat, 17 Feb 2007 13:10:15 +0100 + +python-pam (0.4.2-10.4ubuntu1) feisty; urgency=low + + * Build the extension for the debug interpreter. + - Build-depend on python-all-dbg (>= 2.5-0ubuntu5) + - debian/control: New package python-pam-dbg, priority extra. + - debian/control: python-pam: Suggest python-pam-dbg. + - debian/rules: Build the extension with the python debug interpreter. + - debian/rules: python-pam-dbg: symlink to python-pam's docdir. + * Set Ubuntu maintainer address. + + -- Matthias Klose Sat, 17 Feb 2007 02:04:09 +0100 + +python-pam (0.4.2-10.4build1) feisty; urgency=low + + * Rebuild. Ubuntu #69967. + + -- Matthias Klose Mon, 12 Feb 2007 14:45:03 +0100 + python-pam (0.4.2-10.4) unstable; urgency=low * Non-maintainer upload. @@ -93,7 +373,7 @@ * Bumped up Standards-Sersion to 3.5.7 -- Dima Barsky Wed, 16 Oct 2002 14:45:50 +0100 - + python-pam (0.4.2-3) unstable; urgency=low * Recompiled for unstable (closes: #66359). @@ -114,4 +394,3 @@ -- Gregor Hoffleit Sat, 28 Aug 1999 19:20:23 +0200 - --- python-pam-0.4.2.orig/debian/compat +++ python-pam-0.4.2/debian/compat @@ -0,0 +1 @@ +9 --- python-pam-0.4.2.orig/debian/control +++ python-pam-0.4.2/debian/control @@ -1,18 +1,50 @@ Source: python-pam Section: python Priority: optional -Build-Depends: debhelper (>= 5.0.37.2), python-all-dev (>= 2.3.5-11), python2.5-dev, libpam0g-dev -Maintainer: Dima Barsky -Standards-Version: 3.7.2 +Build-Depends: debhelper (>= 9), python-all-dev (>= 2.3.5-11), python-all-dbg, python3-all-dev, python3-all-dbg, libpam0g-dev, dh-python +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Dima Barsky +Standards-Version: 3.9.3 +X-Python-Version: >= 2.6 Package: python-pam Architecture: any -Depends: ${python:Depends}, ${shlibs:Depends} +Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends} Conflicts: python2.3-pam, python2.4-pam Replaces: python2.3-pam, python2.4-pam -Provides: ${python:Provides} -XB-Python-Version: ${python:Versions} -Description: A Python interface to the PAM library +Suggests: python-pam-dbg +Description: Python interface to the PAM library This module makes the PAM (Pluggable Authentication Modules) functions available in Python. With this module you can write Python applications that implement authentication services using PAM. + +Package: python-pam-dbg +Priority: extra +Architecture: any +Depends: python-pam (= ${binary:Version}), ${python:Depends}, ${shlibs:Depends}, ${misc:Depends} +Description: Python interface to the PAM library (debug extension) + This module makes the PAM (Pluggable Authentication Modules) functions + available in Python. With this module you can write Python applications + that implement authentication services using PAM. + . + This package contains the extension built for the python debug interpreter. + +Package: python3-pam +Architecture: any +Depends: ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends} +Suggests: python3-pam-dbg +Description: Python interface to the PAM library + This module makes the PAM (Pluggable Authentication Modules) functions + available in Python 3. With this module you can write Python 3 applications + that implement authentication services using PAM. + +Package: python3-pam-dbg +Priority: extra +Architecture: any +Depends: python3-pam (= ${binary:Version}), ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends} +Description: Python interface to the PAM library (debug extension) + This module makes the PAM (Pluggable Authentication Modules) functions + available in Python 3. With this module you can write Python 3 applications + that implement authentication services using PAM. + . + This package contains the extension built for the python debug interpreter. --- python-pam-0.4.2.orig/debian/copyright +++ python-pam-0.4.2/debian/copyright @@ -14,4 +14,4 @@ Released under GNU GPL version 2. On Debian GNU/Linux systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. +Public License can be found in `/usr/share/common-licenses/GPL-2'. --- python-pam-0.4.2.orig/debian/python-pam.examples +++ python-pam-0.4.2/debian/python-pam.examples @@ -0,0 +1 @@ +examples/* --- python-pam-0.4.2.orig/debian/python3-pam.examples +++ python-pam-0.4.2/debian/python3-pam.examples @@ -0,0 +1 @@ +examples/* --- python-pam-0.4.2.orig/debian/rules +++ python-pam-0.4.2/debian/rules @@ -1,59 +1,24 @@ #!/usr/bin/make -f -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 -# This is the debhelper compatibility version to use. -export DH_COMPAT=5 - -PYVERS=$(shell pyversions -r) python2.5 - -build: build-stamp -build-stamp: - dh_testdir - for python in $(PYVERS); \ - do $$python setup.py build; \ - done - touch build-stamp - -clean: - dh_testdir - for python in $(PYVERS); \ - do $$python setup.py clean; \ - done - rm -rf build-stamp build +export PYBUILD_DESTDIR_python2=debian/python-pam/ +export PYBUILD_DESTDIR_python2-dbg=debian/python-pam-dbg/ +export PYBUILD_DESTDIR_python3=debian/python3-pam/ +export PYBUILD_DESTDIR_python3-dbg=debian/python3-pam-dbg/ + +%: + dh $@ --with python2,python3 --buildsystem=pybuild + +override_dh_clean: + rm -rf build + rm -rf *.egg-info dh_clean -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - for python in $(PYVERS); \ - do $$python setup.py install --root=debian/python-pam; \ - done - -# Build architecture-independent files here. -binary-indep: build install - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installdocs -a -A AUTHORS README - dh_installexamples -a -A examples/* - dh_installchangelogs -a ChangeLog - dh_strip -a - dh_compress -a - dh_fixperms -a - #dh_pycentral is not needed as we don't have .py files (only a .so) - #dh_pycentral -a - dh_python -a - dh_installdeb -a - dh_shlibdeps -a - dh_gencontrol -a - dh_md5sums -a - dh_builddeb -a +override_dh_installdocs: + dh_installdocs AUTHORS README -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary +override_dh_installchangelogs: + dh_installchangelogs ChangeLog + rm -rf debian/python-pam-dbg/usr/share/doc/python-pam-dbg + ln -sf python-pam debian/python-pam-dbg/usr/share/doc/python-pam-dbg + rm -rf debian/python3-pam-dbg/usr/share/doc/python3-pam-dbg + ln -sf python3-pam debian/python3-pam-dbg/usr/share/doc/python3-pam-dbg --- python-pam-0.4.2.orig/setup.py +++ python-pam-0.4.2/setup.py @@ -7,7 +7,7 @@ from distutils.extension import Extension ext = Extension( - name="PAMmodule", + name="PAM", libraries=["pam","pam_misc"], sources=["PAMmodule.c"] )