I am trying to build Samba 4.6.4 on an ARM 7 Cortex based router (Netgear
R8000), running *DD-WRT v3.0-r31980M kongac (05/11/17)*
I'm working with some folks via the DDWRT, but we're running into an
issue
trying to build from source.
I have python 2.7 already installed on the router, and I'm executing the
install_with_python.sh script.
./install_with_python.sh /opt/test/samba-4.6.4
/opt/test/samba-4.6.4 is the location that I extracted the source code
tarball, is that what I should be using for the [prefix]?
Since I already have python installed, I created a symlink to my
pre-installed python 2.7 binary to samba-4.6.4/python/bin/python
Which gives the output:
Checking for program gcc or cc : /opt/bin/gcc
Checking for program cpp : /opt/bin/cpp
Checking for program ar : /opt/bin/ar
Checking for program ranlib : /opt/bin/ranlib
Checking for gcc : ok
Checking for program git : /opt/usr/bin/git
Check for -MD : yes
Checking for program gdb : /opt/usr/bin/gdb
Checking build system : Linux router 4.4.67 #317 SMP Thu
May 11 12:58:51 CEST 2017 armv7l GNU/Linux
Checking for header sys/utsname.h : yes
*Checking uname sysname type* : Traceback (most recent call
last):
File "./buildtools/bin/waf", line 76, in <module>
Scripting.prepare(t, cwd, VERSION, wafdir)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Scripting.py",
line
145, in prepare
prepare_impl(t, cwd, ver, wafdir)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Scripting.py",
line
135, in prepare_impl
main()
File "/opt/test/samba-4.6.4/wscript", line 350, in main
wildcard_main(wildcard_cmd)
File "./buildtools/wafsamba/samba_wildcard.py", line 110, in
wildcard_main
fun(ctx)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Scripting.py",
line
241, in configure
conf.sub_config([''])
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Configure.py",
line
237, in sub_config
self.recurse(k, name='configure')
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
656,
in recurse
f(self)
File "/opt/test/samba-4.6.4/wscript", line 101, in configure
conf.RECURSE('lib/replace')
File "./buildtools/wafsamba/samba_utils.py", line 451, in RECURSE
return ctx.sub_config(relpath)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Configure.py",
line
237, in sub_config
self.recurse(k, name='configure')
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
656,
in recurse
f(self)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
743,
in wrap
ret = fun(k)
File "/opt/test/samba-4.6.4/lib/replace/wscript", line 28, in
configure
conf.RECURSE('buildtools/wafsamba')
File "./buildtools/wafsamba/samba_utils.py", line 451, in RECURSE
return ctx.sub_config(relpath)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Configure.py",
line
237, in sub_config
self.recurse(k, name='configure')
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
656,
in recurse
f(self)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
743,
in wrap
ret = fun(k)
File
"/opt/test/samba-4.6.4/lib/replace/../../buildtools/wafsamba/wscript",
line
308, in configure
conf.CHECK_UNAME()
File "./buildtools/wafsamba/samba_conftests.py", line 452, in
CHECK_UNAME
msg="Checking uname %s type" % v):
File "./buildtools/wafsamba/samba_autoconf.py", line 436, in
CHECK_CODE
define_ret=define_ret)
File "./buildtools/wafsamba/samba_conftests.py", line 52, in check
ret = self.run_c_code(*k, **kw)
File
"/opt/test/samba-4.6.4/third_party/waf/wafadmin/Tools/config_c.py",
line 575, in run_c_code
proc = Utils.pproc.Popen([lastprog] + args, stdout=Utils.pproc.PIPE,
stderr=Utils.pproc.PIPE)
File "/opt/usr/lib/python2.7/subprocess.py", line 390, in __init__
errread, errwrite)
File "/opt/usr/lib/python2.7/subprocess.py", line 1024, in
_execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
So something seems to be wrong at the "*Checking uname sysname type*"
step
and I just can't figure out what it is. I've tried parsing through all
of
the individual python scripts lists above, but I just don't know enough
Python syntax to understand what's breaking. Obviously there's a file
missing, but I can't figure out what file.
Is the [prefix] that I'm passing into the install script supposed to be
something else? Are there special config parms I should be passing into the
script? Since I'm building directing on the device I plan to use the code
on, I shouldn't have to deal with any -cross-build / toolchain issues
should I?
The build-from-source documentation seems to be for the old autoconf based
build process, and I can't really find any details about the was builder.
Can anyone at least point me in the right direction towards figuring out
what the issue is? I'm hitting a brick wall.
I'm attaching the config.log, but it doesn't show any errors, just stops
at
the point where the problem seems to occur.
Andrew Bartlett
2017-Jun-03 06:58 UTC
[Samba] Building from source on an ARM71 based router
On Fri, 2017-06-02 at 20:59 -0400, Zac Morris via samba wrote:> I am trying to build Samba 4.6.4 on an ARM 7 Cortex based router (Netgear > R8000), running *DD-WRT v3.0-r31980M kongac (05/11/17)* > > I'm working with some folks via the DDWRT, but we're running into an issue > trying to build from source. > > I have python 2.7 already installed on the router, and I'm executing the > install_with_python.sh script. > > ./install_with_python.sh /opt/test/samba-4.6.4You don't need to use install_with_python.sh if you already have python. (We should probably remove that script, it installs an outdated version). I hope this helps, Andrew Bartlett -- Andrew Bartlett http://samba.org/~abartlet/ Authentication Developer, Samba Team http://samba.org Samba Developer, Catalyst IT http://catalyst.net.nz/services/samba
No, sorry, it's actually failing on "configure" which this script
calls. I
should have been more clear.
./configured is failing at step: *Checking uname sysname type*
It's obviously missing some app/header/library, but reading through all the
breakpoints listed in the error (re-pasted below) I can't make out from the
code what it's looking for, and the config.log doesn't show a better
error.
I even manually ran the last step shown in config.log and it ran fine, so I
don't believe that is the step that it's actually hanging on. I'm
hoping to
hear back from someone that's familiar what's actually happening during
this step of configure.
*Checking uname sysname type* : Traceback (most recent call
last):
File "./buildtools/bin/waf", line 76, in <module>
Scripting.prepare(t, cwd, VERSION, wafdir)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Scripting.py",
line
145, in prepare
prepare_impl(t, cwd, ver, wafdir)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Scripting.py",
line
135, in prepare_impl
main()
File "/opt/test/samba-4.6.4/wscript", line 350, in main
wildcard_main(wildcard_cmd)
File "./buildtools/wafsamba/samba_wildcard.py", line 110, in
wildcard_main
fun(ctx)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Scripting.py",
line
241, in configure
conf.sub_config([''])
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Configure.py",
line
237, in sub_config
self.recurse(k, name='configure')
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
656,
in recurse
f(self)
File "/opt/test/samba-4.6.4/wscript", line 101, in configure
conf.RECURSE('lib/replace')
File "./buildtools/wafsamba/samba_utils.py", line 451, in RECURSE
return ctx.sub_config(relpath)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Configure.py",
line
237, in sub_config
self.recurse(k, name='configure')
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
656,
in recurse
f(self)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
743,
in wrap
ret = fun(k)
File "/opt/test/samba-4.6.4/lib/replace/wscript", line 28, in
configure
conf.RECURSE('buildtools/wafsamba')
File "./buildtools/wafsamba/samba_utils.py", line 451, in RECURSE
return ctx.sub_config(relpath)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Configure.py",
line
237, in sub_config
self.recurse(k, name='configure')
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
656,
in recurse
f(self)
File "/opt/test/samba-4.6.4/third_party/waf/wafadmin/Utils.py", line
743,
in wrap
ret = fun(k)
File
"/opt/test/samba-4.6.4/lib/replace/../../buildtools/wafsamba/wscript",
line 308, in configure
conf.CHECK_UNAME()
File "./buildtools/wafsamba/samba_conftests.py", line 452, in
CHECK_UNAME
msg="Checking uname %s type" % v):
File "./buildtools/wafsamba/samba_autoconf.py", line 436, in
CHECK_CODE
define_ret=define_ret)
File "./buildtools/wafsamba/samba_conftests.py", line 52, in check
ret = self.run_c_code(*k, **kw)
File
"/opt/test/samba-4.6.4/third_party/waf/wafadmin/Tools/config_c.py",
line 575, in run_c_code
proc = Utils.pproc.Popen([lastprog] + args, stdout=Utils.pproc.PIPE,
stderr=Utils.pproc.PIPE)
File "/opt/usr/lib/python2.7/subprocess.py", line 390, in __init__
errread, errwrite)
File "/opt/usr/lib/python2.7/subprocess.py", line 1024, in
_execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
On Sat, Jun 3, 2017 at 2:58 AM, Andrew Bartlett <abartlet at samba.org>
wrote:
> On Fri, 2017-06-02 at 20:59 -0400, Zac Morris via samba wrote:
> > I am trying to build Samba 4.6.4 on an ARM 7 Cortex based router
(Netgear
> > R8000), running *DD-WRT v3.0-r31980M kongac (05/11/17)*
> >
> > I'm working with some folks via the DDWRT, but we're running
into an
> issue
> > trying to build from source.
> >
> > I have python 2.7 already installed on the router, and I'm
executing the
> > install_with_python.sh script.
> >
> > ./install_with_python.sh /opt/test/samba-4.6.4
>
> You don't need to use install_with_python.sh if you already have
> python. (We should probably remove that script, it installs an
> outdated version).
>
> I hope this helps,
>
> Andrew Bartlett
> --
> Andrew Bartlett http://samba.org/~abartlet/
> Authentication Developer, Samba Team http://samba.org
> Samba Developer, Catalyst IT http://catalyst.net.nz/
> services/samba
>
>