1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

168 Commits

Author SHA1 Message Date
Andrew Bartlett
cffcc39f18 heimdal_build: Remove bashism from --address-sanitizer build rule
export FOO=bar is a Bash extension, and is not required in this case, we only need the asn1_compile
to run under the variable, there are no further commands in this sub-shell.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Isaac Boukris <iboukris@samba.org>

Autobuild-User(master): Isaac Boukris <iboukris@samba.org>
Autobuild-Date(master): Sat Jan 18 12:25:16 UTC 2020 on sn-devel-184
2020-01-18 12:25:16 +00:00
Stefan Metzmacher
787adfbcc9 s4:heimdal_build: move krb5-types.h into include/krb5-types.h
source4/heimdal_build/include/ contains public headers,
which are needed by callers.

source4/heimdal_build/*.h should only be used for building the
in tree heimdal itself.

Without this an '#include "replace.h"' can catch 'config.h' from
source4/heimal_build/config.h before bin/default/include/config.h.
This #defines HAVE_CLOSEFROM unconditionally before replace.h can define
the replacement for rep_closefrom() on systems without libbsd.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Tue Dec  3 23:36:17 UTC 2019 on sn-devel-184
2019-12-03 23:36:17 +00:00
Uri Simchoni
27fc062d7e heimdal-build: avoid hard-coded /usr/include/heimdal in asn1_compile-generated code.
This fixes a cross-compilation issue, as cross-compilers (rightly)
complain if host include directories are in the include path.

The fix is taken from buildroot (8b11b96f41/package/samba4/0006-heimdal_build-wscript_build-do-not-add-host-include-.patch) where it was applied by Bernd Kuhls <bernd.kuhls@t-online.de>.

This reverts some of 3fe2bfddda6149f6bf7402720226e9285f479fef, but
building Samba's bundled Heimdal with a system roken is not supported
anyway.

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

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Sun Dec  1 10:22:01 UTC 2019 on sn-devel-184
2019-12-01 10:22:00 +00:00
Andrew Bartlett
dc5db1e8d8 heimdal_build: Recurse to bld.SAMBA_BINARY()
This reduces a little of the duplication added when it was thought
that having a distinct waf wrapper on heimdal might allow this to be
ported upstream.

It will also streamline building a dedicated fuzzing mode in Samba.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Mulder <dmulder@suse.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
2019-11-13 08:42:30 +00:00
Karl Lenz
f31333d40e s4 heimdal_build: Fix static heimdal builds with replacement closefrom()
If Samba was configured with "--nonshared-binary=winexe" to build
winexe as a static binary, and the replacement closefrom() function
was used (which is default on most GNU/Linux systems without the libbsd
development package installed), then winexe would fail to link with the
error message shown below.

[2631/3059] Linking bin/default/examples/winexe/winexe
source4/heimdal/lib/roken/closefrom.c.1.o: In function `rep_closefrom':
closefrom.c:(.text+0x0): multiple definition of `rep_closefrom'
lib/replace/closefrom.c.2.o:closefrom.c:(.text+0x292): first defined here
collect2: error: ld returned 1 exit status

The real problem here was not with the winexe build itself - that was
merely the application that I was attempting to build statically when I
encountered it. As Andrew Bartlett very helpfully pointed out to me, this
regression was introduced when "lib/replace/closefrom.c" was added in
commit 55529d0f and, more to the point, when the heimdal build started
using it in commit 3a7ebd0e. From that point on, any time that Samba's
embedded copy of heimdal was statically linked into an application, it
would fail to link because heimdal's own rep_closefrom() function in its
"roken" library would conflict with the rep_closefrom() function in the
"replace" library used elsewhere in Samba - a library which the "roken"
library itself depends on. To further compound the problem, heimdal's
own "roken" library is also compiled for the host (a necessary
distinction for cross-compiled builds) and linked into a small number of
utility applications used during the heimdal build. However, they can't
link directly against the "replace" library, unlike the main "roken"
library build which carries that dependency, because the "replace"
library is _not_ built for the host.

I solved this problem by eliminating heimdal's version of rep_closefrom()
and making it use the one from "lib/replace" everywhere. That wasn't a
problem for the main heimdal library that is built for the target because
it was already linking in "lib/replace" (that's what caused this problem
in the first place!), but to solve the aforementioned issue with
"lib/replace" not being built for the host, I added
"lib/replace/closefrom.c" to the list of "source4/heimdal/lib/roken"
sources to be built for the host to satisfy heimdal's host utilities.
Everyone wins, I think.

Signed-off-by: Karl Lenz <xorangekiller@gmail.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2019-07-05 03:33:19 +00:00
Gary Lockyer
63ae5e5f82 s4 heimdal_build: disable leak checks for asn1 compiler
Disable Address Sanitizer leak checking for the heimdal asn1 compiler, this
allows a samba build with Address Sanitizer enabled.

Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2019-05-06 07:12:18 +00:00
Andreas Schneider
fefb84b5b1 s4:heimdal: Disable format truncation warnings
We build that code and do not treat warnings as errors anyway,
so just disable format truncation.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
2019-04-25 10:47:16 +00:00
Amitay Isaacs
b6efa1507c heimdal-build: Avoid using python str.format()
In python 2.6, the format fields need to be numbered explicitly.  This
causes the build to fail on RHEL6/Centos6 with following error:

 File "/home/amitay/samba.git/source4/heimdal_build/wscript_build", line 87, in HEIMDAL_ASN1
    os.path.join(bld.path.abspath(), option_file)))
ValueError: zero length field name in format

To use str.format() in HEIMDAL_ASN1(),

   "--option-file='{}'"  needs to be   "--options-file='{0}'"

Or this fix which avoids str.format() completely.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>

Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Fri Sep 21 03:06:44 CEST 2018 on sn-devel-144
2018-09-21 03:06:44 +02:00
Alexander Bokovoy
2a63619c1f waf heimdal: use absolute path to compile_et
Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-09-05 06:37:26 +02:00
Thomas Nagy
850ceec810 buildtools/wafsamba: compile asn1 files by adding missing code from compat15
Signed-off-by:    Thomas Nagy <tnagy@waf.io>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-09-05 06:37:26 +02:00
Alexander Bokovoy
c5ab9ead8b heimdal wscript changes
Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-09-05 06:37:25 +02:00
Alexander Bokovoy
055aae9006 source4/heimdal_build/wscript_build: update to handle waf 2.0.4
Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-09-05 06:37:24 +02:00
Thomas Nagy
8077f462c9 build:wafsamba: Build on waf 1.9
Signed-off-by: Thomas Nagy <tnagy@waf.io>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2018-09-05 06:37:21 +02:00
Gary Lockyer
378ae342c4 strerror_r: provide XSI-compliant strerror_r
Provide a XSI-compliant strerror_r on GNU based systems.
The default GNU strerror_r is not XSI-compliant, this patch wraps the
GNU-specific call in an XSI-compliant wrapper.

This reverts 18ed32ce0821d11c0c06d82c07ba1c27b0c2b886 which tried to
make Heimdal use roken, rather than libreplace for strerror_r.

Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
2017-06-13 18:38:14 +02:00
Thomas Nagy
96108058d0 build:wafsamba: Enable feature-compatible declaration for Waf 1.8
In Waf 1.8 the declaration is features='c', not features='cc'. These changes
prepare the replacement of Waf 1.5 by Waf 1.8 for Samba.

Signed-off-by: Thomas Nagy <tnagy@waf.io>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-10-13 06:34:16 +02:00
Stefan Metzmacher
dcb22590ca s4:heimdal_build: remove allow_warnings=True from HEIMDAL_ASN1()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
2015-03-27 01:26:15 +01:00
Thomas Nagy
5771276be9 Transition to waf 1.8: replaced on_results by update_outputs
Reviewed-By: Jelmer Vernooij <jelmer@samba.org>

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2015-03-16 03:00:07 +01:00
Günther Deschner
638a8edd7c s4-heimdal: do not build rkpty anymore.
It is fully replaced with texpect now.

Guenther

Pair-Programmed-With: Andreas Schneider <asn@samba.org>
Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlet <abartlet@samba.org>
2014-09-01 15:47:33 +02:00
Andreas Schneider
b2163f23c0 Remove special nss_wrapper code
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2014-04-17 14:56:06 +02:00
Stefan Metzmacher
06b48b028c s4:heimdal_build: explicitly pass allow_warnings=True to CURRENT_CFLAGS()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-04-02 09:03:45 +02:00
Christian Ambach
20b64eae75 waf: replace dependency to libintl with samba_intl
Signed-off-by: Christian Ambach <ambi@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Christian Ambach <ambi@samba.org>
Autobuild-Date(master): Mon Aug 12 00:46:34 CEST 2013 on sn-devel-104
2013-08-12 00:46:34 +02:00
Andrew Bartlett
48ae86f74c heimdal_build: Add missing dep on samba4kgetcred
This started to fail on current Debian Sid with system Heimdal after a binutils update.

Andrew Bartlett

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-By: Jelmer Vernooij <jelmer@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Tue Jun 25 02:30:59 CEST 2013 on sn-devel-104
2013-06-25 02:30:59 +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
dda48146a2 heimdal_build: Try again to sort out the strerror_r mess
Reviewed-by: Stefan Metzmacher <metze@samba.org>
2013-01-19 10:32:17 +01:00
Jelmer Vernooij
9cf985c53e heimdal_build: HEIMDAL_LIBRARY(): Remove unused cflags argument. 2012-11-06 14:33:51 +01:00
Andrew Bartlett
b2a6b2f750 build: link heimdal krb5 against execinfo if found
This is for FreeBSD, where backtrace symbols are in execinfo
2012-03-01 22:04:44 +11:00
Jelmer Vernooij
da84242f5b Revert 42d4152ed4255f22ff0718d450f181468d7fb827.
asn1_compile and com_err already depended on LIBREPLACE_HOSTCC; depending on replace too causes waf to break (source lib/replace/replace.c is in more than one subsystem of target 'asn1_compile': ['LIBREPLACE_HOSTCC', 'replace'])

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Feb 19 17:43:06 CET 2012 on sn-devel-104
2012-02-19 17:43:06 +01:00
Andrew Tridgell
42d4152ed4 s4-heimdal: the ASN1 compiler now depends on libreplace
it uses strlcat(), which we now get from libbsd if available

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Feb  1 05:51:56 CET 2012 on sn-devel-104
2012-02-01 05:51:55 +01:00
Stefan Metzmacher
0b29853fd7 s4:heimdal_build: hdb.asn1 needs --sequence=HDB-Ext-KeySet --sequence=Keys
metze
2011-07-26 02:16:08 +02:00
Stefan Metzmacher
9190345bf5 s4:heimdal: build samba4kgetcred
metze
2011-07-24 23:10:39 +02:00
Stefan Metzmacher
890c30ce46 s4:heimdal: add missing files
metze
2011-07-15 11:15:05 +02:00
Stefan Metzmacher
796f5727ed s4:heimdal_build: we need k5crypto and gssapi_krb5 aliases also when using system libraries
metze
2011-07-14 20:11:22 +02:00
Stefan Metzmacher
8ee1c2492a s4:heimdal_build: only maintain lib/gssapi/{spnego,krb5} file lists once
This also makes sure we only create private headers if we
use internal heimdal.

metze
2011-07-14 20:11:22 +02:00
Andrew Bartlett
b19fe1995a heimdal_build: Don't use heimdal's getprogname() and setprogname()
Writing into an __progname variable spooks me, and if we use the local
variable, then we duplciate the system one, which fails SYMBOLCHECK

Andrew Bartlett
2011-05-31 00:32:07 +02:00
Andrew Bartlett
ad6ee6d55a build: Move Heimdal/MIT compat build rules to heimdal_build
This allows top level build rules to rely on these names at all times.

Andrew Bartlett
2011-04-26 11:29:29 +10:00
Andrew Tridgell
baf629d98f s4-heimdal: allow heimdal build scripts to work from top level
the version_script handling relied on the directory layout. This makes
it independent of the directory structure

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-07 13:22:00 +11:00
Jelmer Vernooij
3b4fd3573e heimdal_build: Add missing dependencies when building with system heimdal.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sat Jan  1 04:46:35 CET 2011 on sn-devel-104
2011-01-01 04:46:35 +01:00
Jelmer Vernooij
0d6c739260 heimdal_build: Add conditionals for all libraries. 2011-01-01 04:00:03 +01:00
Jelmer Vernooij
91fc7a2ddc heimdal_build: Allow using system krb5. 2011-01-01 04:00:03 +01:00
Jelmer Vernooij
4ea992428b heimdal_build: Allow using system heimntlm. 2011-01-01 04:00:03 +01:00
Jelmer Vernooij
3febaed9ba heimdal_build: Look for asn1_compile (but by default, don't use it). 2011-01-01 04:00:03 +01:00
Jelmer Vernooij
718c864d41 heimdal_build: Use consistent name for heimbase.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Wed Dec 22 02:24:24 CET 2010 on sn-devel-104
2010-12-22 02:24:24 +01:00
Jelmer Vernooij
25ee5b1689 heimdal_build: When using system hbase/hcrypto, don't compile our own versions. 2010-12-22 01:38:06 +01:00
Jelmer Vernooij
1ca35347cb heimdal: Fix build if using system roken.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Dec 19 22:29:41 CET 2010 on sn-devel-104
2010-12-19 22:29:40 +01:00
Jelmer Vernooij
03fbf9ea0b heimdal_build: Simplify HEIMDAL_LIBRARY - version_script files are now taken from upstream rather than generated. 2010-12-18 00:47:06 +01:00
Jelmer Vernooij
2f75b53e80 heimdal_build: Add version-script for heimdal_base, hx509 and hcrypto. Convert hbase and hcrypto to libraries. 2010-12-18 00:47:06 +01:00
Jelmer Vernooij
c4a887538d heimdal_build: Add version-script for krb5.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Fri Dec 17 21:09:25 CET 2010 on sn-devel-104
2010-12-17 21:09:25 +01:00
Jelmer Vernooij
6dc807703d heimdal_build: Add version-script for gssapi. 2010-12-17 20:08:11 +01:00
Jelmer Vernooij
02ff0852e8 heimdal_build: Add version-script for asn1. 2010-12-17 20:06:15 +01:00
Jelmer Vernooij
555d334cf7 heimdal_build: Add version-script for hdb. 2010-12-17 20:01:21 +01:00