r26575: Build a private copy of the Python executable for Samba 4, so we know we...
authorJelmer Vernooij <jelmer@samba.org>
Mon, 24 Dec 2007 04:06:29 +0000 (22:06 -0600)
committerStefan Metzmacher <metze@samba.org>
Mon, 24 Dec 2007 07:51:04 +0000 (01:51 -0600)
(This used to be commit 03270c5ffdb1476bef5eba846c2ea008111375fc)

source4/scripting/python/config.m4
source4/scripting/python/config.mk
source4/scripting/python/smbpython.c [new file with mode: 0644]
source4/selftest/samba4_tests.sh

index 8951b4da08362551723bc5a941eebe5baf45634d..49ad7273a4445a2957f93e90c02e2d4086cdb1a1 100644 (file)
@@ -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
index d0d3829eefefc95852205bd3addb0ed0cf693a20..ac923cb8d135d2ae11b27e08c45b8c34cb3d1838 100644 (file)
@@ -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 (file)
index 0000000..4378576
--- /dev/null
@@ -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);
+}
index 16dd38802a5f71a994a78727f1194d304e431a85..edcf51a8e0f5f4222825cd67a30ab8ab9a907c97 100755 (executable)
@@ -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