summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-12-23 22:06:29 -0600
committerStefan Metzmacher <metze@samba.org>2007-12-24 01:51:04 -0600
commit1ab5bcfb93c9fc7b18d55e6c5995efddf97fea09 (patch)
tree8e7a7ce729322ae1e6b57e839837e19b9dfc454f
parent2d400c1dd1ba1c5a49d2d79bdf7593d430da92e8 (diff)
downloadsamba-1ab5bcfb93c9fc7b18d55e6c5995efddf97fea09.tar.gz
samba-1ab5bcfb93c9fc7b18d55e6c5995efddf97fea09.tar.bz2
samba-1ab5bcfb93c9fc7b18d55e6c5995efddf97fea09.zip
r26575: Build a private copy of the Python executable for Samba 4, so we know we're always using the same library we build the modules for.
(This used to be commit 03270c5ffdb1476bef5eba846c2ea008111375fc)
-rw-r--r--source4/scripting/python/config.m43
-rw-r--r--source4/scripting/python/config.mk5
-rw-r--r--source4/scripting/python/smbpython.c25
-rwxr-xr-xsource4/selftest/samba4_tests.sh26
4 files changed, 46 insertions, 13 deletions
diff --git a/source4/scripting/python/config.m4 b/source4/scripting/python/config.m4
index 8951b4da08..49ad7273a4 100644
--- a/source4/scripting/python/config.m4
+++ b/source4/scripting/python/config.m4
@@ -41,9 +41,11 @@ then
Py_InitModule(NULL, NULL);
],[
SMB_ENABLE(LIBPYTHON,YES)
+ SMB_ENABLE(smbpython,YES)
AC_MSG_RESULT([yes])
],[
SMB_ENABLE(LIBPYTHON,NO)
+ SMB_ENABLE(smbpython,NO)
AC_MSG_RESULT([no])
])
@@ -51,5 +53,6 @@ then
CFLAGS="$ac_save_CFLAGS"
else
SMB_ENABLE(LIBPYTHON,NO)
+ SMB_ENABLE(smbpython,NO)
AC_MSG_RESULT([no])
fi
diff --git a/source4/scripting/python/config.mk b/source4/scripting/python/config.mk
index d0d3829eef..ac923cb8d1 100644
--- a/source4/scripting/python/config.mk
+++ b/source4/scripting/python/config.mk
@@ -1,3 +1,8 @@
+[BINARY::smbpython]
+PRIVATE_DEPENDENCIES = LIBPYTHON
+OBJ_FILES = \
+ smbpython.o
+
[PYTHON::python_uuid]
PRIVATE_DEPENDENCIES = LIBNDR
OBJ_FILES = uuidmodule.o
diff --git a/source4/scripting/python/smbpython.c b/source4/scripting/python/smbpython.c
new file mode 100644
index 0000000000..43785765c1
--- /dev/null
+++ b/source4/scripting/python/smbpython.c
@@ -0,0 +1,25 @@
+/*
+ Unix SMB/CIFS implementation.
+ Samba utility functions
+ Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include <Python.h>
+
+int main(int argc, char **argv) {
+ return Py_Main(argc,argv);
+}
diff --git a/source4/selftest/samba4_tests.sh b/source4/selftest/samba4_tests.sh
index 16dd38802a..edcf51a8e0 100755
--- a/source4/selftest/samba4_tests.sh
+++ b/source4/selftest/samba4_tests.sh
@@ -285,20 +285,20 @@ then
fi
# if python is available, run the python tests:
-if which python 2>/dev/null >/dev/null
+if test -f $samba4bindir/smbpython
then
- PYTHON=python
- plantest "ldb.python" none PYTHONPATH=bin/python:scripting/python:lib/ldb/tests/python/ scripting/bin/subunitrun api
- plantest "credentials.python" none PYTHONPATH=bin/python:scripting/python:auth/credentials/tests scripting/bin/subunitrun bindings
- plantest "registry.python" none PYTHONPATH=bin/python:scripting/python:lib/registry/tests/ scripting/bin/subunitrun bindings
- plantest "tdb.python" none PYTHONPATH=bin/python:scripting/python:lib/tdb/python/tests scripting/bin/subunitrun simple
- plantest "auth.python" none PYTHONPATH=bin/python:scripting/python:auth/tests/ scripting/bin/subunitrun bindings
- plantest "security.python" none PYTHONPATH=bin/python:scripting/python:libcli/security/tests/ scripting/bin/subunitrun bindings
- plantest "param.python" none PYTHONPATH=bin/python:scripting/python:param/tests scripting/bin/subunitrun bindings
- plantest "upgrade.python" none PYTHONPATH=bin/python:scripting/python scripting/bin/subunitrun samba.tests.upgrade
- plantest "samba.python" none PYTHONPATH=bin/python:scripting/python scripting/bin/subunitrun samba.tests
- plantest "provision.python" none PYTHONPATH=bin/python:scripting/python scripting/bin/subunitrun samba.tests.provision
- plantest "samba3.python" none PYTHONPATH=bin/python:scripting/python scripting/bin/subunitrun samba.tests.samba3
+ PYTHON=bin/smbpython
+ plantest "ldb.python" none PYTHONPATH=bin/python:scripting/python:lib/ldb/tests/python/ $PYTHON scripting/bin/subunitrun api
+ plantest "credentials.python" none PYTHONPATH=bin/python:scripting/python:auth/credentials/tests $PYTHON scripting/bin/subunitrun bindings
+ plantest "registry.python" none PYTHONPATH=bin/python:scripting/python:lib/registry/tests/ $PYTHON scripting/bin/subunitrun bindings
+ plantest "tdb.python" none PYTHONPATH=bin/python:scripting/python:lib/tdb/python/tests $PYTHON scripting/bin/subunitrun simple
+ plantest "auth.python" none PYTHONPATH=bin/python:scripting/python:auth/tests/ $PYTHON scripting/bin/subunitrun bindings
+ plantest "security.python" none PYTHONPATH=bin/python:scripting/python:libcli/security/tests/ $PYTHON scripting/bin/subunitrun bindings
+ plantest "param.python" none PYTHONPATH=bin/python:scripting/python:param/tests $PYTHON scripting/bin/subunitrun bindings
+ plantest "upgrade.python" none PYTHONPATH=bin/python:scripting/python $PYTHON scripting/bin/subunitrun samba.tests.upgrade
+ plantest "samba.python" none PYTHONPATH=bin/python:scripting/python $PYTHON scripting/bin/subunitrun samba.tests
+ plantest "provision.python" none PYTHONPATH=bin/python:scripting/python $PYTHON scripting/bin/subunitrun samba.tests.provision
+ plantest "samba3.python" none PYTHONPATH=bin/python:scripting/python $PYTHON scripting/bin/subunitrun samba.tests.samba3
plantest "samba3sam.python" none PYTHONPATH=bin/python:scripting/python $PYTHON dsdb/samdb/ldb_modules/tests/samba3sam.py `pwd` $DATADIR/samba3/
plantest "ldap.python" dc $PYTHON $samba4srcdir/lib/ldb/tests/python/ldap.py \$SERVER -U\$USERNAME%\$PASSWORD
fi