1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-08 21:18:16 +03:00
Commit Graph

231 Commits

Author SHA1 Message Date
Stefan Metzmacher
04bb8ff7e6 wafsamba: allow an optional dep_vars list to be passed to SAMBA_GENERATOR()
This can be used to checksum variables used in the rule function.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2014-09-05 19:47:06 +02:00
Stefan Metzmacher
da8c763545 wafsamba: fix dependency for SAMBA_GENERATOR() when passing vars!=None
vars can only be a dictionary as that's the only thing bld.EXPAND_VARIABLES()
accepts.

We need to checksum the whole vars dictionary into the dependencies.

We set task.env.SAMBA_GENERATOR_VARS = vars and add SAMBA_GENERATOR_VARS
to the dep_vars.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=10472

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2014-09-05 19:47:05 +02:00
Stefan Metzmacher
ee8fbbd417 wafsamba: fix dependency calculation for SAMBA_GENERATOR()
We need to checksum the rule as string command of the
sourcecode of the python function.

This is stored in the 'ruledeps' envariable on the waf Task.
See exec_rule() in wafadmin/TaskGen.py.

    dep_vars = getattr(self, 'dep_vars', ['ruledeps'])
    if dep_vars:
        tsk.dep_vars = dep_vars
    if isinstance(self.rule, str):
        tsk.env.ruledeps = self.rule
    else:
        # only works if the function is in a global module such as a waf tool
        tsk.env.ruledeps = Utils.h_fun(self.rule)

If there's no 'dep_vars' it defaults to ['ruledeps'].
As we pass our own 'dep_vars' we need to explicitly add
'ruledeps'.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=10472

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2014-09-05 19:47:05 +02:00
Michael Adam
210d7de34f wafsamba: improve wording in a comment
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2014-09-05 19:47:05 +02:00
Michael Adam
ca06fac2c8 wafsamba: remove unused variable from copy_and_fix_python_path
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2014-09-05 19:47:05 +02:00
Ira Cooper
f46b79bdb8 third_party/iniparser: Initial support for iniparser.
This is the initial support for iniparser, as well the basic
third_party framework.

Signed-off-by: Ira Cooper <ira@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
2014-08-09 18:26:16 +02:00
Stefan Metzmacher
8a1f67b53b wafsamba: add optional allow_warnings(default=True) to SAMBA_{SUBSYSTEM,LIBRARY,MODULE}()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-04-02 09:03:45 +02:00
Garming Sam
57ba012c10 docs: define and include entities for the docs
This allows for dynamic default settings to be generated.

Change-Id: If8b93d233fb941bc7e3073ccf4b5ec0b0a231bd9
Pair-programmed-with: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2014-01-31 21:07:05 +01:00
Andreas Schneider
191e6b9441 waf: Build with RELRO if supported by the compiler.
Make sure we create binaries with full RELocation Read-Only support. See
https://isisblogs.poly.edu/2011/06/01/relro-relocation-read-only/
for more details.

