Skip to content

Commit

Permalink
samba: Update to 4.8.3
Browse files Browse the repository at this point in the history
LDB 1.4.0 breaks Samba < 4.9 therefore use internal version

Signed-off-by: Khem Raj <raj.khem@gmail.com>
  • Loading branch information
kraj committed Jul 30, 2018
1 parent 5a9a62e commit a001e46
Show file tree
Hide file tree
Showing 8 changed files with 400 additions and 99 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
From 0bc8bc4143a58f91f6d7ce228b6763f377fdf45a Mon Sep 17 00:00:00 2001
From: Andrew Bartlett <abartlet@samba.org>
Date: Thu, 12 Jul 2018 12:34:56 +1200
Subject: [PATCH] ldb: Refuse to build Samba against a newer minor version of
ldb

Samba is not compatible with new versions of ldb (except release versions)

Other users would not notice the breakages, but Samba makes many
more assuptions about the LDB internals than any other package.

(Specifically, LDB 1.2 and 1.4 broke builds against released
Samba versions)

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

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
(cherry picked from commit 52efa796538ae004ca62ea32fc8c833472991be6)
---
lib/ldb/wscript | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/lib/ldb/wscript b/lib/ldb/wscript
index d94086b..2bb0832 100644
--- a/lib/ldb/wscript
+++ b/lib/ldb/wscript
@@ -62,23 +62,33 @@ def configure(conf):
conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()

if not conf.env.standalone_ldb:
+ max_ldb_version = [int(x) for x in VERSION.split(".")]
+ max_ldb_version[2] = 999
+ max_ldb_version_dots = "%d.%d.%d" % tuple(max_ldb_version)
+
if conf.env.disable_python:
- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION,
- onlyif='talloc tdb tevent',
- implied_deps='replace talloc tdb tevent'):
+ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb',
+ minversion=VERSION,
+ maxversion=max_ldb_version_dots,
+ onlyif='talloc tdb tevent',
+ implied_deps='replace talloc tdb tevent'):
conf.define('USING_SYSTEM_LDB', 1)
else:
using_system_pyldb_util = True
- if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION,
- onlyif='talloc tdb tevent',
- implied_deps='replace talloc tdb tevent ldb'):
+ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util',
+ minversion=VERSION,
+ maxversion=max_ldb_version_dots,
+ onlyif='talloc tdb tevent',
+ implied_deps='replace talloc tdb tevent ldb'):
using_system_pyldb_util = False

# We need to get a pyldb-util for all the python versions
# we are building for
if conf.env['EXTRA_PYTHON']:
name = 'pyldb-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG']
- if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION,
+ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name,
+ minversion=VERSION,
+ maxversion=max_ldb_version_dots,
onlyif='talloc tdb tevent',
implied_deps='replace talloc tdb tevent ldb'):
using_system_pyldb_util = False
@@ -86,9 +96,11 @@ def configure(conf):
if using_system_pyldb_util:
conf.define('USING_SYSTEM_PYLDB_UTIL', 1)

- if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb', minversion=VERSION,
- onlyif='talloc tdb tevent pyldb-util',
- implied_deps='replace talloc tdb tevent'):
+ if conf.CHECK_BUNDLED_SYSTEM_PKG('ldb',
+ minversion=VERSION,
+ maxversion=max_ldb_version_dots,
+ onlyif='talloc tdb tevent pyldb-util',
+ implied_deps='replace talloc tdb tevent'):
conf.define('USING_SYSTEM_LDB', 1)

if conf.CONFIG_SET('USING_SYSTEM_LDB'):
--
2.18.0

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,39 +1,47 @@
Musl does not have _r versions of getent() and getpwent() APIs
From 02e0b14d8fa025a5db410d60a7c0dfebd536aaeb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 6 Nov 2016 23:40:54 -0800
Subject: [PATCH] Musl does not have _r versions of getent() and getpwent()
APIs

Taken from gentoo
http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.3.9-remove-getpwent_r.patch

Signed-off-by: Khem Raj <raj.khem@gmail.com>

