summaryrefslogtreecommitdiff
path: root/wscript
Commit message (Collapse)AuthorAgeFilesLines
* wscript: fix installing pre-commit with 'git worktree'Stefan Metzmacher2021-08-121-5/+15
| | | | | | | | | | | | | .git is not always a directory, with 'git worktree' it's a file. 'git rev-parse --git-path hooks' is the generic way to find the patch for the githooks. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Thu Aug 12 08:56:13 UTC 2021 on sn-devel-184
* build: wscript. Fix the build on FreeBSD with the clang ld.lld-XX linker.Jeremy Allison2021-05-141-0/+28
| | | | | | | | | | | | | | | | | | | | | | | FreeBSD is broken. It doesn't include 'extern char **environ' in any shared library, but statically inside crt0.o. If we're running on a FreeBSD with the GNU linker ld we can get around this by explicitly telling the linker to ignore 'environ' as an unresolved symbol in a shared library. However, the clang linker ld.lld-XX is broken in that it doesn't have that option. First try to see if have '-Wl,--ignore-unresolved-symbol,environ' and just use that if so. If not, we have to use '-Wl,--allow-shlib-undefined' instead and remove all instances of '-Wl,-no-undefined'. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Fri May 14 01:50:25 UTC 2021 on sn-devel-184
* build: Use bison at build time rather than lexyacc.sh to build the embedded ↵Andrew Bartlett2021-04-281-0/+12
| | | | | | | | | | | | | | heimdal Because the filenames are changed to the *.tab.{h,c} format a transitional header is added. While the built compilers differ, the output of the compilers and the resulting .o files have been verified not to have changed on Ubuntu 20.04. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* build: Only add -Wl,--as-needed when supportedMartin Schwenke2021-04-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If -Wl,--as-needed is added to EXTRA_LDFLAGS (via ADD_LDFLAGS, as per commit 996560191ac6bd603901dcd6c0de5d239e019ef4) then on some platforms (at least CentOS 8 and Fedora 33), any indirect/recursive dependencies (i.e. private libraries) are added to both the binary (reqid_test in the CTDB case) and to samba-util.so. However, only samba-util.so has rpath set to find private libraries. When ld.so tries to resolve these dependencies for the binary it fails. This may be a bug on those platforms, but it occurs reliably and our users will also hit the bug. For binaries that have other private library dependencies (e.g. bundled talloc) rpath will contain the private library directory so the duplicate private library dependencies are then found... that is, when it works, it works by accident! For some reason (deep in waf or wafsamba) if -Wl,--as-needed is added to LINKFLAGS (as is done in conf.add_as_needed()) then it works: the direct dependencies are only added to samba-util.so and the same depenencies (indirect dependencies for binaries) are not added incorrectly to the binaries. So, without changing 1/2 of waf/wafsamba the simplest fix is to revert to adding -Wl,--as-needed to LINKFLAGS, which was the case before commit 996560191ac6bd603901dcd6c0de5d239e019ef4. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14288 Signed-off-by: Amitay Isaacs <amitay@gmail.com> Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Bjoern Jacke <bj@sernet.de> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* build: Notice if flex is missing at configure timeAndrew Bartlett2021-03-291-3/+13
| | | | | | | | | | | | | This may also fix the coverage build by ensuring --noline is always specified to flex. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14586 Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Mon Mar 29 02:12:23 UTC 2021 on sn-devel-184
* build: Consolidate --with-ntvfs-fileserver into --enable-selftest when ↵Andrew Bartlett2021-03-261-19/+2
| | | | | | | | | | building the AD DC This removes from our configure help a feature which we retain only to support our selftest system. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* wscript: use --as-needed only if tested successfullyBjörn Jacke2021-03-031-1/+2
| | | | | | | | | Some OSes like Solaris based OmiOS don't support this. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14288 Signed-off-by: Bjoern Jacke <bjacke@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* Compile .l files (flex) with the waf rule at runtimeAndrew Bartlett2020-08-071-0/+3
| | | | | | | | | | | | | | | | | | | Other parts of Samba already compile these directly. This makes these files compile with modern compiler warnings. The primary difference (other than being built with a newer flex) is the loss of the #include "config.h" but this is not used in the other .l files elsewehre and does not seem to matter on modern systems. The generated output from compile_et asn1_compile has not changed (so I think the hx509 case is safe). The mdssvc case just has changed file locations and line numbers. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* build: Put the note from the bottom of the old BUILD_SYSTEMS.txt somewhere ↵Andrew Bartlett2020-06-121-0/+19
| | | | | | | | | | | useful This statement on how we handle --with options is best placed near where the options are set, so developers see it when trying to choose the correct thing to do. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* waf: Use waf function to add for -Wl,--as-neededAndreas Schneider2019-09-251-1/+1
| | | | | | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Matthias Dieter Wallnöfer <mdw@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org> Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Wed Sep 25 16:56:40 UTC 2019 on sn-devel-184
* wscript: avoid inefficient string concatenationsBjörn Jacke2019-09-241-3/+2
| | | | | Signed-off-by: Bjoern Jacke <bjacke@samba.org> Reviewed-by: Matthias Dieter Wallnöfer <mdw@samba.org>
* build: fix mandatory typo in zlib configure checkDavid Disseldorp2019-08-201-1/+1
| | | | | | | | | | | | | This ensures that waf correctly fails during configure if zlib is missing. msg can also be dropped as it matches the waf validate_cfg() default (ignoring the quotes). Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Tue Aug 20 06:58:12 UTC 2019 on sn-devel-184
* third_party: Remove zlib from third_partyAndrew Bartlett2019-08-171-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | We require zlib 1.2.3. We stopped requring a patched zlib with 5631a1b9bc03d6cf31af66b13872255f18979fe8 As discussed on samba-technical here: https://lists.samba.org/archive/samba-technical/2019-May/133476.html In short, zlib contains some (old, now broken) crypto code that while not compiled in Samba is best left out of our tarball to ease crypto audits. It is also very very out of date and is a slightly modified copy of something otherwise very likely available on our supported host OSs. It would be strange to say that GnuTLS and dependencies are an acceptable burden to install but say zlib is a step to far. So it is removed from Samba's third_party with this commit. The diff between zlib in Samba and official zlib 1.2.3 is included in third_party/zlib/last-samba-from-1.2.3.diff Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
* waf: Remove configure steps from source4/lib/tlsAndreas Schneider2019-04-301-2/+0
| | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* waf: Add mandatory requirement for GnuTLS >= 3.2.0Andreas Schneider2019-04-301-0/+2
| | | | | | | | | We plan to move to GnuTLS for crypto in Samba, this is the first step to make it mandatory and to require a version which is in LTS distributions. Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* build: Standardise on calling conf.SAMBA_CHECK_PYTHON() in librariesAndrew Bartlett2019-03-211-2/+2
| | | | | | | | | | | | | We do this by removing the confusing mandatory option to conf.SAMBA_CHECK_PYTHON{,_HEADERS}(), instead just use the value of --disable-python internally This follows the default minimum of Python 3.4 and keeps things consistent with the main Samba build where --disable-python is required to skip building python bindings. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* build: Remove manual specification of minimum python versionAndrew Bartlett2019-03-211-2/+1
| | | | | | | We now used the default of 3.4 from conf.SAMBA_CHECK_PYTHON() Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* build: Do not make python mandatory to buildAndrew Bartlett2019-03-211-1/+2
| | | | | | | | Clearly we have python or else we would not be running, so this is about if we have a new enough version. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* wscript: separate embedded_heimdal from system_heimdalStefan Metzmacher2019-01-291-7/+4
| | | | | | | | | | | | | | | | | This allows to default (embedded_heimdal) to build even with a broken krb5-config file from Heimdal. In the system_heimdal case we parse the content of krb5-config instead of just executing it. This fails on FreeBSD 12 as krb5-config contains iso-8859-1 characters, which can't be parsed as unicode python buffers when using python3. Fixing the system_heimdal case is a task for another day, I guess it will only work once we imported a current heimdal version and actually tested the system_heimdal case. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
* Revert "pthreadpool: add some lockless coordination between the main and job ↵Ralph Boehme2019-01-111-10/+2
| | | | | | | | | | | | | | | | threads" This reverts commit 9656b8d8ee11ee351870286f16ea8fbe49112292. See the discussion in https://lists.samba.org/archive/samba-technical/2018-December/131731.html for the reasoning behind this revert. Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
* waf: Utils package not definedSwen Schillig2018-12-041-4/+4
| | | | | | | | | | | Fix the package name for the WafError routine. Signed-off-by: Swen Schillig <swen@linux.ibm.com> Reviewed-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org> Autobuild-User(master): Alexander Bokovoy <ab@samba.org> Autobuild-Date(master): Tue Dec 4 18:45:38 CET 2018 on sn-devel-144
* CVE-2018-16853 build: The Samba AD DC, when build with MIT Kerberos is ↵Andrew Bartlett2018-11-281-0/+17
| | | | | | | | | | | experimental This matches https://wiki.samba.org/index.php/Running_a_Samba_AD_DC_with_MIT_Kerberos_KDC BUG: https://bugzilla.samba.org/show_bug.cgi?id=13678 Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
* PY3: We support python3 now, remove error when python3 detectedNoel Power2018-09-281-3/+0
| | | | | Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* turn --with-json-audit into global --with-jsonPhilipp Gesang2018-09-261-2/+29
| | | | | | | | | | Fold the build option --with-json-audit into the toplevel wscript to reflect the fact that JSON support is no longer local to the audit subsystem. Signed-off-by: Philipp Gesang <philipp.gesang@intra2net.com> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* wscript: adopt to waf 2.0Alexander Bokovoy2018-09-051-40/+33
| | | | | Signed-off-by: Alexander Bokovoy <ab@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* wscript: adopt to waf-2.0Alexander Bokovoy2018-09-051-2/+2
| | | | | Signed-off-by: Alexander Bokovoy <ab@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* wscript: update to handle waf 2.0.4Alexander Bokovoy2018-09-051-4/+11
| | | | | Signed-off-by: Alexander Bokovoy <ab@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* build:wafsamba: Update dist/distcheck commandsThomas Nagy2018-09-051-3/+0
| | | | | | Signed-off-by: Thomas Nagy <tnagy@waf.io> Reviewed-by: Alexander Bokovoy <ab@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* build:wafsamba: Build on waf 1.9Thomas Nagy2018-09-051-1/+1
| | | | | | Signed-off-by: Thomas Nagy <tnagy@waf.io> Reviewed-by: Alexander Bokovoy <ab@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* examples: Add winexe re-implemented on current Samba libsVolker Lendecke2018-08-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | winexe from https://sourceforge.net/projects/winexe/ is a project based on Samba libraries from 2012. According to the winexe git repository the last Samba commit winexe was updated to is 47bbf9886f0c from November 6, 2012. As winexe uses unpublished Samba internal libraries, it broke over time. This is a port of the winexe functionality to more modern Samba versions. It still uses internal APIs, but it being part of the tree means that it is much easier to keep up to date. The Windows service files were taken literally from the original winexe from the sourceforge git. Andrzej Hajda chose GPLv3 only and not GPLv3+. As GPL evolves very slowly, this should not be a practical problem for quite some time. To build it under Linux, you need mingw binaries on your build system. Under Debian stretch, the package names are gcc-mingw-w64 and friends. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Aug 28 02:03:07 CEST 2018 on sn-devel-144
* lib: Add support to parse MS Catalog filesAndreas Schneider2018-08-091-0/+1
| | | | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Thu Aug 9 19:57:02 CEST 2018 on sn-devel-144
* pthreadpool: add some lockless coordination between the main and job threadsStefan Metzmacher2018-07-241-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the direction from the main process to the job thread, we have: - 'maycancel', which is set when tevent_req_cancel() is called, - 'orphaned' is the job request, tevent_context or pthreadpool_tevent was talloc_free'ed. The job function can consume these by using: /* * return true - if tevent_req_cancel() was called. */ bool pthreadpool_tevent_current_job_canceled(void); /* * return true - if talloc_free() was called on the job request, * tevent_context or pthreadpool_tevent. */ bool pthreadpool_tevent_current_job_orphaned(void); /* * return true if canceled and orphaned are both false. */ bool pthreadpool_tevent_current_job_continue(void); In the other direction we remember the following points in the job execution: - 'started' - set when the job is picked up by a worker thread - 'executed' - set once the job function returned. - 'finished' - set when pthreadpool_tevent_job_signal() is entered - 'dropped' - set when pthreadpool_tevent_job_signal() leaves with orphaned - 'signaled' - set when pthreadpool_tevent_job_signal() leaves normal There're only one side writing each element, either the main process or the job thread. This means we can do the coordination with a full memory barrier using atomic_thread_fence(memory_order_seq_cst). lib/replace provides fallbacks if C11 stdatomic.h is not available. A real pthreadpool requires pthread and atomic_thread_fence() (or an replacement) to be available, otherwise we only have pthreadpool_sync.c. But this should not make a real difference, as at least __sync_synchronize() is availabe since 2005 in gcc. We also require __thread which is available since 2002. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
* wscript: Add --with-system-heimdalkrb5Christof Schmitt2018-07-111-0/+20
| | | | | | | | | | | | | | | | | Add the configure option --with-system-heimdalkrb5 to build Samba explicitly with a system Heimdal kerberos library. This does the same as the more complicated syntax --bundled-libraries='!heimdal,!asn1,!com_err,!roken,!hx509,!wind,!gssapi,!hcrypto,!krb5,!heimbase,!asn1_compile,!compile_et,!kdc,!hdb,!heimntlm' and it also enforces the conflicts with MIT Kerbros and the AD DC build. Signed-off-by: Christof Schmitt <cs@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Wed Jul 11 05:18:59 CEST 2018 on sn-devel-144
* build: Move --without-json-audit and json lib detection to lib/audit_loggingAndrew Bartlett2018-06-251-3/+2
| | | | | | | This is the common location of the audit logging code now Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
* Add a wrapper script as git pre-commit hookRalph Boehme2018-04-261-1/+8
| | | | | | | | | | | | | | | | When developer mode is enabled, the wrapper script "script/git-hooks/pre-commit-hook" gets installed as .git/hooks/pre-commit and calls "script/git-hooks/pre-commit-script". This way we can later modify the "script/git-hooks/pre-commit-script" without the need to ever change the installed commit hook itself. Signed-off-by: Ralph Boehme <slow at samba.org> Reviewed-by: Martin Schwenke <martin at meltin.net> Reviewed-by: Jeremy Allison <jra at samba.org>
* build: add option to choose to build with or without JSON audit supportBjörn Baumbach2018-04-181-0/+2
| | | | | | | | | | | | | | | Add a new configure option: --with-json-audit Build with JSON auth audit support (default=auto). This requires the jansson devel package. Signed-off-by: Björn Baumbach <bb@sernet.de> Reviewed-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz> Autobuild-User(master): <bbaumbach@samba.org> Autobuild-Date(master): Wed Apr 18 15:25:42 CEST 2018 on sn-devel-144
* packaging: add configure option to preprocess and install systemd filesAurelien Aptel2018-01-081-0/+4
| | | | | | | | | | Turn the systemd service files under packaging into template (.in) files with @VAR@ substitutions and add configure options to install and tweak them. Signed-off-by: Aurelien Aptel <aaptel@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
* docs-xml: autogenerate a doc.version XML entity.Stefan Metzmacher2017-12-131-1/+1
| | | | | | | | BUG: https://bugzilla.samba.org/show_bug.cgi?id=9531 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Karolin Seeger <kseeger@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
* wscript: Add check for --wrap linker flagChristof Schmitt2017-12-081-0/+4
| | | | | | | BUG: https://bugzilla.samba.org/show_bug.cgi?id=13170 Signed-off-by: Christof Schmitt <cs@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
* build: Move pam_wrapper to third_partyAndreas Schneider2017-11-251-2/+5
| | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
* build: Move uid_wrapper to third_partyAndreas Schneider2017-11-251-1/+5
| | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
* build: Move resolv_wrapper to third_partyAndreas Schneider2017-11-251-1/+5
| | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
* build: Move nss_wrapper to third_partyAndreas Schneider2017-11-251-1/+5
| | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
* build: Move socket_wrapper to third_partyAndreas Schneider2017-11-251-2/+6
| | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
* lib: crypto: Add the ability to select Intel AESNI instruction set at ↵Jeremy Allison2017-09-071-0/+1
| | | | | | | | | | | | configure time. Add --accel-aes=[none|intelaesni] to select. Default is none. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13008 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
* waf: Only build unit tests with selftest enabledAndreas Schneider2017-07-051-1/+1
| | | | | | | BUG: https://bugzilla.samba.org/show_bug.cgi?id=12877 Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
* wscript: Fix some typosAnoop C S2017-06-061-2/+2
| | | | | | | | | Signed-off-by: Anoop C S <anoopcs@redhat.com> Reviewed-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Jun 6 05:26:37 CEST 2017 on sn-devel-144
* waf: Create kerberos_implementation.py for provisioningAndreas Schneider2017-04-291-0/+1
| | | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlet <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* waf: Do not disable the ntvfs fileserver when we have MIT DC buildAndreas Schneider2017-04-291-4/+2
| | | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlet <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* waf: Check for MIT KDC binaryAndreas Schneider2017-04-291-0/+5
| | | | | | Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlet <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>