The default is to check if the compiler supports RELRO and then enable
it. Specifying '--with-relro' will make it mandatory and
'--without-relro' will disable it.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
2013-07-09 13:00:37 -07:00
Michael Adam
3f24d694e7 build: Add missing new line to replaced python shebang line. (Fix bug #9909)
When configuring with a non-standard python specified in
the PYTHON environment variable, the shebang lines in various
python tools like samba-tool and samba_dnsupdate get replaced.

This replace line for the shebang was missing a newline
which joined the shebang line with the following line,
rendereing those scripts with a nonempty second line unusuable,
for example samba_dnsupdate.

This patch fixes this bug which is bug #9909 on bugzilla.

Pair-Programmed-With: Karolin Seeger <kseeger@samba.org>

Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Karolin Seeger <kseeger@samba.org>

Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Wed May 29 13:21:51 CEST 2013 on sn-devel-104
2013-05-29 13:21:51 +02:00
David Disseldorp
4e76a77f62 waf: build position independent executables
This patch re-instates support for building Position Independent
Executables using the '-fPIE' and '-pie' compiler and linker flags
respectively.

PIE builds are enabled by default, and can be explicitly disabled using
the '--without-pie' configure argument.

Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Tue May 28 02:56:36 CEST 2013 on sn-devel-104
2013-05-28 02:56:36 +02:00
Andrew Bartlett
c6673b96a5 build: Remove binaries and libraries build groups
Build groups are used in Samba to ensure that even if the dependency
chain for a target is not perfect, that it builds reliably.  This
matters most in the early build stages, where we are building the asn1
compiler and autogenerating files.

Once we get to the main stage, dependencies between C files, libraries
and binaries are much clearer, because the C compiler and linker takes
these as inputs anyway.

Groups were added to our waf build for stability during early
development, as dependency information was first imported from the
previous autoconf/perl based build system.

I don't think we need this distinction in the main build of C files
into .o, and when linking these into binaries, because the invocation
of these tools is very well defined, and we will find any missing
inputs very quickly.

As such, I've removed the libraries and binaries targets,
consolidating them with 'main'

By making this change, a build of smbtorture only on a clean tree
drops from 3778 to 2489 targets, and much of the expensive linker
stage is skipped.  The time for a null build of smbtorture only also
drops from 4.673s to as low as 2.499s on my laptop.

Andrew Bartlett

Reviewed-by: Jelmer Vernooij <jelmer@samba.org>
2013-05-27 11:56:46 +10:00
Andrew Bartlett
58e3c5323e build: Replace #!/usr/bin/env python with passed in PYTHON=
This means that if we were forced to use a specific python for the build, we
will put that binary into the top of samba-tool, so it continues to work
after the install.

Andrew Bartlett

Reviewed-by: Michael Adam <obnox@samba.org>
2013-04-10 00:13:45 +02:00
Andrew Bartlett
80fce353e7 build: Change bin/default/python -> bin/python symlink to bin/default/python_modules
This avoids a collision with the new top level python directory.

Andrew Bartlett
2013-03-02 02:16:52 +01:00
Björn Baumbach
d61d2af372 wafsamba: use additional xml catalog file (bug #9512)
Add additional "/usr/local/share/xml/catalog" catalog file
platforms (used by freebsd).
Fix manual page build on freebsd.

Signed-off-by: Björn Baumbach <bb@sernet.de>
Reviewed-by: Michael Adam <obnox@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
2013-01-15 14:49:19 +01:00
Andrew Bartlett
9dfd0a0dc9 build: Remove bashism from SAMBAMANPAGES rule
In sh, you must assign the variable, then export it.

Andrew Bartlett

Reviewed-by: Stefan Metzmacher <metze@samba.org>
2013-01-10 18:46:22 +11:00
Andreas Schneider
2ad562057a BUG 9459: Install manpages only if we install the target.
Reviewed-by: Alexander Bokovoy <ab@samba.org>

Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Tue Dec  4 18:07:47 CET 2012 on sn-devel-104
2012-12-04 18:07:47 +01:00
Jelmer Vernooij
2a797f29aa s4-python: Various formatting fixes.
* Trailing whitespace
* use of "==" where "is" should be used
* double spaces
2012-09-27 18:45:12 +02:00
Alexander Bokovoy
73ed153310 docs-xml: convert smb.conf.5 build to waf
smb.conf(5) is different from other manpages because before it is
built, it gets merged together from a number of smaller files, one
per parameter. So we first create a parameters.all.xml file that
references all these files and then include it into master smb.conf.5.xml

One small issue is how to handle generated files in WAF build
from xi:include perspective as the files are generated in bin/default/docs-xml
rather than in docs-xml. We solve this by further expanding use of XML catalogs
and rewriting virtual path http://www.samba.org/samba/smbdotconf/ to proper
location.

Both docs-xml autoconf and waf builds work correctly now.

Autobuild-User(master): Alexander Bokovoy <ab@samba.org>
Autobuild-Date(master): Mon Sep 17 14:18:31 CEST 2012 on sn-devel-104
2012-09-17 14:18:31 +02:00
Andreas Schneider
66a87d7cbe wafsamba: Add a SAMBAMANPAGES function. 2012-09-12 12:21:29 +02:00
Andreas Schneider
f0da7c509c waf: Create catalog file for manpage generation. 2012-09-07 10:48:57 +02:00
Andreas Schneider
802708b410 wafsamba: Add a CONFIGURE_FILE option. 2012-09-07 10:48:57 +02:00
Andreas Schneider
18eb505b89 wafsamba: Add support for manpages in SAMBA_MODULE. 2012-09-07 10:48:57 +02:00
Alexander Bokovoy
2ddf89a2bc Introduce system MIT krb5 build with --with-system-mitkrb5 option.
System MIT krb5 build also enabled by specifying --without-ad-dc

When --with-system-mitkrb5 (or --withou-ad-dc) option is passed to top level
configure in WAF build we are trying to detect and use system-wide MIT krb5
libraries. As result, Samba 4 DC functionality will be disabled due to the fact
that it is currently impossible to implement embedded KDC server with MIT krb5.

Thus, --with-system-mitkrb5/--without-ad-dc build will only produce
  * Samba 4 client libraries and their Python bindings
  * Samba 3 server (smbd, nmbd, winbindd from source3/)
  * Samba 3 client libraries

In addition, Samba 4 DC server-specific tests will not be compiled into smbtorture.
This in particular affects spoolss_win, spoolss_notify, and remote_pac rpc tests.
2012-05-23 17:51:50 +03:00
Andrew Bartlett
26007a8917 wafsamba: allow certain public libraries to be forced to be private
This will help installations where the Samba4 libraries must be used but
the main system is not using the system libs that would normally
be installed.  This in particular impacts on libwbclient, which is a
core dep, but is different to that used by the rest of a Samba 3.x based
system.

Use eg:  ./configure --private-libraries=wbclient

Andrew Bartlett

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Fri Apr 20 03:27:22 CEST 2012 on sn-devel-104
2012-04-20 03:27:22 +02:00
Simo Sorce
e21029a270 waf: Fix mispelling
Autobuild-User: Simo Sorce <idra@samba.org>
Autobuild-Date: Thu Apr 19 17:36:41 CEST 2012 on sn-devel-104
2012-04-19 17:36:41 +02:00
Jelmer Vernooij
05bc4de083 Revert making public of the samba-module library.
This library was tiny - containing just two public functions than were
themselves trivial. The amount of overhead this causes isn't really worth the
benefits of sharing the code with other projects like OpenChange. In addition, this code
isn't really generically useful anyway, as it can only load from the module path
set for Samba at configure time.

Adding a new library was breaking the API/ABI anyway, so OpenChange had to be
updated to cope with the new situation one way or another. I've added a simpler
(compatible) routine for loading modules to OpenChange, which is less than 100 lines of code.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sat Dec  3 08:36:33 CET 2011 on sn-devel-104
2011-12-03 08:36:30 +01:00
Jelmer Vernooij
af5c6fba68 waf: Simplify handling of python modules. 2011-11-13 18:06:06 +01:00
Jelmer Vernooij
126209d2e5 Revert 9a5ae8edd6d006c078b3af8fdfd84677a63276b1. 2011-11-13 18:06:06 +01:00
Jelmer Vernooij
0966be49a0 wafsamba: Support allow_undefined_symbols in SAMBA_SUBSYSTEM. 2011-11-13 18:06:06 +01:00
Jelmer Vernooij
8aa988a455 ldb: Use pyembed rather than pyext for ldb-util library. 2011-11-13 18:06:06 +01:00
Jelmer Vernooij
312fd94002 waf: Don't link python modules against libpython2.x, consistent with other Python modules.
Rather, rely just on waf's pyext feature. This fixes a warning from dh_python2.
2011-11-13 18:06:06 +01:00
Andrew Bartlett
b256799eaf lib/util Rename samba_init_module -> samba_module_init
This is to provide a cleaner namespace in the public samba plugin
functions.

Andrew Bartlett
2011-10-28 13:10:28 +02:00
Jelmer Vernooij
31912781ca wafsamba: Only install .pc files if libraries are public. 2011-08-21 03:22:05 +02:00
Jelmer Vernooij
8cb6449130 wafsamba: Require public libraries to have headers. 2011-08-21 03:22:05 +02:00
Jelmer Vernooij
12e1fdf089 wafsamba: Require public libraries to have a pc file specified, or explicitly specified that they don't need one. 2011-08-21 03:22:05 +02:00
Andrew Bartlett
2fcbfcd004 param: Move per-share parameters into a seperate file, to share with s3
This will allow the struct loadparm_service to be in common between
the two loadparm implementations in the tree.

Andrew Bartlett
2011-07-08 11:23:23 +02:00
Andrew Tridgell
720da3cb91 build: fixed dependencies on install prefix for pc files and python scripts
waf can't automatically determine these dependencies as the
construction of the files is via a python function

thanks to Andrew for noticing this bug
2011-06-15 14:13:07 +10:00
Andrew Tridgell
f725e2b64e build: fixed a problem with installing scripts in the build tree
the SAMBA_SCRIPT() function was not always triggering correctly. The
base problem was that we were using a target outside the build
tree. This implements a simpler solution where we just create the
links directly in SAMBA_SCRIPT() rather than creating a waf task

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Jun  1 06:50:04 CEST 2011 on sn-devel-104
2011-06-01 06:50:04 +02:00
Andrew Tridgell
b4d618cc6f waf: build headers in separate 'headers' build group 2011-03-15 12:22:20 +11:00
Andrew Tridgell
f8655f4621 waf: always generate public headers in the build tree
this allows us to properly test our public headers before install
2011-03-15 12:22:19 +11:00
Andrew Tridgell
6c6ab50a40 waf: build substituted public headers in build tree
the bin/default/include/public directory will contain headers that are
ready to install
2011-03-15 12:22:19 +11:00
Andrew Tridgell
f2bcb7028e waf: moved header file handling into its own module
It is getting quite complex now, and shouldn't just be mixed in with
everything else
2011-03-15 12:22:19 +11:00
Andrew Tridgell
03aebc2df8 wafsamba: keep a list of public headers
this will be used to construct test_headers.h, for testing our public
headers
2011-03-15 12:22:18 +11:00
Andrew Tridgell
59be7265ad wafsamba: added global_include option
this allows you to disable the global include additions. We will use
this for testing our public headers without including any of the
source tree directories
2011-03-15 12:22:18 +11:00
Andrew Tridgell
4f52becec1 build: install public headers in the build tree
this symlinks our public headers into the build tree, which will allow
us to refer to the public headers by their public name inside the
source tree.
2011-03-15 12:22:18 +11:00
Andrew Tridgell
949427c208 python: use os.environ[] instead of os.putenv()
using os.putenv() causes too much confusion, as it doesn't update
os.getenv()

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-22 02:51:10 +01:00
Andrew Tridgell
13bffa02d8 waf: improved error message for bad paths in SAMBA_LIBRARY()
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:47 +11:00
Andrew Tridgell
1c5108c98b waf: support building libraries with a directory prefix
SAMBA_LIBRARY('libsmb/smbclient') can now be built, which
distinguishes it from the binary 'smbclient'

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:47 +11:00
Andrew Tridgell
066a93d41c build: fixed passing of includes= for modules
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:46 +11:00