The branch, master has been updated via 0b742ec6a05 s4:smb_server: Use cli_credentials_init_server() for negprot via 6c94ebf77fd s4:rpc_server: Use cli_credentials_init_server() via 2c00bea2aef auth:creds: Add cli_credentials_init_server() via 515cffb1f20 auth:gensec: If Kerberos is required, keep schannel for machine account auth via a33a40bbc84 auth:gensec: Pass use_kerberos and keep_schannel to gensec_use_kerberos_mechs() via 2186d4131ad auth:gensec: Make gensec_use_kerberos_mechs() a static function via 5e3363e0b82 s4:ldap_server: Use samba_server_gensec_start() in ldapsrv_backend_Init() via b34e8dc8982 auth:gensec: Add gensec_security_sasl_names() via 5fc3a71d0f5 waf: upgrade to 2.0.20 via 896b7bbcf25 bootstrap: install perl-JSON on on rpm distributions via e0e51632cf7 bootstrap: document git push -o ci.variable='SAMBA_CI_REBUILD_IMAGES=yes' via b716dbc9768 python/tests/gpo: this should fix a Popen deadlock from 6444a743525 s3:libads: Also add a realm entry for the domain name
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 0b742ec6a0558397d5cf01b99a401f8e2bc0e2e0 Author: Andreas Schneider <a...@samba.org> Date: Mon Sep 7 09:19:43 2020 +0200 s4:smb_server: Use cli_credentials_init_server() for negprot Signed-off-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Mon Sep 7 13:22:26 UTC 2020 on sn-devel-184 commit 6c94ebf77fdb7383be2042f5e20ba2ef598cd4a4 Author: Andreas Schneider <a...@samba.org> Date: Fri Sep 4 12:21:36 2020 +0200 s4:rpc_server: Use cli_credentials_init_server() Signed-off-by: Andreas Schneider <a...@samba.org> commit 2c00bea2aefdcc69608dffdafa7ce581d31f9354 Author: Andreas Schneider <a...@samba.org> Date: Fri Sep 4 12:21:21 2020 +0200 auth:creds: Add cli_credentials_init_server() Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> commit 515cffb1f20eacb041ff7b3d43f8a122a82ddfbd Author: Stefan Metzmacher <me...@samba.org> Date: Fri Sep 4 17:00:45 2020 +0200 auth:gensec: If Kerberos is required, keep schannel for machine account auth Signed-off-by: Stefan Metzmacher <me...@samba.org> Signed-off-by: Andreas Schneider <a...@samba.org> commit a33a40bbc848e5691869cf264009d23a03128f31 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Sep 4 14:41:43 2020 +0200 auth:gensec: Pass use_kerberos and keep_schannel to gensec_use_kerberos_mechs() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit 2186d4131ad4c7961d0c830bf9d48f3d06d27924 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Sep 4 14:39:15 2020 +0200 auth:gensec: Make gensec_use_kerberos_mechs() a static function Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit 5e3363e0b82193700f91a9bae5080aae0b744e5c Author: Stefan Metzmacher <me...@samba.org> Date: Fri Sep 4 10:48:27 2020 +0200 s4:ldap_server: Use samba_server_gensec_start() in ldapsrv_backend_Init() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit b34e8dc8982b625d946e2ac8794ee41311bc41c2 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Sep 4 10:47:54 2020 +0200 auth:gensec: Add gensec_security_sasl_names() Pair-Programmed-With: Andreas Schneider <a...@samba.org> Signed-off-by: Andreas Schneider <a...@samba.org> Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 5fc3a71d0f54b176d3cb2e399718d0468507e797 Author: David Mulder <dmul...@suse.com> Date: Mon Aug 24 13:12:46 2020 -0600 waf: upgrade to 2.0.20 This contain an important change: "Fix gccdeps.scan() returning nodes that no longer exist on disk." https://gitlab.com/ita1024/waf/-/merge_requests/2293 Signed-off-by: David Mulder <dmul...@suse.com> Reviewed-by: Stefan Metzmacher <me...@samba.org> commit 896b7bbcf25b336a970441396d8e60c3d115a1b9 Author: Stefan Metzmacher <me...@samba.org> Date: Fri Apr 3 12:16:08 2020 +0200 bootstrap: install perl-JSON on on rpm distributions This will be needed for the next heimdal import. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit e0e51632cf77be439ebcbcba025a42e8558fa824 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 6 15:27:24 2020 +0200 bootstrap: document git push -o ci.variable='SAMBA_CI_REBUILD_IMAGES=yes' This is much easier than going through the web interface. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit b716dbc9768bd6a0ef7d016a9c79e8759e383732 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Sep 7 10:31:36 2020 +0200 python/tests/gpo: this should fix a Popen deadlock It is inspired by commit 5dc773a5b00834c7a53130a73a48f49048bd55e8 Author: Joe Guo <j...@catalyst.net.nz> Date: Fri Sep 15 16:13:26 2017 +1200 python: use communicate to fix Popen deadlock `Popen.wait()` will deadlock when using stdout=PIPE and/or stderr=PIPE and the child process generates large output to a pipe such that it blocks waiting for the OS pipe buffer to accept more data. Use communicate() to avoid that. Signed-off-by: Joe Guo <j...@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Thu Oct 19 09:27:16 CEST 2017 on sn-devel-144 Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Reviewed-by: Noel Power <noel.po...@suse.com> ----------------------------------------------------------------------- Summary of changes: .gitlab-ci.yml | 2 +- auth/credentials/credentials.c | 25 + auth/credentials/credentials.h | 2 + auth/gensec/gensec.h | 5 +- auth/gensec/gensec_start.c | 127 ++++- bootstrap/README.md | 17 +- bootstrap/config.py | 3 +- bootstrap/generated-dists/centos7/bootstrap.sh | 1 + bootstrap/generated-dists/centos7/packages.yml | 1 + bootstrap/generated-dists/centos8/bootstrap.sh | 1 + bootstrap/generated-dists/centos8/packages.yml | 1 + bootstrap/generated-dists/fedora31/bootstrap.sh | 1 + bootstrap/generated-dists/fedora31/packages.yml | 1 + bootstrap/generated-dists/fedora32/bootstrap.sh | 1 + bootstrap/generated-dists/fedora32/packages.yml | 1 + bootstrap/generated-dists/opensuse150/bootstrap.sh | 1 + bootstrap/generated-dists/opensuse150/packages.yml | 1 + bootstrap/generated-dists/opensuse151/bootstrap.sh | 1 + bootstrap/generated-dists/opensuse151/packages.yml | 1 + bootstrap/sha1sum.txt | 2 +- buildtools/bin/waf | 2 +- buildtools/wafsamba/samba_utils.py | 2 +- buildtools/wafsamba/samba_waf18.py | 3 +- buildtools/wafsamba/wafsamba.py | 2 +- python/samba/tests/gpo.py | 21 +- source4/dsdb/samdb/ldb_modules/rootdse.c | 4 +- source4/ldap_server/ldap_backend.c | 49 +- source4/rpc_server/dcerpc_server.c | 17 +- source4/smb_server/smb/negprot.c | 28 +- source4/smb_server/smb2/negprot.c | 25 +- third_party/waf/waflib/Configure.py | 25 +- third_party/waf/waflib/Context.py | 18 +- third_party/waf/waflib/Options.py | 31 +- third_party/waf/waflib/Scripting.py | 6 +- third_party/waf/waflib/Tools/c_aliases.py | 4 +- third_party/waf/waflib/Tools/c_config.py | 22 +- third_party/waf/waflib/Tools/c_tests.py | 15 +- third_party/waf/waflib/Tools/compiler_c.py | 2 +- third_party/waf/waflib/Tools/compiler_cxx.py | 2 +- third_party/waf/waflib/Tools/fc.py | 4 +- third_party/waf/waflib/Tools/irixcc.py | 14 +- third_party/waf/waflib/Tools/javaw.py | 2 +- third_party/waf/waflib/Tools/python.py | 2 +- third_party/waf/waflib/Tools/qt5.py | 6 +- third_party/waf/waflib/Utils.py | 2 +- .../waflib/extras/clang_compilation_database.py | 172 ++++--- third_party/waf/waflib/extras/doxygen.py | 1 + third_party/waf/waflib/extras/gccdeps.py | 15 +- third_party/waf/waflib/extras/javatest.py | 135 +++++- third_party/waf/waflib/extras/msvc_pdb.py | 46 ++ third_party/waf/waflib/extras/pytest.py | 17 +- third_party/waf/waflib/extras/wafcache.py | 524 +++++++++++++++++++++ 52 files changed, 1171 insertions(+), 242 deletions(-) create mode 100644 third_party/waf/waflib/extras/msvc_pdb.py create mode 100644 third_party/waf/waflib/extras/wafcache.py Changeset truncated at 500 lines: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 39c5d2765c3..eac719e5ee5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,7 @@ variables: # Set this to the contents of bootstrap/sha1sum.txt # which is generated by bootstrap/template.py --render # - SAMBA_CI_CONTAINER_TAG: abd0e3b4cadc9691200c43769e69a3a7b50d9fde + SAMBA_CI_CONTAINER_TAG: 2b36c89aa12c35958fd95380615dde0ef5a97b9d # # We use the ubuntu1804 image as default as # it matches what we have on sn-devel-184. diff --git a/auth/credentials/credentials.c b/auth/credentials/credentials.c index 9168b92d3ec..77c35dd104b 100644 --- a/auth/credentials/credentials.c +++ b/auth/credentials/credentials.c @@ -56,6 +56,31 @@ _PUBLIC_ struct cli_credentials *cli_credentials_init(TALLOC_CTX *mem_ctx) return cred; } +_PUBLIC_ +struct cli_credentials *cli_credentials_init_server(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx) +{ + struct cli_credentials *server_creds = NULL; + NTSTATUS status; + + server_creds = cli_credentials_init(mem_ctx); + if (server_creds == NULL) { + return NULL; + } + + cli_credentials_set_conf(server_creds, lp_ctx); + + status = cli_credentials_set_machine_account(server_creds, lp_ctx); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(1, ("Failed to obtain server credentials: %s\n", + nt_errstr(status))); + TALLOC_FREE(server_creds); + return NULL; + } + + return server_creds; +} + _PUBLIC_ void cli_credentials_set_callback_data(struct cli_credentials *cred, void *callback_data) { diff --git a/auth/credentials/credentials.h b/auth/credentials/credentials.h index 1a3e611fee8..4c140615751 100644 --- a/auth/credentials/credentials.h +++ b/auth/credentials/credentials.h @@ -76,6 +76,8 @@ bool cli_credentials_set_workstation(struct cli_credentials *cred, enum credentials_obtained obtained); bool cli_credentials_is_anonymous(struct cli_credentials *cred); struct cli_credentials *cli_credentials_init(TALLOC_CTX *mem_ctx); +struct cli_credentials *cli_credentials_init_server(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx); void cli_credentials_set_anonymous(struct cli_credentials *cred); bool cli_credentials_wrong_password(struct cli_credentials *cred); const char *cli_credentials_get_password(struct cli_credentials *cred); diff --git a/auth/gensec/gensec.h b/auth/gensec/gensec.h index d424067d02c..8bece3c3458 100644 --- a/auth/gensec/gensec.h +++ b/auth/gensec/gensec.h @@ -302,12 +302,11 @@ NTSTATUS gensec_wrap(struct gensec_security *gensec_security, const struct gensec_security_ops * const *gensec_security_all(void); bool gensec_security_ops_enabled(const struct gensec_security_ops *ops, struct gensec_security *security); -const struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx, - const struct gensec_security_ops * const *old_gensec_list, - struct cli_credentials *creds); NTSTATUS gensec_start_mech_by_sasl_name(struct gensec_security *gensec_security, const char *sasl_name); +const char **gensec_security_sasl_names(struct gensec_security *gensec_security, + TALLOC_CTX *mem_ctx); int gensec_setting_int(struct gensec_settings *settings, const char *mechanism, const char *name, int default_value); bool gensec_setting_bool(struct gensec_settings *settings, const char *mechanism, const char *name, bool default_value); diff --git a/auth/gensec/gensec_start.c b/auth/gensec/gensec_start.c index d34ef2d5e39..4996e13e027 100644 --- a/auth/gensec/gensec_start.c +++ b/auth/gensec/gensec_start.c @@ -85,21 +85,14 @@ bool gensec_security_ops_enabled(const struct gensec_security_ops *ops, struct g * more compplex. */ -_PUBLIC_ const struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx, - const struct gensec_security_ops * const *old_gensec_list, - struct cli_credentials *creds) +static const struct gensec_security_ops **gensec_use_kerberos_mechs( + TALLOC_CTX *mem_ctx, + const struct gensec_security_ops * const *old_gensec_list, + enum credentials_use_kerberos use_kerberos, + bool keep_schannel) { const struct gensec_security_ops **new_gensec_list; int i, j, num_mechs_in; - enum credentials_use_kerberos use_kerberos = CRED_AUTO_USE_KERBEROS; - bool keep_schannel = false; - - if (creds) { - use_kerberos = cli_credentials_get_kerberos_state(creds); - if (cli_credentials_get_netlogon_creds(creds) != NULL) { - keep_schannel = true; - } - } for (num_mechs_in=0; old_gensec_list && old_gensec_list[num_mechs_in]; num_mechs_in++) { /* noop */ @@ -164,18 +157,37 @@ _PUBLIC_ const struct gensec_security_ops **gensec_security_mechs( struct gensec_security *gensec_security, TALLOC_CTX *mem_ctx) { - struct cli_credentials *creds = NULL; const struct gensec_security_ops * const *backends = gensec_security_all(); + enum credentials_use_kerberos use_kerberos = CRED_AUTO_USE_KERBEROS; + bool keep_schannel = false; if (gensec_security != NULL) { + struct cli_credentials *creds = NULL; + creds = gensec_get_credentials(gensec_security); + if (creds != NULL) { + use_kerberos = cli_credentials_get_kerberos_state(creds); + if (cli_credentials_get_netlogon_creds(creds) != NULL) { + keep_schannel = true; + } + + /* + * Even if Kerberos is set to REQUIRED, keep the + * schannel auth mechanism that machine accounts are + * able to authenticate via netlogon. + */ + if (gensec_security->gensec_role == GENSEC_SERVER) { + keep_schannel = true; + } + } if (gensec_security->settings->backends) { backends = gensec_security->settings->backends; } } - return gensec_use_kerberos_mechs(mem_ctx, backends, creds); + return gensec_use_kerberos_mechs(mem_ctx, backends, + use_kerberos, keep_schannel); } @@ -301,6 +313,93 @@ const struct gensec_security_ops *gensec_security_by_name(struct gensec_security return NULL; } +static const char **gensec_security_sasl_names_from_ops( + struct gensec_security *gensec_security, + TALLOC_CTX *mem_ctx, + const struct gensec_security_ops * const *ops) +{ + const char **sasl_names = NULL; + size_t i, sasl_names_count = 0; + + if (ops == NULL) { + return NULL; + } + + sasl_names = talloc_array(mem_ctx, const char *, 1); + if (sasl_names == NULL) { + return NULL; + } + + for (i = 0; ops[i] != NULL; i++) { + enum gensec_role role = GENSEC_SERVER; + const char **tmp = NULL; + + if (ops[i]->sasl_name == NULL) { + continue; + } + + if (gensec_security != NULL) { + if (!gensec_security_ops_enabled(ops[i], + gensec_security)) { + continue; + } + + role = gensec_security->gensec_role; + } + + switch (role) { + case GENSEC_CLIENT: + if (ops[i]->client_start == NULL) { + continue; + } + break; + case GENSEC_SERVER: + if (ops[i]->server_start == NULL) { + continue; + } + break; + } + + tmp = talloc_realloc(mem_ctx, + sasl_names, + const char *, + sasl_names_count + 2); + if (tmp == NULL) { + TALLOC_FREE(sasl_names); + return NULL; + } + sasl_names = tmp; + + sasl_names[sasl_names_count] = ops[i]->sasl_name; + sasl_names_count++; + } + sasl_names[sasl_names_count] = NULL; + + return sasl_names; +} + +/** + * @brief Get the sasl names from the gensec security context. + * + * @param[in] gensec_security The gensec security context. + * + * @param[in] mem_ctx The memory context to allocate memory on. + * + * @return An allocated array with sasl names, NULL on error. + */ +_PUBLIC_ +const char **gensec_security_sasl_names(struct gensec_security *gensec_security, + TALLOC_CTX *mem_ctx) +{ + const struct gensec_security_ops **ops = NULL; + + ops = gensec_security_mechs(gensec_security, mem_ctx); + + return gensec_security_sasl_names_from_ops(gensec_security, + mem_ctx, + ops); +} + /** * Return a unique list of security subsystems from those specified in * the list of SASL names. diff --git a/bootstrap/README.md b/bootstrap/README.md index 023686e20c4..d4f30955197 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -39,17 +39,7 @@ the toplevel .gitlab-ci.yml file. As a gitlab-ci user, I can use this tool to build new CI docker images: After committing the result of calling `bootstrap/template.py --render` - and updating `SAMBA_CI_CONTAINER_TAG` in .gitlab-ci.yml, you can push - The branch to g...@gitlab.com:samba-team/devel/samba.git using: - - git push -o ci.skip g...@gitlab.com:samba-team/devel/samba.git ... - - The `-o ci.skip` option means gitlab won't start a pipeline - for the just pushed branch. - - Instead you would start a custom pipeline at: - - https://gitlab.com/samba-team/devel/samba/pipelines/new + and updating `SAMBA_CI_CONTAINER_TAG` in .gitlab-ci.yml, you can push. But you need to pass `SAMBA_CI_REBUILD_IMAGES=yes` as environment variable. It means the pipeline runs the 'images' stage and builds @@ -57,6 +47,11 @@ As a gitlab-ci user, I can use this tool to build new CI docker images: uploads the images into the registry.gitlab.com/samba-team/devel/samba container registry. + You can push by specifying the variable (note multiple -o options are allowed, + see https://docs.gitlab.com/ee/user/project/push_options.html): + + `git push -o ci.variable='SAMBA_CI_REBUILD_IMAGES=yes' g...@gitlab.com:samba-team/devel/samba.git ...` + If you want to try to build images for the (currently) broken distributions, you would pass `SAMBA_CI_REBUILD_BROKEN_IMAGES=yes` in addition to the custom pipeline. Note the images for diff --git a/bootstrap/config.py b/bootstrap/config.py index 2c83876459d..43f89cf9efc 100644 --- a/bootstrap/config.py +++ b/bootstrap/config.py @@ -147,7 +147,8 @@ PKGS = [ # perl ('libparse-yapp-perl', 'perl-Parse-Yapp'), - ('libjson-perl', 'perl-JSON-Parse'), + ('libjson-perl', 'perl-JSON'), + ('', 'perl-JSON-Parse'), ('perl-modules', ''), ('', 'perl-Archive-Tar'), ('', 'perl-ExtUtils-MakeMaker'), diff --git a/bootstrap/generated-dists/centos7/bootstrap.sh b/bootstrap/generated-dists/centos7/bootstrap.sh index 8b50b8de125..63746e248bc 100755 --- a/bootstrap/generated-dists/centos7/bootstrap.sh +++ b/bootstrap/generated-dists/centos7/bootstrap.sh @@ -72,6 +72,7 @@ yum install -y \ patch \ perl-Archive-Tar \ perl-ExtUtils-MakeMaker \ + perl-JSON \ perl-JSON-Parse \ perl-Parse-Yapp \ perl-Test-Base \ diff --git a/bootstrap/generated-dists/centos7/packages.yml b/bootstrap/generated-dists/centos7/packages.yml index 9dd36ec0daa..7fb9b811397 100644 --- a/bootstrap/generated-dists/centos7/packages.yml +++ b/bootstrap/generated-dists/centos7/packages.yml @@ -58,6 +58,7 @@ packages: - patch - perl-Archive-Tar - perl-ExtUtils-MakeMaker + - perl-JSON - perl-JSON-Parse - perl-Parse-Yapp - perl-Test-Base diff --git a/bootstrap/generated-dists/centos8/bootstrap.sh b/bootstrap/generated-dists/centos8/bootstrap.sh index 08cb02105a4..342188e7fe5 100755 --- a/bootstrap/generated-dists/centos8/bootstrap.sh +++ b/bootstrap/generated-dists/centos8/bootstrap.sh @@ -79,6 +79,7 @@ yum install -y \ perl \ perl-Archive-Tar \ perl-ExtUtils-MakeMaker \ + perl-JSON \ perl-Parse-Yapp \ perl-Test-Simple \ perl-generators \ diff --git a/bootstrap/generated-dists/centos8/packages.yml b/bootstrap/generated-dists/centos8/packages.yml index dd487a2eced..d82a80e6957 100644 --- a/bootstrap/generated-dists/centos8/packages.yml +++ b/bootstrap/generated-dists/centos8/packages.yml @@ -61,6 +61,7 @@ packages: - perl - perl-Archive-Tar - perl-ExtUtils-MakeMaker + - perl-JSON - perl-Parse-Yapp - perl-Test-Simple - perl-generators diff --git a/bootstrap/generated-dists/fedora31/bootstrap.sh b/bootstrap/generated-dists/fedora31/bootstrap.sh index 3fb60bc00eb..18fbfefedbc 100755 --- a/bootstrap/generated-dists/fedora31/bootstrap.sh +++ b/bootstrap/generated-dists/fedora31/bootstrap.sh @@ -74,6 +74,7 @@ dnf install -y \ perl \ perl-Archive-Tar \ perl-ExtUtils-MakeMaker \ + perl-JSON \ perl-JSON-Parse \ perl-Parse-Yapp \ perl-Test-Base \ diff --git a/bootstrap/generated-dists/fedora31/packages.yml b/bootstrap/generated-dists/fedora31/packages.yml index 37422007549..6cb2ce3841f 100644 --- a/bootstrap/generated-dists/fedora31/packages.yml +++ b/bootstrap/generated-dists/fedora31/packages.yml @@ -63,6 +63,7 @@ packages: - perl - perl-Archive-Tar - perl-ExtUtils-MakeMaker + - perl-JSON - perl-JSON-Parse - perl-Parse-Yapp - perl-Test-Base diff --git a/bootstrap/generated-dists/fedora32/bootstrap.sh b/bootstrap/generated-dists/fedora32/bootstrap.sh index 3fb60bc00eb..18fbfefedbc 100755 --- a/bootstrap/generated-dists/fedora32/bootstrap.sh +++ b/bootstrap/generated-dists/fedora32/bootstrap.sh @@ -74,6 +74,7 @@ dnf install -y \ perl \ perl-Archive-Tar \ perl-ExtUtils-MakeMaker \ + perl-JSON \ perl-JSON-Parse \ perl-Parse-Yapp \ perl-Test-Base \ diff --git a/bootstrap/generated-dists/fedora32/packages.yml b/bootstrap/generated-dists/fedora32/packages.yml index 37422007549..6cb2ce3841f 100644 --- a/bootstrap/generated-dists/fedora32/packages.yml +++ b/bootstrap/generated-dists/fedora32/packages.yml @@ -63,6 +63,7 @@ packages: - perl - perl-Archive-Tar - perl-ExtUtils-MakeMaker + - perl-JSON - perl-JSON-Parse - perl-Parse-Yapp - perl-Test-Base diff --git a/bootstrap/generated-dists/opensuse150/bootstrap.sh b/bootstrap/generated-dists/opensuse150/bootstrap.sh index d99d835719f..33c8aeb4021 100755 --- a/bootstrap/generated-dists/opensuse150/bootstrap.sh +++ b/bootstrap/generated-dists/opensuse150/bootstrap.sh @@ -70,6 +70,7 @@ zypper --non-interactive install \ perl \ perl-Archive-Tar-Wrapper \ perl-ExtUtils-MakeMaker \ + perl-JSON \ perl-JSON-XS \ perl-Parse-Yapp \ perl-Test-Base \ diff --git a/bootstrap/generated-dists/opensuse150/packages.yml b/bootstrap/generated-dists/opensuse150/packages.yml index 30d102484be..5e7b1a11d7a 100644 --- a/bootstrap/generated-dists/opensuse150/packages.yml +++ b/bootstrap/generated-dists/opensuse150/packages.yml @@ -58,6 +58,7 @@ packages: - perl - perl-Archive-Tar-Wrapper - perl-ExtUtils-MakeMaker + - perl-JSON - perl-JSON-XS - perl-Parse-Yapp - perl-Test-Base diff --git a/bootstrap/generated-dists/opensuse151/bootstrap.sh b/bootstrap/generated-dists/opensuse151/bootstrap.sh index d99d835719f..33c8aeb4021 100755 --- a/bootstrap/generated-dists/opensuse151/bootstrap.sh +++ b/bootstrap/generated-dists/opensuse151/bootstrap.sh @@ -70,6 +70,7 @@ zypper --non-interactive install \ perl \ perl-Archive-Tar-Wrapper \ perl-ExtUtils-MakeMaker \ + perl-JSON \ perl-JSON-XS \ perl-Parse-Yapp \ perl-Test-Base \ diff --git a/bootstrap/generated-dists/opensuse151/packages.yml b/bootstrap/generated-dists/opensuse151/packages.yml index 30d102484be..5e7b1a11d7a 100644 --- a/bootstrap/generated-dists/opensuse151/packages.yml +++ b/bootstrap/generated-dists/opensuse151/packages.yml @@ -58,6 +58,7 @@ packages: - perl - perl-Archive-Tar-Wrapper - perl-ExtUtils-MakeMaker + - perl-JSON - perl-JSON-XS - perl-Parse-Yapp - perl-Test-Base diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt index c9834e2a19d..28d7e55a73a 100644 --- a/bootstrap/sha1sum.txt +++ b/bootstrap/sha1sum.txt @@ -1 +1 @@ -abd0e3b4cadc9691200c43769e69a3a7b50d9fde +2b36c89aa12c35958fd95380615dde0ef5a97b9d diff --git a/buildtools/bin/waf b/buildtools/bin/waf index 11ce8e7480a..feabe25d131 100755 --- a/buildtools/bin/waf +++ b/buildtools/bin/waf @@ -32,7 +32,7 @@ POSSIBILITY OF SUCH DAMAGE. import os, sys, inspect -VERSION="2.0.18" +VERSION="2.0.20" REVISION="x" GIT="x" INSTALL="x" diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py index 4afee249d33..0587f525aff 100644 --- a/buildtools/wafsamba/samba_utils.py +++ b/buildtools/wafsamba/samba_utils.py @@ -459,7 +459,7 @@ def RECURSE(ctx, directory): return visited_dirs.add(key) relpath = os.path.relpath(abspath, ctx.path.abspath()) - if ctxclass in ['tmp', 'OptionsContext', 'ConfigurationContext', 'BuildContext']: + if ctxclass in ['tmp', 'OptionsContext', 'ConfigurationContext', 'BuildContext', 'ClangDbContext']: return ctx.recurse(relpath) if 'waflib.extras.compat15' in sys.modules: return ctx.recurse(relpath) diff --git a/buildtools/wafsamba/samba_waf18.py b/buildtools/wafsamba/samba_waf18.py index c0bb6bfcf55..ecf3891f175 100644 --- a/buildtools/wafsamba/samba_waf18.py +++ b/buildtools/wafsamba/samba_waf18.py @@ -5,6 +5,7 @@ from waflib import Build, Configure, Node, Utils, Options, Logs, TaskGen from waflib import ConfigSet from waflib.TaskGen import feature, after from waflib.Configure import conf, ConfigurationContext +from waflib.extras import clang_compilation_database from waflib.Tools.flex import decide_ext @@ -37,7 +38,7 @@ TaskGen.declare_chain( ) -for y in (Build.BuildContext, Build.CleanContext, Build.InstallContext, Build.UninstallContext, Build.ListContext): +for y in (Build.BuildContext, Build.CleanContext, Build.InstallContext, Build.UninstallContext, Build.ListContext, clang_compilation_database.ClangDbContext): class tmp(y): variant = 'default' diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py index 7827d374654..9f6ee4f5c7f 100644 --- a/buildtools/wafsamba/wafsamba.py +++ b/buildtools/wafsamba/wafsamba.py @@ -38,7 +38,7 @@ LIB_PATH="shared" os.environ['PYTHONUNBUFFERED'] = '1' -- Samba Shared Repository