Commit 002aeba3 authored by Gustavo Zacarias's avatar Gustavo Zacarias Committed by Thomas Petazzoni
Browse files

samba4: bump to version 4.1.7 and improve cross build



Bump to the latest 4.1.7 version and improve the cross-build logic.
With the new patches the build is basically architecture-agnostic making
it possible to ditch the arch-specific cache to use a generic one.
Some toolchains might not be too happy with samba4 because of bitrot,
hopefully we'll find and fix or blacklist those with autobuilder help.

Signed-off-by: default avatarGustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: default avatarArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 36afe6de
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -6,8 +6,6 @@ config BR2_PACKAGE_SAMBA4
	depends on BR2_USE_WCHAR # e2fsprogs
	depends on BR2_LARGEFILE
	depends on BR2_TOOLCHAIN_HAS_THREADS # talloc python threads
	# Supported architectures only limited by the cached answers
	depends on BR2_arm || BR2_powerpc || BR2_x86_64
	select BR2_PACKAGE_E2FSPROGS
	select BR2_PACKAGE_POPT
	select BR2_PACKAGE_PYTHON
@@ -20,6 +18,5 @@ config BR2_PACKAGE_SAMBA4
	  http://www.samba.org/

comment "samba4 needs a toolchain w/ IPv6, wchar, largfile, threads"
	depends on BR2_arm || BR2_powerpc || BR2_x86_64
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE || \
		!BR2_USE_WCHAR || !BR2_INET_IPV6

package/samba4/powerpc-cache.txt

deleted100644 → 0
+0 −65
Original line number Diff line number Diff line
Checking simple C program: OK
rpath library support: OK
-Wl,--version-script support: OK
Checking getconf LFS_CFLAGS: NO
Checking for large file support without additional flags: OK
Checking for -D_LARGE_FILES: OK
Checking correct behavior of strtoll: NO
Checking for working strptime: OK
Checking for C99 vsnprintf: OK
Checking for HAVE_SHARED_MMAP: OK
Checking for HAVE_MREMAP: OK
Checking for HAVE_INCOHERENT_MMAP: NO
Checking for HAVE_SECURE_MKSTEMP: OK
Checking for HAVE_IFACE_GETIFADDRS: OK
Checking for HAVE_LITTLE_ENDIAN - runtime: NO
Checking for HAVE_BIG_ENDIAN - runtime: OK
Checking for kernel change notify support: OK
Checking for Linux kernel oplocks: OK
Checking for kernel share modes: OK
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking if can we convert from CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 to UCS-2LE: OK
Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
Checking whether we can use Linux thread-specific credentials: OK
Checking whether setreuid is available: OK
Checking whether setresuid is available: OK
Checking whether seteuid is available: OK
Checking whether fcntl locking is available: OK
Checking for the maximum value of the 'time_t' type: OK
Checking whether the realpath function allows a NULL argument: OK
Checking whether POSIX capabilities are available: OK
Checking for ftruncate extend: OK
getcwd takes a NULL argument: OK
Checking uname sysname type: "Linux"
Checking uname machine type: "powerpc"
Checking uname release type: "3.0.0"
Checking uname version type: "#1 Tue Nov 1 12:34:56 UTC 2013"
Checking for WORDS_BIGENDIAN: OK
Checking size of bool: "1"
Checking size of char: "1"
Checking size of int: "4"
Checking size of long long: "8"
Checking size of long: "4"
Checking size of short: "2"
Checking size of size_t: "4"
Checking size of ssize_t: "4"
Checking size of int8_t: "1"
Checking size of uint8_t: "1"
Checking size of int16_t: "2"
Checking size of uint16_t: "2"
Checking size of int32_t: "4"
Checking size of uint32_t: "4"
Checking size of int64_t: "8"
Checking size of uint64_t: "8"
Checking size of void*: "4"
Checking size of off_t: "8"
Checking size of dev_t: "8"
Checking size of ino_t: "8"
Checking size of time_t: "4"
Checking size of ((struct utmp *)NULL)->ut_line: "32"
Checking value of NSIG: "65"
Checking value of _NSIG: "65"
Checking value of SIGRTMAX: "64"
Checking value of SIGRTMIN: "34"
+4 −6
Original line number Diff line number Diff line
From 3c16a171c008b584ed427988dde73c1d9a9de4ad Mon Sep 17 00:00:00 2001
From 5e0bafd6504916dd7de5b1ae90e7253d11498435 Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Mon, 20 Jan 2014 10:17:19 -0300
Subject: [PATCH 2/3] build: don't execute statfs and f_fsid checks
Subject: [PATCH 1/5] build: don't execute statfs and f_fsid checks