Index: samba-4.4.5/source4/torture/local/nss_tests.c
===================================================================
--- samba-4.4.5.orig/source4/torture/local/nss_tests.c
+++ samba-4.4.5/source4/torture/local/nss_tests.c
@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct tortu
---
source4/torture/local/nss_tests.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c
index 2cd6122..04f13c6 100644
--- a/source4/torture/local/nss_tests.c
+++ b/source4/torture/local/nss_tests.c
@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct torture_context *tctx,
return true;
}

-
static bool test_getgrgid(struct torture_context *tctx,
gid_t gid,
struct group *grp_p)
@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct tort
@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct torture_context *tctx,
return true;
}

+#if HAVE_GETPWENT_R
static bool test_enum_r_passwd(struct torture_context *tctx,
struct passwd **pwd_array_p,
size_t *num_pwd_p)
@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct to
@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,

return true;
}
+#endif

static bool torture_assert_passwd_equal(struct torture_context *tctx,
const struct passwd *p1,
@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture
@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture_context *tctx)
struct passwd *pwd, pwd1, pwd2;
size_t num_pwd;

Expand All @@ -42,7 +50,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
"failed to enumerate passwd");

for (i=0; i < num_pwd; i++) {
@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct t
@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
struct passwd *pwd, pwd1, pwd2, pwd3, pwd4;
size_t num_pwd;

Expand All @@ -51,23 +59,23 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
"failed to enumerate passwd");

for (i=0; i < num_pwd; i++) {
@@ -531,6 +532,7 @@ static bool test_enum_group(struct tortu
@@ -531,6 +532,7 @@ static bool test_enum_group(struct torture_context *tctx,
return true;
}

+#if HAVE_GETGRENT_R
static bool test_enum_r_group(struct torture_context *tctx,
struct group **grp_array_p,
size_t *num_grp_p)
@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct tor
@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct torture_context *tctx,

return true;
}
+#endif

static bool torture_assert_group_equal(struct torture_context *tctx,
const struct group *g1,
@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_
@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_context *tctx)
struct group *grp, grp1, grp2;
size_t num_grp;

Expand All @@ -76,7 +84,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
"failed to enumerate group");

for (i=0; i < num_grp; i++) {
@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct to
@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
struct group *grp, grp1, grp2, grp3, grp4;
size_t num_grp;

Expand Down
21 changes: 14 additions & 7 deletions meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
Lifted from gentoo and ported to 4.4.5
From 54a5279cb33abd23ef7c094d51f16078ece2da0c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 6 Nov 2016 23:40:54 -0800
Subject: [PATCH] Lifted from gentoo and ported to 4.4.5

http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.2.7-pam.patch

Signed-off-by: Khem Raj <raj.khem@gmail.com>

Index: samba-4.7.0/source3/wscript
===================================================================
--- samba-4.7.0.orig/source3/wscript
+++ samba-4.7.0/source3/wscript
@@ -875,7 +875,7 @@ msg.msg_accrightslen = sizeof(fd);
---
source3/wscript | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/source3/wscript b/source3/wscript
index 5436db2..864f614 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -879,7 +879,7 @@ msg.msg_accrightslen = sizeof(fd);
if conf.env.with_iconv:
conf.DEFINE('HAVE_ICONV', 1)

Expand All @@ -17,7 +24,7 @@ Index: samba-4.7.0/source3/wscript
use_pam=True
conf.CHECK_HEADERS('security/pam_appl.h pam/pam_appl.h')
if not conf.CONFIG_SET('HAVE_SECURITY_PAM_APPL_H') and not conf.CONFIG_SET('HAVE_PAM_PAM_APPL_H'):
@@ -952,6 +952,17 @@ int i; i = PAM_RADIO_TYPE;
@@ -956,6 +956,17 @@ int i; i = PAM_RADIO_TYPE;
"or headers not found. Use --without-pam to disable "
"PAM support.");

Expand Down
Loading

0 comments on commit a001e46

Please sign in to comment.