[Samba] Samba compilation issue

Gaiseric Vandal gaiseric.vandal at gmail.com
Fri May 18 10:54:32 MDT 2012


your configure syntax looks correct

One major issue I ran into was the "ld" (linker) command.   Gcc on
Solaris  (either from sun "freeware" tools cd or from
www.sunfreeware.com) was built with /usr/ccs/bin/ld -  which is an old
version.   A lot of software expects gnu ld or at least a newer version
of ld.  I could sometimes force stuff by sym linking /usr/ccs/bin/ld to
/usr/local/bin/ld  or /usr/sfw/bin/gld. 


/opt/usr/local/samba/sbin/smbd -V   didn't show any output?

Does "/usr/sbin/smbd -V"  show output (that would be the sun/oracle
version.   Probably not relevant if it does work.)


When you installed samba from sunfreeware did it warn about any missing
dependencies?





On 05/18/12 12:36, prabu.murugan at emc.com wrote:
>
> I ran
>
> ./configure --enable-external-libtalloc=no --with-libtalloc=no
>
> Issue is same.
>
> Above command is fine?
>
>  
>
> I compiled talloc 1.3.0. still make gives the same error. I have
> attached output of make errors.
>
>  
>
> Reinstalling 3.4.2   didn't helpL.
>
>  
>
> *Thanks,*
>
> *Prabu*
>
>  
>
> *From:*Gaiseric Vandal [mailto:gaiseric.vandal at gmail.com]
> *Sent:* Friday, May 18, 2012 9:22 PM
> *To:* Murugan, Prabu
> *Subject:* Re: Samba compilation issue
>
>  
>
> Your configure options  (./configure --help) include
>
>
>   --enable-external-libtalloc
>                           Enable external talloc [default=auto]
>
>       --with-libtalloc
>                         Build the libtalloc shared library
> (default=yes if  shared libs supported)
>
>
> You should be able to set to "=no"
>
> Or try building talloc 1.3.x with Samba 3.4.x.
>
> Do either of the following work?
>
>     /opt/usr/local/samba/sbin/smbd -V  
>      /opt/usr/local/samba/sbin/smbd -b  
>      /opt/usr/local/samba/testparm -v  -s
> /opt/usr/local/samba/lib/smb.conf
>
>
> You may want to have /opt/usr/local/samba/lib/ at the beginning of
> your LD_LIBRARY_PATH.
>
> You may want to reinstall the Sunfreeware version of samba 3.4.2  if
> you need to get samba up and running quickly on this machine.
>
>
>
>
>    
>
>
>
>
> On 05/18/12 10:31, prabu.murugan at emc.com
> <mailto:prabu.murugan at emc.com> wrote:
>
> Yes the 3.5.10 is from Sun/Oracle.
>
>  
>
> How to disable talloc while running ./configure?
>
>  
>
> Smbd --F doesn't give any error.
>
> bash-3.2# LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/usr/local/samba/lib/
>
> bash-3.2# /opt/usr/local/samba/sbin/smbd -F -s
> /opt/usr/local/samba/lib/smb.conf
>
> bash-3.2# ps -ef |grep smbd
>
>     root  7201  7167   0 19:32:20 pts/1       0:00 grep smbd
>
>  
>
> bash-3.2# which pkg-config
>
> /bin/pkg-config
>
> bash-3.2# /bin/pkg-config --version
>
> 0.15.0
>
>  
>
> When I try to compile talloc-2.0.7. I get this error.
>
>  
>
> Waf: Entering directory `/usr/local/talloc-2.0.7/bin'
>
> [15/28] Compiling lib/replace/test/testsuite.c
>
> ../lib/replace/test/testsuite.c:52: error: syntax error before
> "torture_local_replace"
>
> ../lib/replace/test/testsuite.c:52: warning: data definition has no
> type or storage class
>
> ../lib/replace/test/testsuite.c:1058: error: syntax error before
> "torture_local_replace"
>
> ../lib/replace/test/testsuite.c: In function `torture_local_replace':
>
> ../lib/replace/test/testsuite.c:1060: error: `bool' undeclared (first
> use in this function)
>
> ../lib/replace/test/testsuite.c:1060: error: (Each undeclared
> identifier is reported only once
>
> ../lib/replace/test/testsuite.c:1060: error: for each function it
> appears in.)
>
> ../lib/replace/test/testsuite.c:1060: error: syntax error before "ret"
>
> ../lib/replace/test/testsuite.c:1061: error: `ret' undeclared (first
> use in this function)
>
> Waf: Leaving directory `/usr/local/talloc-2.0.7/bin'
>
> Build failed:  -> task failed (err #1):
>
>         {task: cc testsuite.c -> testsuite_3.o}
>
> make: Fatal error: Command failed for target `all'
>
>  
>
> *Thanks,*
>
> *Prabu*
>
>  
>
> *From:*Gaiseric Vandal [mailto:gaiseric.vandal at gmail.com]
> *Sent:* Friday, May 18, 2012 6:57 PM
> *To:* Murugan, Prabu
> *Cc:* samba at lists.samba.org <mailto:samba at lists.samba.org>
> *Subject:* Re: Samba compilation issue
>
>  
>
> This is a lot to keep track off.
>
> So the 3.5.10 is from Sun/Oracle?
>
> I see on sunfreeware.com that 3.4.2 is still their latest version. 
> But I thought it would have installed in /usr/local/.  If you moved
> renamed the directory, you may need to update your LD_LIBRARY_PATH.  
> You may want to try running smbd with "-F"  (foreground) instead of
> "-D"  and see if that provides more errors.
>
> What does "which pkg-config" show on each machine?  I see there is a
> sunfreeware.com version of pkg-config.  The latest sun/oracle one is 0
> .15 which the one one sunfreeware.com is 0.25. 
>
>
> FYI when I compile samba I will usually compile in
> /usr/local/samba-version.  Once I have it compiled I can delete or
> rename the previous version and then symlink /usr/local/samba to the
> new version.
>
>
> Can you do "make talloc" from with in the samba source code directory
> to build, in advance, the talloc that is bundled in?    Or can you
> just disable talloc when you configure?  Although I would be
> interested if you then get warnings that tdb is unavailable. 
>
>
>
>
>
> On 05/18/12 08:52, prabu.murugan at emc.com
> <mailto:prabu.murugan at emc.com> wrote:
>
> I am on Sun SPARC system.
>
> On the non-working machine default package is 3.5.10. Till now it was
> running with 3.4.2 (SMCsamba). Wrongly mentioned as 3.5.3.
>
> I set "set ngroups_max=32"in /etc/system and rebooted.
>
> Then installed gcc 3.4.6. few more lines added to the error.
>
>  
>
> ./Configure Error:
>
> bash-3.2# more config.err
>
> configure: WARNING: $PATH contains /usr/ucb - build errors may follow
>
> Package talloc was not found in the pkg-config search path.
>
> Perhaps you should add the directory containing `talloc.pc'
>
> to the PKG_CONFIG_PATH environment variable
>
> No package 'talloc' found
>
> make: Warning: Ignoring DistributedMake -v option
>
> make: Warning: Ignoring DistributedMake -o option
>
> make: Fatal error: No dmake output dir argument after -o flag
>
>  
>
>  
>
> Another issue is. Until we fix we are planning to use 3.4.2. It is
> also not starting now L.
>
> Command " ldd -r /opt/usr/local/samba/sbin/smbd" doesn't report any error.
>
> bash-3.2# /etc/init.d/samba.server.opt start
>
> BASE=/opt/usr/local/samba
>
> + [ ! -d /usr/bin ]
>
> + [ ! -d /opt/usr/local/samba/log ]
>
> + echo Starting SMBD
>
> Starting SMBD
>
> + /opt/usr/local/samba/sbin/smbd -D -s /opt/usr/local/samba/lib/smb.conf
>
> + echo Starting NMBD
>
> Starting NMBD
>
> + /opt/usr/local/samba/sbin/nmbd -D -s /opt/usr/local/samba/lib/smb.conf
>
>  
>
>  
>
> *Thanks,*
>
> *Prabu*
>
>  
>
> *From:*Gaiseric Vandal [mailto:gaiseric.vandal at gmail.com]
> *Sent:* Friday, May 18, 2012 4:51 PM
> *To:* Murugan, Prabu; samba at lists.samba.org <mailto:samba at lists.samba.org>
> *Subject:* RE: Samba compilation issue
>
>  
>
> http://www.samba.org/ftp/talloc/  -  has talloc 1.3.x not 1.0.x (my
> mistake.)
>
>  
>
>  
>
> For the non working machine -  which package are you using for 3.4.2? 
> SMCsamba is the package from Sunfreeware.com.    I am unclear if you
> non-working has 3.4.2 or 3.5.3.   SUNWsmb*  packages are from Sun/Oracle.
>
>  
>
> I am also guessing that on the working machine you have gcc from
> sunfreeware (based on the /usr/local path.)   Depending on how your
> LD_LIBRARY_PATH was set and which gcc you were using, the SMCsamba
> packages could have provided some required libraries when building
> software.   My guess is that samba 3.5.x uses a newer libtalloc than
> 3.4.x and that was causing some of the problems.    Although
> LD_LIBRARY_PATH and PKG_CONFIG_PATH should have let you specify the
> version you wanted.  I wonder if the "wrong" gcc isn't picking it up
> correctly-   so using the same gcc as the working machine may matter.   
>
>  
>
>  
>
> Are you on a  sparc or x86_64 system?   I believe that sunfreeware gcc
> on sparc compiles 64-bit by default but on x86_64 will compile 32-bit
> by default (even on a 64-bit machine.)  
>
>  
>
>  
>
> I still think the simplest thing is to just use the latest Sun/Oracle
> samba and skip compiling.  You should be able to download the Samba
> patches from Oracle without having to install the full patch cluster. 
>
>  
>
> PS.   I noticed that samba 3.4.x and higher enforce the Solaris
> NGROUPS_MAX parameter.     You probably want to have set
> "ngroups_max=32" in /etc/system-  otherwise default is 16.  If you
> have the latest kernel patches (147440-10 or 147441-10 as of 2-3
> months ago) you can set this even higher. 
>
>  
>
>  
>
>  
>
>  
>
>  
>
> *From:*prabu.murugan at emc.com <mailto:prabu.murugan at emc.com>
> [mailto:prabu.murugan at emc.com] <mailto:[mailto:prabu.murugan at emc.com]>
> *Sent:* Friday, May 18, 2012 12:25 AM
> *To:* gaiseric.vandal at gmail.com <mailto:gaiseric.vandal at gmail.com>;
> samba at lists.samba.org <mailto:samba at lists.samba.org>
> *Subject:* RE: Samba compilation issue
>
>  
>
> Thanks a lot for your reply. I was going crazy because of this issue.
>
>  
>
> Let me answer your questions.
>
> Can you cat talloc.pc-  make sure the config file shows the correct path.
>
> >>>bash-3.2# more /usr/local/samba-extras/lib/pkgconfig/talloc.pc
>
> prefix=/usr/local/samba-extras
>
> exec_prefix=${prefix}
>
> libdir=${prefix}/lib
>
> includedir=${prefix}/include
>
> Name: talloc
>
> Description: A hierarchical pool based memory system with destructors
>
> Version: 2.0.7
>
> Libs: -Wl,-rpath,/usr/local/samba-extras/lib -L${libdir} -ltalloc
>
> Cflags: -I${includedir}
>
> URL: http://talloc.samba.org/
>
> I wonder what the significant difference is between your two solaris
> 10 machines.  Which gcc are you using.  Do either of them have the
> sunfreeware versions of samba?  Or the sun bundled versions of
> samba.   Maybe one machine already has libtalloc installed.    What
> does "pkginfo | grep -i samba" show?  I think samba 3.0x. binaries
> from Sun/Oracle may have been in /usr/sfw/bin not /usr/bin.
> >>>>On the working server /usr/local/bin/gcc version is 3.4.6. Here
> /bin/gcc is 3.4.3. path and version are different.
>
> Non working machine
>
> bash-3.2# pkginfo | grep -i samba
>
> application SMCsamba                         samba è3.5.3
>
> system      SUNWsmbaS                        samba - A Windows
> SMB/CIFS fileserver for UNIX (Source)
>
> system      SUNWsmbac                        samba - A Windows
> SMB/CIFS fileserver for UNIX (client)
>
> system      SUNWsmbar                        samba - A Windows
> SMB/CIFS fileserver for UNIX (Root)
>
> system      SUNWsmbau                        samba - A Windows
> SMB/CIFS fileserver for UNIX (Usr)
>
>  
>
> Working machine
>
> bash-3.00# pkginfo |grep samba
>
> application SMCsamba                         samba   è 3.0.24
>
> system      SUNWsmbac                        samba - A Windows
> SMB/CIFS fileserver for UNIX (client) è
>
> system      SUNWsmbar                        samba - A Windows
> SMB/CIFS fileserver for UNIX (Root)
>
> system      SUNWsmbau                        samba - A Windows
> SMB/CIFS fileserver for UNIX (Usr)
>
> system      samba                            SMB based file/printer
> sharing
>
>
> What is the current version of samba you are running.  Did you compile
> that or is if from a package?  Is the current version in the
> PKG_CONFIG_PATH or LD_LIBRARY_PATH when compiling the new one?
>
> >>>Working machine we were compiled samba 3.0.21b. now compiled 3.4.17.
> Non working machine current version 3.4.2(as package, not from source
> code) since 3.0.21b was not getting compiled.
>
> *Working machine OS is Solaris 10_update 5. Non-working machine is
> latest OS Solaris 10_update 10.*
>
> * *
>
> PS The samba 3.4.17 source code includes talloc.  But it might be
> 1.0.x  Maybe try downloading and compiling 1.0.x instead.       And I
> would try building it into the same directory that you are building
> the rest of samba.
>
> >>>I don't see 1.0.x under http://www.samba.org/ftp/talloc/. So I tried
> with 2.0.7.
> *bash-3.2# pwd*
>
> */usr/local/talloc-2.0.7*
>
> *bash-3.2# ./configure --prefix=/usr/local/samba-3.4.17/source/*
>
> * *
>
> Is the current version in the PKG_CONFIG_PATH or LD_LIBRARY_PATH when
> compiling the new one?
>
> >>>No they are not included in the new one.
>
> bash-3.2# echo $LD_LIBRARY_PATH
>
> /usr/local/samba-extras/lib/
>
> bash-3.2# echo $PKG_CONFIG_PATH
>
> /usr/local/samba-extras/lib/pkgconfig/
>
>  
>
> 3.4.2 were under /usr/local/samba/. I moved as /usr/local/samba-3.4.2.
>
>  
>
> *Thanks,*
>
> *Prabu*
>
>  
>
> *From:*Gaiseric Vandal [mailto:gaiseric.vandal at gmail.com]
> *Sent:* Friday, May 18, 2012 3:52 AM
> *To:* Murugan, Prabu; Samba
> *Subject:* Re: Samba compilation issue
>
>  
>
> On 05/17/12 18:18, Gaiseric Vandal wrote:
>
> On 05/17/12 11:15, prabu.murugan at emc.com
> <mailto:prabu.murugan at emc.com> wrote:
>
> Hi,
>
> As a security concern we are upgrading samba to 3.4.17.
>
> I tried all possible option to compile samba 3.4.17 on Solaris 10_U10.
> But it is not going through.
>
>  
>
> User requirement is to compile samba 3.4.17 to support their
> application. 3.4.17 is working on Solaris 9 and Solaris 10_U5. But not
> on Solaris 10_U10.
>
> ./configure and make gives error related to talloc. I have set the
> PKG_CONFIG_PATH. Still the error is same.
>
>  
>
> I tried the solution provided by you on URL
> http://lists.samba.org/archive/samba/2010-June/156711.html
>
> Can you help me with this issue.
>
>  
>
> bash-3.2# pwd
>
> /usr/local/samba-3.4.17/source3
>
> bash-3.2# more config.err
>
> Package talloc was not found in the pkg-config search path.
>
> Perhaps you should add the directory containing `talloc.pc'
>
> to the PKG_CONFIG_PATH environment variable
>
> No package 'talloc' found
>
>  
>
> bash-3.2# echo $LD_LIBRARY_PATH
>
> /usr/local/samba-extras/lib/
>
> bash-3.2# echo $PKG_CONFIG_PATH
>
> /usr/local/samba-extras/lib/pkgconfig/
>
>  
>
> bash-3.2# ls -l /usr/local/samba-extras/lib/pkgconfig/
>
> total 6
>
> -rw-r--r--   1 root     root         334 May 16 19:13 pytalloc-util.pc
>
> -rw-r--r--   1 root     root         324 May 16 19:13 talloc.pc
>
> -rw-r--r--   1 root     root         277 May 16 19:17 tdb.pc
>
>  
>
> bash-3.2# ls -l /usr/local/samba-extras/lib/
>
> total 188
>
> lrwxrwxrwx   1 root     root          25 May 16 19:14
> libpytalloc-util.so -> libpytalloc-util.so.2.0.7
>
> lrwxrwxrwx   1 root     root          25 May 16 19:14
> libpytalloc-util.so.2 -> libpytalloc-util.so.2.0.7
>
> -rw-r--r--   1 root     root        9412 May 16 19:14
> libpytalloc-util.so.2.0.7
>
> lrwxrwxrwx   1 root     root          18 May 16 19:14 libtalloc.so ->
> libtalloc.so.2.0.7
>
> lrwxrwxrwx   1 root     root          18 May 16 19:14 libtalloc.so.2
> -> libtalloc.so.2.0.7
>
> -rw-r--r--   1 root     root       79556 May 16 19:14 libtalloc.so.2.0.7
>
> drwxr-xr-x   2 root     root         512 May 16 19:19 pkgconfig
>
> drwxr-xr-x   3 root     root         512 May 16 19:14 python2.6
>
>  
>
> Thanks,
>
> Prabu
>
>
> I see on  http://www.samba.org/ftp/talloc/  that there is both talloc
> 1.3.x and talloc 2.0.x.    I am looking through some of my old builds
> and my old build notes.   With samba I seem to have compiled talloc
> 2.0.x separately (I have the pkgconfig files.)     I think samba 3.4.x
> I have just compiled with out talloc.    
>
>
> Can you cat talloc.pc-  make sure the config file shows the correct path.
>
>
> I wonder what the significant difference is between your two solaris
> 10 machines.  Which gcc are you using.  Do either of them have the
> sunfreeware versions of samba?  Or the sun bundled versions of
> samba.   Maybe one machine already has libtalloc installed.    What
> does "pkginfo | grep -i samba" show?  I think samba 3.0x. binaries
> from Sun/Oracle may have been in /usr/sfw/bin not /usr/bin.
>
> What is the current version of samba you are running.  Did you compile
> that or is if from a package?  Is the current version in the
> PKG_CONFIG_PATH or LD_LIBRARY_PATH when compiling the new one?
>
>
>
>
> PS The samba 3.4.17 source code includes talloc.  But it might be
> 1.0.x  Maybe try downloading and compiling 1.0.x instead.       And I
> would try building it into the same directory that you are building
> the rest of samba.
>
>  
>
>  
>



More information about the samba mailing list