There's no need to execute the statfs and statfs.f_fsid checks, the
return value is of no consequence since it's undefined in some
platforms and prevents cross-compiling.

Status: sent, not yet upstream pending more testing.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 source3/wscript | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/source3/wscript b/source3/wscript
index 501707b..2d0a62e 100644
index 4fe49fa..e81a47b 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -468,8 +468,7 @@ return acl_get_perm_np(permset_d, perm);
@@ -476,8 +476,7 @@ return acl_get_perm_np(permset_d, perm);
     conf.CHECK_CODE('struct statfs fsd; fsid_t fsid = fsd.f_fsid; return statfs(".", &fsd);',
                     'HAVE_STATFS_F_FSID',
                     msg="vfs_fileid: checking for statfs() and struct statfs.f_fsid",
+0 −32
Original line number Diff line number Diff line
From 0d4f18b88c3e687b83dcbe4c27f74424cf2f2043 Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Mon, 3 Mar 2014 07:57:24 -0300
Subject: [PATCH] smbreadline: switch to new-style readline typedef

Function, CPFunction, CPPFunction and VFunction typedefs are considered
old-style (deprecated) starting from readline 4.2.
Compatibility typedefs have been in place up to readline 6.2 but were
removed with the 6.3 release thus causing builds to break.
Swtich to the new-style specific prototyped typedef.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 libcli/smbreadline/smbreadline.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcli/smbreadline/smbreadline.c b/libcli/smbreadline/smbreadline.c
index cff25a7..80e10b0 100644
--- a/libcli/smbreadline/smbreadline.c
+++ b/libcli/smbreadline/smbreadline.c
@@ -141,7 +141,7 @@ char *smb_readline(const char *prompt, void (*callback)(void),
 
 #if HAVE_DECL_RL_EVENT_HOOK
 	if (callback)
-		rl_event_hook = (Function *)callback;
+		rl_event_hook = (rl_hook_func_t *)callback;
 #endif
 	ret = readline(prompt);
 	if (ret && *ret)
-- 
1.8.3.2
+52 −0
Original line number Diff line number Diff line
From 934f8c8e9439de4f15b2e61016d5d29233d8d5fa Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Wed, 16 Apr 2014 08:01:36 -0300
Subject: [PATCH 5/5] build: find blkcnt_t size via array

Using the same trick as commit 0d9bb86293c9d39298786df095c73a6251b08b7e
find blkcnt_t size via an array so that it can be determined via build
rather than running it.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 source3/wscript | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/source3/wscript b/source3/wscript
index aade503..6a5728f 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -277,18 +277,20 @@ int main(int argc, char **argv)
                                 headers='sys/types.h sys/stat.h unistd.h')
 
     if "HAVE_BLKCNT_T" in conf.env:
-	conf.CHECK_CODE('''
-	return sizeof(blkcnt_t) == 4 ? 0 : 1''',
-		'SIZEOF_BLKCNT_T_4', execute=True,
-		headers='replace.h sys/types.h sys/stat.h unistd.h',
-		msg="Checking whether blkcnt_t is 32 bit")
+        conf.CHECK_CODE('''
+        static int test_array[1 - 2 * !(((long int)(sizeof(blkcnt_t))) <= 4)];''',
+                'SIZEOF_BLKCNT_T_4',
+                headers='replace.h sys/types.h sys/stat.h unistd.h',
+                msg="Checking whether blkcnt_t is 32 bit")
 
+    # If sizeof is 4 it can't be 8
     if "HAVE_BLKCNT_T" in conf.env:
-	conf.CHECK_CODE('''
-	return sizeof(blkcnt_t) == 8 ? 0 : 1''',
-		'SIZEOF_BLKCNT_T_8', execute=True,
-		headers='replace.h sys/types.h sys/stat.h unistd.h',
-		msg="Checking whether blkcnt_t is 64 bit")
+        if not conf.CONFIG_SET('SIZEOF_BLKCNT_T_4'):
+            conf.CHECK_CODE('''
+            static int test_array[1 - 2 * !(((long int)(sizeof(blkcnt_t))) <= 8)];''',
+                    'SIZEOF_BLKCNT_T_8',
+                    headers='replace.h sys/types.h sys/stat.h unistd.h',
+                    msg="Checking whether blkcnt_t is 64 bit")
 
     # Check for POSIX capability support
     conf.CHECK_FUNCS_IN('cap_get_proc', 'cap', headers='sys/capability.h')
-- 
1.8.3.2
Loading