net-fs/samba: convert to multilib

This is the first attempt at a multilib-capable samba.  The patch that allows building samba
without a multilib-capable python is very large but only disables samba objects that need
python; there are likely many other objects that can be disabled as well to make the alt-ABI
build more efficient.

Package-Manager: portage-2.2.26
This commit is contained in:
Ian Stakenvicius
2016-01-11 14:31:50 -05:00
parent ffe1f02170
commit 3f6e03dac9
2 changed files with 1052 additions and 0 deletions

View File

@@ -0,0 +1,823 @@
--- a/auth/credentials/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/auth/credentials/wscript_build 2016-01-08 19:50:12.510297249 -0500
@@ -24,7 +24,8 @@
source='credentials_ntlm.c',
deps='samba-credentials')
-bld.SAMBA_PYTHON('pycredentials',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pycredentials',
source='pycredentials.c',
public_deps='samba-credentials cmdline-credentials pytalloc-util pyparam_util CREDENTIALS_KRB5 CREDENTIALS_SECRETS',
realname='samba/credentials.so'
--- a/lib/ldb/wscript 2015-12-10 04:20:09.000000000 -0500
+++ b/lib/ldb/wscript 2016-01-08 19:50:12.450297496 -0500
@@ -34,6 +34,8 @@
conf.RECURSE('lib/tdb')
conf.RECURSE('lib/tevent')
+ conf.env.disable_python = getattr(Options.options, 'disable_python', False)
+
if conf.CHECK_FOR_THIRD_PARTY():
conf.RECURSE('third_party/popt')
else:
@@ -47,7 +49,8 @@
conf.find_program('xsltproc', var='XSLTPROC')
conf.check_tool('python')
conf.check_python_version((2,4,2))
- conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
+ if not conf.env.disable_python:
+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
# where does the default LIBDIR end up? in conf.env somewhere?
#
@@ -60,7 +63,7 @@
onlyif='talloc tdb tevent',
implied_deps='replace talloc tdb tevent'):
conf.define('USING_SYSTEM_LDB', 1)
- if conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=SYSTEM_VERSION,
+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=SYSTEM_VERSION,
onlyif='talloc tdb tevent ldb',
implied_deps='replace talloc tdb tevent ldb'):
conf.define('USING_SYSTEM_PYLDB_UTIL', 1)
@@ -121,8 +124,9 @@
bld.env.PACKAGE_VERSION = VERSION
bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
- if not bld.CONFIG_SET('USING_SYSTEM_PYLDB_UTIL'):
- bld.SAMBA_LIBRARY('pyldb-util',
+ if not bld.env.disable_python:
+ if not bld.CONFIG_SET('USING_SYSTEM_PYLDB_UTIL'):
+ bld.SAMBA_LIBRARY('pyldb-util',
deps='ldb',
source='pyldb_util.c',
public_headers='pyldb.h',
--- a/lib/ntdb/wscript 2014-10-01 04:12:21.000000000 -0400
+++ b/lib/ntdb/wscript 2016-01-08 19:50:12.460297455 -0500
@@ -109,7 +109,7 @@
if conf.CHECK_BUNDLED_SYSTEM('ntdb', minversion=VERSION,
implied_deps='replace'):
conf.define('USING_SYSTEM_NTDB', 1)
- if conf.CHECK_BUNDLED_SYSTEM_PYTHON('pyntdb', 'ntdb', minversion=VERSION):
+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PYTHON('pyntdb', 'ntdb', minversion=VERSION):
conf.define('USING_SYSTEM_PYNTDB', 1)
if not conf.env.disable_python:
--- a/lib/talloc/wscript 2015-04-15 15:27:33.000000000 -0400
+++ b/lib/talloc/wscript 2016-01-08 19:50:12.470297414 -0500
@@ -47,7 +47,7 @@
if conf.CHECK_BUNDLED_SYSTEM_PKG('talloc', minversion=VERSION,
implied_deps='replace'):
conf.define('USING_SYSTEM_TALLOC', 1)
- if conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION,
implied_deps='talloc replace'):
conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1)
--- a/lib/tdb/wscript 2015-07-14 06:54:24.000000000 -0400
+++ b/lib/tdb/wscript 2016-01-08 19:50:12.480297372 -0500
@@ -81,7 +81,7 @@
implied_deps='replace'):
conf.define('USING_SYSTEM_TDB', 1)
conf.env.building_tdb = False
- if conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytdb', 'tdb', minversion=VERSION):
+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytdb', 'tdb', minversion=VERSION):
conf.define('USING_SYSTEM_PYTDB', 1)
conf.env.disable_python = getattr(Options.options, 'disable_python', False)
@@ -178,8 +178,9 @@
bld.SAMBA_BINARY(b, s, 'replace tdb-test-helpers',
includes='include', install=False)
- if not bld.CONFIG_SET('USING_SYSTEM_PYTDB'):
- bld.SAMBA_PYTHON('pytdb',
+ if not bld.env.disable_python:
+ if not bld.CONFIG_SET('USING_SYSTEM_PYTDB'):
+ bld.SAMBA_PYTHON('pytdb',
'pytdb.c',
deps='tdb',
enabled=not bld.env.disable_python,
--- a/lib/tevent/wscript 2015-07-14 06:54:24.000000000 -0400
+++ b/lib/tevent/wscript 2016-01-08 19:50:12.500297290 -0500
@@ -34,11 +34,13 @@
conf.env.standalone_tevent = conf.IN_LAUNCH_DIR()
+ conf.env.disable_python = getattr(Options.options, 'disable_python', False)
+
if not conf.env.standalone_tevent:
if conf.CHECK_BUNDLED_SYSTEM_PKG('tevent', minversion=VERSION,
onlyif='talloc', implied_deps='replace talloc'):
conf.define('USING_SYSTEM_TEVENT', 1)
- if conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytevent', 'tevent', minversion=VERSION):
+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytevent', 'tevent', minversion=VERSION):
conf.define('USING_SYSTEM_PYTEVENT', 1)
if conf.CHECK_FUNCS('epoll_create', headers='sys/epoll.h'):
@@ -61,8 +63,6 @@
if not conf.CONFIG_SET('USING_SYSTEM_TEVENT'):
conf.DEFINE('TEVENT_NUM_SIGNALS', tevent_num_signals)
- conf.env.disable_python = getattr(Options.options, 'disable_python', False)
-
if not conf.env.disable_python:
# also disable if we don't have the python libs installed
conf.find_program('python', var='PYTHON')
--- a/libcli/nbt/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/libcli/nbt/wscript_build 2016-01-08 19:50:12.520297208 -0500
@@ -24,7 +24,8 @@
install=False
)
-bld.SAMBA_PYTHON('python_netbios',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('python_netbios',
source='pynbt.c',
public_deps='cli-nbt DYNCONFIG samba-hostconfig',
realname='samba/netbios.so'
--- a/libcli/security/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/libcli/security/wscript_build 2016-01-08 19:50:12.530297167 -0500
@@ -7,7 +7,8 @@
deps='talloc ndr NDR_SECURITY'
)
-bld.SAMBA_PYTHON('pysecurity',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pysecurity',
source='pysecurity.c',
deps='samba-security pytalloc-util',
realname='samba/security.so'
--- a/python/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/python/wscript_build 2016-01-08 19:50:12.800296055 -0500
@@ -1,13 +1,14 @@
#!/usr/bin/env python
-bld.SAMBA_LIBRARY('samba_python',
+if not bld.env.disable_python:
+ bld.SAMBA_LIBRARY('samba_python',
source=[],
deps='LIBPYTHON pytalloc-util pyrpc_util',
grouping_library=True,
private_library=True,
pyembed=True)
-bld.SAMBA_SUBSYSTEM('LIBPYTHON',
+ bld.SAMBA_SUBSYSTEM('LIBPYTHON',
source='modules.c',
public_deps='',
init_function_sentinel='{NULL,NULL}',
@@ -15,8 +16,7 @@
pyext=True,
)
-
-bld.SAMBA_PYTHON('python_uuid',
+ bld.SAMBA_PYTHON('python_uuid',
source='uuidmodule.c',
deps='ndr',
realname='uuid.so',
@@ -24,7 +24,7 @@
)
-bld.SAMBA_PYTHON('python_glue',
+ bld.SAMBA_PYTHON('python_glue',
source='pyglue.c',
deps='pyparam_util samba-util netif pytalloc-util',
realname='samba/_glue.so'
@@ -32,8 +32,8 @@
# install out various python scripts for use by make test
-bld.SAMBA_SCRIPT('samba_python_files',
+ bld.SAMBA_SCRIPT('samba_python_files',
pattern='samba/**/*.py',
installdir='python')
-bld.INSTALL_WILDCARD('${PYTHONARCHDIR}', 'samba/**/*.py', flat=False)
+ bld.INSTALL_WILDCARD('${PYTHONARCHDIR}', 'samba/**/*.py', flat=False)
--- a/source3/param/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source3/param/wscript_build 2016-01-08 19:50:12.760296220 -0500
@@ -14,7 +14,8 @@
group='build_source',
rule='${PYTHON} ${SRC[0].abspath(env)} --file ${SRC[1].abspath(env)} --output ${TGT} --mode=S3PROTO')
-bld.SAMBA3_PYTHON('pys3param',
+if not bld.env.disable_python:
+ bld.SAMBA3_PYTHON('pys3param',
source='pyparam.c',
deps='param',
public_deps='samba-hostconfig pytalloc-util talloc',
--- a/source3/passdb/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source3/passdb/wscript_build 2016-01-08 19:50:12.770296179 -0500
@@ -40,7 +40,8 @@
internal_module=bld.SAMBA3_IS_STATIC_MODULE('pdb_samba_dsdb') and bld.AD_DC_BUILD_IS_ENABLED(),
enabled=bld.SAMBA3_IS_ENABLED_MODULE('pdb_samba_dsdb') and bld.AD_DC_BUILD_IS_ENABLED())
-bld.SAMBA3_PYTHON('pypassdb',
+if not bld.env.disable_python:
+ bld.SAMBA3_PYTHON('pypassdb',
source='py_passdb.c',
deps='pdb',
public_deps='samba-util tdb_compat talloc pyrpc_util',
--- a/source3/wscript_build 2015-07-14 06:54:24.000000000 -0400
+++ b/source3/wscript_build 2016-01-08 19:50:12.780296137 -0500
@@ -1452,13 +1452,14 @@
param''',
install=False)
-bld.SAMBA3_PYTHON('pysmbd',
+if not bld.env.disable_python:
+ bld.SAMBA3_PYTHON('pysmbd',
source='smbd/pysmbd.c',
deps='smbd_base pyrpc_util',
realname='samba/samba3/smbd.so'
)
-bld.SAMBA3_PYTHON('pylibsmb',
+ bld.SAMBA3_PYTHON('pylibsmb',
source='libsmb/pylibsmb.c',
deps='smbclient samba-credentials',
realname='samba/samba3/libsmb_samba_internal.so'
--- a/source4/auth/gensec/wscript_build 2014-10-01 05:06:01.000000000 -0400
+++ b/source4/auth/gensec/wscript_build 2016-01-08 19:50:12.560297043 -0500
@@ -34,7 +34,8 @@
)
-bld.SAMBA_PYTHON('pygensec',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pygensec',
source='pygensec.c',
deps='gensec pytalloc-util pyparam_util',
realname='samba/gensec.so'
--- a/source4/auth/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/auth/wscript_build 2016-01-08 19:50:12.580296961 -0500
@@ -43,7 +43,8 @@
)
-bld.SAMBA_PYTHON('pyauth',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pyauth',
source='pyauth.c',
public_deps='auth_system_session',
deps='samdb pytalloc-util pyparam_util pyldb-util pycredentials auth4',
--- a/source4/dsdb/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/dsdb/wscript_build 2016-01-08 19:50:12.590296920 -0500
@@ -58,7 +58,9 @@
enabled=bld.AD_DC_BUILD_IS_ENABLED()
)
-bld.SAMBA_PYTHON('python_dsdb',
+
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('python_dsdb',
source='pydsdb.c',
# the dependency on dcerpc here is because gensec
# depends on dcerpc but the waf circular dependency finder
--- a/source4/lib/com/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/lib/com/wscript_build 2016-01-08 19:50:12.600296878 -0500
@@ -26,8 +26,8 @@
init_function='com_simple_init'
)
-
-bld.SAMBA_PYTHON('pycom',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pycom',
source='pycom.c',
deps='COM',
realname='samba/com.so',
--- a/source4/lib/messaging/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/lib/messaging/wscript_build 2016-01-08 19:50:12.620296796 -0500
@@ -8,7 +8,8 @@
private_library=True
)
-bld.SAMBA_PYTHON('python_messaging',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('python_messaging',
source='pymessaging.c',
deps='MESSAGING events pyparam_util',
realname='samba/messaging.so'
--- a/source4/lib/policy/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/lib/policy/wscript_build 2016-01-08 20:29:35.981473795 -0500
@@ -1,6 +1,7 @@
#!/usr/bin/env python
-bld.SAMBA_LIBRARY('samba-policy',
+if not bld.env.disable_python:
+ bld.SAMBA_LIBRARY('samba-policy',
source='gp_ldap.c gp_filesys.c gp_manage.c gp_ini.c',
pc_files='samba-policy.pc',
public_deps='ldb samba-net',
@@ -9,7 +10,7 @@
public_headers='policy.h'
)
-bld.SAMBA_PYTHON('py_policy',
+ bld.SAMBA_PYTHON('py_policy',
source='pypolicy.c',
public_deps='samba-policy pytalloc-util',
realname='samba/policy.so'
--- a/source4/lib/registry/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/lib/registry/wscript_build 2016-01-08 19:50:12.640296714 -0500
@@ -62,7 +62,8 @@
)
-bld.SAMBA_PYTHON('py_registry',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('py_registry',
source='pyregistry.c',
public_deps='registry pytalloc-util pyparam_util',
realname='samba/registry.so'
--- a/source4/lib/wmi/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/lib/wmi/wscript_build 2016-01-08 19:50:12.650296673 -0500
@@ -19,7 +19,8 @@
)
-bld.SAMBA_PYTHON('pywmi',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pywmi',
source='wmi_wrap.c',
public_deps='LIBCLI_SMB ndr samba-util samba-config WMI'
)
--- a/source4/libcli/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/libcli/wscript_build 2016-01-08 19:50:12.660296631 -0500
@@ -31,12 +31,13 @@
public_headers='smb_composite/smb_composite.h',
)
-bld.SAMBA_PYTHON('pysmb',
- source='pysmb.c',
- deps='LIBCLI_SMB_COMPOSITE LIBCLI_SMB2 tevent-util pyparam_util',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pysmb',
+ source='pysmb.c',
+ deps='LIBCLI_SMB_COMPOSITE LIBCLI_SMB2 tevent-util pyparam_util',
public_deps='cli_composite samba-credentials gensec LIBCLI_RESOLVE tevent param_options',
- realname='samba/smb.so'
- )
+ realname='samba/smb.so'
+ )
bld.SAMBA_SUBSYSTEM('LIBCLI_DGRAM',
source='dgram/dgramsocket.c dgram/mailslot.c dgram/netlogon.c dgram/browse.c',
--- a/source4/libnet/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/libnet/wscript_build 2016-01-08 20:28:18.921747084 -0500
@@ -1,6 +1,7 @@
#!/usr/bin/env python
-bld.SAMBA_LIBRARY('samba-net',
+if not bld.env.disable_python:
+ bld.SAMBA_LIBRARY('samba-net',
source='libnet.c libnet_passwd.c libnet_time.c libnet_rpc.c libnet_join.c libnet_site.c libnet_become_dc.c libnet_unbecome_dc.c libnet_vampire.c libnet_samdump.c libnet_samsync_ldb.c libnet_user.c libnet_group.c libnet_share.c libnet_lookup.c libnet_domain.c userinfo.c groupinfo.c userman.c groupman.c prereq_domain.c libnet_samsync.c',
autoproto='libnet_proto.h',
public_deps='samba-credentials dcerpc dcerpc-samr RPC_NDR_LSA RPC_NDR_SRVSVC RPC_NDR_DRSUAPI cli_composite LIBCLI_RESOLVE LIBCLI_FINDDCS cli_cldap LIBCLI_FINDDCS gensec_schannel LIBCLI_AUTH ndr smbpasswdparser PROVISION LIBCLI_SAMSYNC LIBTSOCKET',
@@ -8,13 +9,13 @@
)
-bld.SAMBA_PYTHON('python_net',
+ bld.SAMBA_PYTHON('python_net',
source='py_net.c',
deps='samba-net pyrpc_util',
realname='samba/net.so'
)
-bld.SAMBA_PYTHON('python_dckeytab',
+ bld.SAMBA_PYTHON('python_dckeytab',
source='py_net_dckeytab.c libnet_export_keytab.c',
deps='pyrpc_util HDB_SAMBA4 com_err',
realname='samba/dckeytab.so',
--- a/source4/librpc/wscript_build 2014-10-01 05:06:01.000000000 -0400
+++ b/source4/librpc/wscript_build 2016-01-08 19:50:12.700296467 -0500
@@ -143,228 +143,228 @@
vnum='0.0.1'
)
-bld.SAMBA_SUBSYSTEM('pyrpc_util',
+if not bld.env.disable_python:
+ bld.SAMBA_SUBSYSTEM('pyrpc_util',
source='rpc/pyrpc_util.c',
public_deps='pytalloc-util pyparam_util dcerpc MESSAGING',
pyext=True,
)
-
-bld.SAMBA_PYTHON('python_dcerpc',
+ bld.SAMBA_PYTHON('python_dcerpc',
source='rpc/pyrpc.c',
public_deps='LIBCLI_SMB samba-util samba-hostconfig dcerpc-samr RPC_NDR_LSA DYNCONFIG pyrpc_util gensec',
realname='samba/dcerpc/base.so'
)
-bld.SAMBA_PYTHON('python_srvsvc',
- source='../../librpc/gen_ndr/py_srvsvc.c',
- deps='RPC_NDR_SRVSVC pytalloc-util pyrpc_util',
- realname='samba/dcerpc/srvsvc.so'
- )
+ bld.SAMBA_PYTHON('python_srvsvc',
+ source='../../librpc/gen_ndr/py_srvsvc.c',
+ deps='RPC_NDR_SRVSVC pytalloc-util pyrpc_util',
+ realname='samba/dcerpc/srvsvc.so'
+ )
-bld.SAMBA_PYTHON('python_echo',
+ bld.SAMBA_PYTHON('python_echo',
source='../../librpc/gen_ndr/py_echo.c',
deps='RPC_NDR_ECHO pytalloc-util pyrpc_util',
realname='samba/dcerpc/echo.so'
)
-bld.SAMBA_PYTHON('python_dns',
+ bld.SAMBA_PYTHON('python_dns',
source='../../librpc/gen_ndr/py_dns.c',
deps='RPC_NDR_DNS pytalloc-util pyrpc_util',
realname='samba/dcerpc/dns.so'
)
-bld.SAMBA_PYTHON('python_auth',
+ bld.SAMBA_PYTHON('python_auth',
source='../../librpc/gen_ndr/py_auth.c',
deps='NDR_AUTH pytalloc-util pyrpc_util',
realname='samba/dcerpc/auth.so'
)
-bld.SAMBA_PYTHON('python_krb5pac',
+ bld.SAMBA_PYTHON('python_krb5pac',
source='../../librpc/gen_ndr/py_krb5pac.c',
deps='ndr-krb5pac pytalloc-util pyrpc_util',
realname='samba/dcerpc/krb5pac.so'
)
-bld.SAMBA_PYTHON('python_winreg',
+ bld.SAMBA_PYTHON('python_winreg',
source='../../librpc/gen_ndr/py_winreg.c',
deps='RPC_NDR_WINREG pytalloc-util pyrpc_util',
realname='samba/dcerpc/winreg.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_misc',
+ bld.SAMBA_PYTHON('python_dcerpc_misc',
source='../../librpc/gen_ndr/py_misc.c',
deps='pytalloc-util pyrpc_util ndr-krb5pac',
realname='samba/dcerpc/misc.so'
)
-bld.SAMBA_PYTHON('python_initshutdown',
+ bld.SAMBA_PYTHON('python_initshutdown',
source='../../librpc/gen_ndr/py_initshutdown.c',
deps='RPC_NDR_INITSHUTDOWN pytalloc-util pyrpc_util',
realname='samba/dcerpc/initshutdown.so'
)
-bld.SAMBA_PYTHON('python_epmapper',
+ bld.SAMBA_PYTHON('python_epmapper',
source='../../librpc/gen_ndr/py_epmapper.c',
deps='dcerpc pytalloc-util pyrpc_util',
realname='samba/dcerpc/epmapper.so'
)
-bld.SAMBA_PYTHON('python_mgmt',
+ bld.SAMBA_PYTHON('python_mgmt',
source='../../librpc/gen_ndr/py_mgmt.c',
deps='pytalloc-util dcerpc pyrpc_util',
realname='samba/dcerpc/mgmt.so'
)
-bld.SAMBA_PYTHON('python_atsvc',
+ bld.SAMBA_PYTHON('python_atsvc',
source='../../librpc/gen_ndr/py_atsvc.c',
deps='dcerpc-atsvc pytalloc-util pyrpc_util',
realname='samba/dcerpc/atsvc.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_nbt',
+ bld.SAMBA_PYTHON('python_dcerpc_nbt',
source='../../librpc/gen_ndr/py_nbt.c',
deps='ndr_nbt RPC_NDR_NBT pytalloc-util pyrpc_util',
realname='samba/dcerpc/nbt.so'
)
-bld.SAMBA_PYTHON('python_samr',
+ bld.SAMBA_PYTHON('python_samr',
source='../../librpc/gen_ndr/py_samr.c',
deps='dcerpc-samr pytalloc-util pyrpc_util',
realname='samba/dcerpc/samr.so'
)
-bld.SAMBA_PYTHON('python_svcctl',
+ bld.SAMBA_PYTHON('python_svcctl',
source='../../librpc/gen_ndr/py_svcctl.c',
deps='RPC_NDR_SVCCTL pytalloc-util pyrpc_util',
realname='samba/dcerpc/svcctl.so'
)
-bld.SAMBA_PYTHON('python_lsa',
+ bld.SAMBA_PYTHON('python_lsa',
source='../../librpc/gen_ndr/py_lsa.c',
deps='RPC_NDR_LSA pytalloc-util pyrpc_util',
realname='samba/dcerpc/lsa.so'
)
-bld.SAMBA_PYTHON('python_wkssvc',
+ bld.SAMBA_PYTHON('python_wkssvc',
source='../../librpc/gen_ndr/py_wkssvc.c',
deps='RPC_NDR_WKSSVC pytalloc-util pyrpc_util',
realname='samba/dcerpc/wkssvc.so'
)
-bld.SAMBA_PYTHON('python_dfs',
+ bld.SAMBA_PYTHON('python_dfs',
source='../../librpc/gen_ndr/py_dfs.c',
deps='RPC_NDR_DFS pytalloc-util pyrpc_util',
realname='samba/dcerpc/dfs.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_dcerpc',
+ bld.SAMBA_PYTHON('python_dcerpc_dcerpc',
source='../../librpc/gen_ndr/py_dcerpc.c',
deps='NDR_DCERPC pytalloc-util pyrpc_util',
realname='samba/dcerpc/dcerpc.so'
)
-bld.SAMBA_PYTHON('python_unixinfo',
+ bld.SAMBA_PYTHON('python_unixinfo',
source='../../librpc/gen_ndr/py_unixinfo.c',
deps='RPC_NDR_UNIXINFO pytalloc-util pyrpc_util',
realname='samba/dcerpc/unixinfo.so'
)
-bld.SAMBA_PYTHON('python_irpc',
+ bld.SAMBA_PYTHON('python_irpc',
source='gen_ndr/py_irpc.c',
deps='RPC_NDR_IRPC pytalloc-util pyrpc_util',
realname='samba/dcerpc/irpc.so'
)
-bld.SAMBA_PYTHON('python_server_id',
+ bld.SAMBA_PYTHON('python_server_id',
source='../../librpc/gen_ndr/py_server_id.c',
deps='RPC_NDR_SERVER_ID pytalloc-util pyrpc_util',
realname='samba/dcerpc/server_id.so'
)
-bld.SAMBA_PYTHON('python_winbind',
+ bld.SAMBA_PYTHON('python_winbind',
source='../../librpc/gen_ndr/py_winbind.c',
deps='RPC_NDR_WINBIND pytalloc-util pyrpc_util python_netlogon',
realname='samba/dcerpc/winbind.so'
)
-bld.SAMBA_PYTHON('python_idmap',
+ bld.SAMBA_PYTHON('python_idmap',
source='../../librpc/gen_ndr/py_idmap.c',
deps='NDR_IDMAP pytalloc-util pyrpc_util',
realname='samba/dcerpc/idmap.so'
)
-bld.SAMBA_PYTHON('python_drsuapi',
+ bld.SAMBA_PYTHON('python_drsuapi',
source='../../librpc/gen_ndr/py_drsuapi.c',
deps='RPC_NDR_DRSUAPI pytalloc-util pyrpc_util',
realname='samba/dcerpc/drsuapi.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_security',
+ bld.SAMBA_PYTHON('python_dcerpc_security',
source='../../librpc/gen_ndr/py_security.c',
deps='pytalloc-util pyrpc_util NDR_SECURITY',
realname='samba/dcerpc/security.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_drsblobs',
+ bld.SAMBA_PYTHON('python_dcerpc_drsblobs',
source='../../librpc/gen_ndr/py_drsblobs.c',
deps='pytalloc-util pyrpc_util NDR_SECURITY RPC_NDR_DRSBLOBS',
realname='samba/dcerpc/drsblobs.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_dnsp',
+ bld.SAMBA_PYTHON('python_dcerpc_dnsp',
source='../../librpc/gen_ndr/py_dnsp.c',
deps='pytalloc-util pyrpc_util NDR_SECURITY RPC_NDR_DNSP',
realname='samba/dcerpc/dnsp.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_xattr',
+ bld.SAMBA_PYTHON('python_dcerpc_xattr',
source='../../librpc/gen_ndr/py_xattr.c',
deps='pytalloc-util pyrpc_util RPC_NDR_XATTR',
realname='samba/dcerpc/xattr.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_idmap',
+ bld.SAMBA_PYTHON('python_dcerpc_idmap',
source='../../librpc/gen_ndr/py_idmap.c',
deps='pytalloc-util pyrpc_util RPC_NDR_XATTR',
realname='samba/dcerpc/idmap.so'
)
-bld.SAMBA_PYTHON('python_netlogon',
+ bld.SAMBA_PYTHON('python_netlogon',
source='../../librpc/gen_ndr/py_netlogon.c',
deps='RPC_NDR_NETLOGON pytalloc-util pyrpc_util',
realname='samba/dcerpc/netlogon.so'
)
-bld.SAMBA_PYTHON('python_dnsserver',
+ bld.SAMBA_PYTHON('python_dnsserver',
source='../../librpc/gen_ndr/py_dnsserver.c',
deps='RPC_NDR_DNSSERVER pytalloc-util pyrpc_util',
realname='samba/dcerpc/dnsserver.so'
)
-bld.SAMBA_PYTHON('python_dcerpc_smb_acl',
+ bld.SAMBA_PYTHON('python_dcerpc_smb_acl',
source='../../librpc/gen_ndr/py_smb_acl.c',
deps='pytalloc-util pyrpc_util',
realname='samba/dcerpc/smb_acl.so'
)
-bld.SAMBA_SCRIPT('python_dcerpc_init',
+ bld.SAMBA_SCRIPT('python_dcerpc_init',
pattern='rpc/dcerpc.py',
installdir='python/samba/dcerpc',
installname='__init__.py')
-bld.INSTALL_FILES('${PYTHONARCHDIR}/samba/dcerpc', 'rpc/dcerpc.py', destname='__init__.py')
+ bld.INSTALL_FILES('${PYTHONARCHDIR}/samba/dcerpc', 'rpc/dcerpc.py', destname='__init__.py')
--- a/source4/ntvfs/posix/wscript_build 2014-10-01 05:06:01.000000000 -0400
+++ b/source4/ntvfs/posix/wscript_build 2016-01-08 19:50:12.730296343 -0500
@@ -30,7 +30,8 @@
)
-bld.SAMBA_MODULE('ntvfs_posix',
+if not bld.env.disable_python:
+ bld.SAMBA_MODULE('ntvfs_posix',
source='vfs_posix.c pvfs_util.c pvfs_search.c pvfs_dirlist.c pvfs_fileinfo.c pvfs_unlink.c pvfs_mkdir.c pvfs_open.c pvfs_read.c pvfs_flush.c pvfs_write.c pvfs_fsinfo.c pvfs_qfileinfo.c pvfs_setfileinfo.c pvfs_rename.c pvfs_resolve.c pvfs_shortname.c pvfs_lock.c pvfs_oplock.c pvfs_wait.c pvfs_seek.c pvfs_ioctl.c pvfs_xattr.c pvfs_streams.c pvfs_notify.c pvfs_sys.c xattr_system.c',
autoproto='vfs_posix_proto.h',
subsystem='ntvfs',
@@ -40,7 +41,7 @@
)
-bld.SAMBA_PYTHON('python_xattr_native',
+ bld.SAMBA_PYTHON('python_xattr_native',
source='python/pyxattr_native.c',
deps='ndr ldb samdb samba-credentials pyparam_util attr',
realname='samba/xattr_native.so'
@@ -52,13 +53,14 @@
autoproto='posix_eadb_proto.h',
private_library=True)
-bld.SAMBA_PYTHON('python_posix_eadb',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('python_posix_eadb',
source='python/pyposix_eadb.c',
deps='pyparam_util posix_eadb tdb_compat',
realname='samba/posix_eadb.so'
)
-bld.SAMBA_PYTHON('python_xattr_tdb',
+ bld.SAMBA_PYTHON('python_xattr_tdb',
source='python/pyxattr_tdb.c',
deps='pyparam_util xattr_tdb',
realname='samba/xattr_tdb.so'
--- a/source4/param/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/source4/param/wscript_build 2016-01-08 19:50:12.750296261 -0500
@@ -1,6 +1,7 @@
#!/usr/bin/env python
-bld.SAMBA_SUBSYSTEM('PROVISION',
+if not bld.env.disable_python:
+ bld.SAMBA_SUBSYSTEM('PROVISION',
source='provision.c pyparam.c',
deps='LIBPYTHON pyparam_util ldb pytalloc-util pyldb-util',
pyext=True,
@@ -36,7 +37,8 @@
)
-bld.SAMBA_PYTHON('pyparam',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('pyparam',
source='pyparam.c',
deps='samba-hostconfig pytalloc-util',
realname='samba/param.so'
@@ -47,7 +49,8 @@
deps='samba-hostconfig')
-bld.SAMBA_SUBSYSTEM('pyparam_util',
+if not bld.env.disable_python:
+ bld.SAMBA_SUBSYSTEM('pyparam_util',
source='pyparam_util.c',
deps='LIBPYTHON samba-hostconfig',
pyext=True,
--- a/source4/winbind/wscript_build 2014-10-01 04:12:22.000000000 -0400
+++ b/source4/winbind/wscript_build 2016-01-08 20:31:17.741112909 -0500
@@ -1,7 +1,7 @@
#!/usr/bin/env python
-
-bld.SAMBA_MODULE('service_winbind',
+if not bld.env.disable_python:
+ bld.SAMBA_MODULE('service_winbind',
source='wb_server.c wb_irpc.c wb_samba3_protocol.c wb_samba3_cmd.c wb_init_domain.c wb_dom_info.c wb_dom_info_trusted.c wb_sid2domain.c wb_name2domain.c wb_sids2xids.c wb_xids2sids.c wb_gid2sid.c wb_sid2uid.c wb_sid2gid.c wb_uid2sid.c wb_connect_lsa.c wb_connect_sam.c wb_cmd_lookupname.c wb_cmd_lookupsid.c wb_cmd_getdcname.c wb_cmd_getgrnam.c wb_cmd_getgrgid.c wb_cmd_getpwnam.c wb_cmd_getpwuid.c wb_cmd_userdomgroups.c wb_cmd_usersids.c wb_cmd_list_groups.c wb_cmd_list_trustdom.c wb_cmd_list_users.c wb_cmd_setpwent.c wb_cmd_getpwent.c wb_cmd_getgrent.c wb_cmd_setgrent.c wb_cmd_getgroups.c wb_pam_auth.c wb_sam_logon.c wb_update_rodc_dns.c',
autoproto='wb_proto.h',
subsystem='service',
--- a/wscript 2015-10-27 04:11:29.000000000 -0400
+++ b/wscript 2016-01-08 19:50:12.510297249 -0500
@@ -75,10 +75,15 @@
opt.tool_options('python') # options for disabling pyc or pyo compilation
# enable options related to building python extensions
+ opt.add_option('--disable-python',
+ help=("do not generate python modules"),
+ action="store_true", dest='disable_python', default=False)
def configure(conf):
version = samba_version.load_version(env=conf.env)
+ conf.env.disable_python = getattr(Options.options, 'disable_python', False)
+
conf.DEFINE('CONFIG_H_IS_FROM_SAMBA', 1)
conf.DEFINE('_SAMBA_BUILD_', version.MAJOR, add_to_cflags=True)
conf.DEFINE('HAVE_CONFIG_H', 1, add_to_cflags=True)
@@ -96,7 +101,10 @@
conf.find_program('xsltproc', var='XSLTPROC')
conf.SAMBA_CHECK_PYTHON(mandatory=True, version=(2,5,0))
- conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
+ if conf.env.disable_python:
+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False)
+ else:
+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
if sys.platform == 'darwin' and not conf.env['HAVE_ENVIRON_DECL']:
# Mac OSX needs to have this and it's also needed that the python is compiled with this
--- a/wscript_build 2014-12-20 10:27:51.000000000 -0500
+++ b/wscript_build 2016-01-08 19:50:12.510297249 -0500
@@ -48,7 +48,8 @@
bld.RECURSE('lib/param')
bld.RECURSE('dynconfig')
bld.RECURSE('lib/util/charset')
-bld.RECURSE('python')
+if not bld.env.disable_python:
+ bld.RECURSE('python')
bld.RECURSE('source4/param')
bld.RECURSE('source4/librpc')
bld.RECURSE('source4/dsdb')
@@ -99,7 +100,8 @@
bld.RECURSE('source4/utils')
bld.RECURSE('source4/ntvfs')
bld.RECURSE('source4/ntptr')
-bld.RECURSE('source4/torture')
+if not bld.env.disable_python:
+ bld.RECURSE('source4/torture')
bld.RECURSE('librpc')
bld.RECURSE('source4')
bld.RECURSE('source4/libcli')
--- a/lib/ldb-samba/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/lib/ldb-samba/wscript_build 2016-01-08 20:43:53.538486348 -0500
@@ -19,7 +19,8 @@
)
-bld.SAMBA_PYTHON('python_samba__ldb', 'pyldb.c',
+if not bld.env.disable_python:
+ bld.SAMBA_PYTHON('python_samba__ldb', 'pyldb.c',
deps='ldbsamba pyparam_util ldbwrap pyldb-util',
realname='samba/_ldb.so')
--- a/libcli/echo/tests/wscript_build 2014-10-01 04:12:21.000000000 -0400
+++ b/libcli/echo/tests/wscript_build 2016-01-08 21:06:36.644107638 -0500
@@ -1,6 +1,7 @@
#!/usr/bin/env python
-bld.SAMBA_MODULE('TORTURE_LIBCLI_ECHO',
+if not bld.env.disable_python:
+ bld.SAMBA_MODULE('TORTURE_LIBCLI_ECHO',
source='echo.c',
subsystem='smbtorture',
init_function='torture_libcli_echo_init',

View File

@@ -0,0 +1,229 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='threads(+)'
inherit python-single-r1 waf-utils multilib-minimal linux-info systemd eutils
MY_PV="${PV/_rc/rc}"
MY_P="${PN}-${MY_PV}"
SRC_PATH="stable"
[[ ${PV} = *_rc* ]] && SRC_PATH="rc"
SRC_URI="mirror://samba/${SRC_PATH}/${MY_P}.tar.gz"
KEYWORDS="~amd64 ~hppa ~x86"
[[ ${PV} = *_rc* ]] && KEYWORDS="~hppa"
DESCRIPTION="Samba Suite Version 4"
HOMEPAGE="http://www.samba.org/"
LICENSE="GPL-3"
SLOT="0"
IUSE="acl addc addns ads aio avahi client cluster cups dmapi fam gnutls iprint
ldap pam quota selinux syslog +system-mitkrb5 systemd test winbind"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/samba-4.0/policy.h
)
# sys-apps/attr is an automagic dependency (see bug #489748)
CDEPEND="${PYTHON_DEPS}
>=app-arch/libarchive-3.1.2[${MULTILIB_USEDEP}]
dev-libs/libbsd[${MULTILIB_USEDEP}]
dev-libs/iniparser:0
dev-libs/popt[${MULTILIB_USEDEP}]
sys-libs/readline:=
virtual/libiconv
dev-python/subunit[${PYTHON_USEDEP}]
>=net-libs/socket_wrapper-1.1.2[${MULTILIB_USEDEP}]
sys-apps/attr[${MULTILIB_USEDEP}]
sys-libs/libcap
>=sys-libs/ldb-1.1.24[${MULTILIB_USEDEP}]
sys-libs/ncurses:0=
>=sys-libs/nss_wrapper-1.0.2[${MULTILIB_USEDEP}]
>=sys-libs/ntdb-1.0[python,${PYTHON_USEDEP},${MULTILIB_USEDEP}]
>=sys-libs/talloc-2.1.2[python,${PYTHON_USEDEP},${MULTILIB_USEDEP}]
>=sys-libs/tdb-1.3.6[python,${PYTHON_USEDEP},${MULTILIB_USEDEP}]
>=sys-libs/tevent-0.9.25[${MULTILIB_USEDEP}]
>=sys-libs/uid_wrapper-1.0.1[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
virtual/pam
acl? ( virtual/acl )
addns? ( net-dns/bind-tools[gssapi] )
aio? ( dev-libs/libaio )
cluster? ( >=dev-db/ctdb-1.0.114_p1 )
cups? ( net-print/cups )
dmapi? ( sys-apps/dmapi )
fam? ( virtual/fam )
gnutls? ( dev-libs/libgcrypt:0
>=net-libs/gnutls-1.4.0 )
ldap? ( net-nds/openldap )
system-mitkrb5? ( app-crypt/mit-krb5[${MULTILIB_USEDEP}] )
!system-mitkrb5? ( >=app-crypt/heimdal-1.5[-ssl,${MULTILIB_USEDEP}] )
systemd? ( sys-apps/systemd:0= )"
DEPEND="${CDEPEND}
virtual/pkgconfig"
RDEPEND="${CDEPEND}
client? ( net-fs/cifs-utils[ads?] )
selinux? ( sec-policy/selinux-samba )
"
REQUIRED_USE="addc? ( gnutls !system-mitkrb5 )
ads? ( acl gnutls ldap )
${PYTHON_REQUIRED_USE}"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/${PN}-4.2.3-heimdal_compilefix.patch"
"${FILESDIR}/${PN}-4.2.7-pam.patch"
"${FILESDIR}/${PN}-4.2.7-disable-python-for-altabi.patch"
)
CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)"
WAF_BINARY="${S}/buildtools/bin/waf"
pkg_setup() {
python-single-r1_pkg_setup
if use aio ; then
if ! linux_config_exists || ! linux_chkconfig_present AIO; then
ewarn "You must enable AIO support in your kernel config, "
ewarn "to be able to support asynchronous I/O. "
ewarn "You can find it at"
ewarn
ewarn "General Support"
ewarn " Enable AIO support "
ewarn
ewarn "and recompile your kernel..."
fi
fi
}
src_prepare() {
epatch ${PATCHES[@]}
# Allow user patches
epatch_user
multilib_copy_sources
}
multilib_src_configure() {
local myconf=()
myconf=(
--enable-fhs
--sysconfdir=/etc
--localstatedir=/var
--with-modulesdir=/usr/$(get_libdir)/samba
--with-piddir=/var/run/${PN}
--bundled-libraries=NONE
--builtin-libraries=NONE
--disable-rpath
--disable-rpath-install
--nopyc
--nopyo
)
if multilib_is_native_abi ; then myconf+=(
$(use_with acl acl-support)
$(usex addc '' '--without-ad-dc')
$(use_with addns dnsupdate)
$(use_with ads)
$(usex ads '--with-shared-modules=idmap_ad' '')
$(use_with aio aio-support)
$(usex cluster '--with-ctdb-dir=/usr' '')
$(use_enable avahi)
$(use_with cluster cluster-support)
$(use_enable cups)
$(use_with dmapi)
$(use_with fam)
$(use_enable gnutls)
$(use_enable iprint)
$(use_with ldap)
$(use_with pam)
$(use_with pam pam_smbpass)
$(usex pam "--with-pammodulesdir=/$(get_libdir)/security" '')
$(use_with quota quotas)
$(use_with syslog)
$(use_with systemd)
$(usex system-mitkrb5 '--with-system-mitkrb5' '')
$(use_with winbind)
$(usex test '--enable-selftest' '')
); else myconf+=(
--without-acl-support
--without-ad-dc
--without-dnsupdate
--without-ads
--without-aio-support
--disable-avahi
--without-cluster-support
--disable-cups
--without-dmapi
--without-fam
--disable-gnutls
--disable-iprint
--without-ldap
--without-pam
--without-pam_smbpass
--without-quotas
--without-syslog
--without-systemd
$(usex system-mitkrb5 '--with-system-mitkrb5' '')
--without-winbind
--disable-python
); fi
CPPFLAGS="-I${SYSROOT}/usr/include/et ${CPPFLAGS}" \
waf-utils_src_configure ${myconf[@]}
}
multilib_src_install() {
waf-utils_src_install
# Make all .so files executable
find "${D}" -type f -name "*.so" -exec chmod +x {} +
if multilib_is_native_abi; then
# install ldap schema for server (bug #491002)
if use ldap ; then
insinto /etc/openldap/schema
doins examples/LDAP/samba.schema
fi
# install example config file
insinto /etc/samba
doins examples/smb.conf.default
# Install init script and conf.d file
newinitd "${CONFDIR}/samba4.initd-r1" samba
newconfd "${CONFDIR}/samba4.confd" samba
systemd_dotmpfilesd "${FILESDIR}"/samba.conf
systemd_dounit "${FILESDIR}"/nmbd.service
systemd_dounit "${FILESDIR}"/smbd.{service,socket}
systemd_newunit "${FILESDIR}"/smbd_at.service 'smbd@.service'
systemd_dounit "${FILESDIR}"/winbindd.service
systemd_dounit "${FILESDIR}"/samba.service
fi
}
multilib_src_test() {
if multilib_is_native_abi ; then
"${WAF_BINARY}" test || die "test failed"
fi
}
pkg_postinst() {
ewarn "Be aware the this release contains the best of all of Samba's"
ewarn "technology parts, both a file server (that you can reasonably expect"
ewarn "to upgrade existing Samba 3.x releases to) and the AD domain"
ewarn "controller work previously known as 'samba4'."
elog "For further information and migration steps make sure to read "
elog "http://samba.org/samba/history/${P}.html "
elog "http://samba.org/samba/history/${PN}-4.2.0.html and"
elog "http://wiki.samba.org/index.php/Samba4/HOWTO "
}