Question about compiling from source (library linkage, etc) - Slackware

This is a discussion on Question about compiling from source (library linkage, etc) - Slackware ; I am trying to see the big picture here, and I am a bit confused. Perhaps, someone here will be able to shed some light about some of the possible trip points when building packages from source. In this example, ...

+ Reply to Thread
Results 1 to 7 of 7

Thread: Question about compiling from source (library linkage, etc)

  1. Question about compiling from source (library linkage, etc)

    I am trying to see the big picture here, and I am a bit confused. Perhaps,
    someone here will be able to shed some light about some of the possible
    trip points when building packages from source. In this example, I am
    trying to rebuild Samba from source. I have found that the development
    platform used to compile the package can make a big difference.
    Obviously, this shouldn't be a big surprise, but the degree of difference
    between the two platforms is what is throwing me for a loop and causing my
    confusion.

    The first development platform is Slackware 12.0 (and patched with
    security fixes) and the second is a Dropline Gnome on top of a
    similar Slackware 12.0. Dropline Gnome adds some libraries to the system,
    including avahi and kerberos. BTW, in my setup, I would really prefer
    support for kerberos be built in; I think that is what I need to
    integrate with active directory, etc. I am trying to understand "how"
    it happens; just to see the big picture for future reference. I am
    confused by the fact that Samba, when compiled with the extra libraries
    provided by Dropline, "sees" that they are present and somewhat
    arbitrarily decides to use them and links against them. I would have
    thought it was a much more formal directive for Samba (in configure), to
    specifically enable support for kerberos and other libraries.

    This may be a n00b-type question, and hopefully not too far off topic.
    TIA. Some more information is included below.

    I double checked that the samba.Slackbuild's "configure" directives are
    exactly the same on each system, and look like this:

    CFLAGS="$SLKCFLAGS" ./configure \
    --enable-cups \
    --enable-static=no \
    --enable-shared=yes \
    --with-fhs \
    --with-acl-support=yes \
    --with-automount \
    --prefix=/usr \
    --localstatedir=/var \
    --bindir=/usr/bin \
    --sbindir=/usr/sbin \
    --with-lockdir=/var/cache/samba \
    --sysconfdir=/etc \
    --with-configdir=/etc/samba \
    --with-privatedir=/etc/samba/private \
    --with-swatdir=/usr/share/swat \
    --with-smbmount \
    --with-quotas \
    --with-syslog \
    --with-utmp \
    --with-libsmbclient \
    --with-winbind \
    --with-ldap \
    --build=$ARCH-slackware-linux

    Samba as built by Standard Slackware 12.0

    $ ldd /usr/sbin/smbd
    linux-gate.so.1 => (0xffffe000)
    libldap-2.3.so.0 => /usr/lib/libldap-2.3.so.0 (0xb7f66000)
    liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0xb7f5a000)
    libcups.so.2 => /usr/lib/libcups.so.2 (0xb7f32000)
    libssl.so.0 => /usr/lib/libssl.so.0 (0xb7ef2000)
    libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb7db4000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb7da0000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xb7d88000)
    libm.so.6 => /lib/libm.so.6 (0xb7d61000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7d33000)
    libattr.so.1 => /lib/libattr.so.1 (0xb7d2f000)
    libacl.so.1 => /lib/libacl.so.1 (0xb7d28000)
    libresolv.so.2 => /lib/libresolv.so.2 (0xb7d15000)
    libnsl.so.1 => /lib/libnsl.so.1 (0xb7cfd000)
    libdl.so.2 => /lib/libdl.so.2 (0xb7cf9000)
    libpopt.so.0 => /usr/lib/libpopt.so.0 (0xb7cf2000)
    libdm.so.0 => /lib/libdm.so.0 (0xb7ced000)
    libc.so.6 => /lib/libc.so.6 (0xb7bab000)
    libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7b94000)
    /lib/ld-linux.so.2 (0xb7fb8000)

    [ end ldd output ]

    Samba built using a system with Dropline Gnome on top of Slackware 12.0
    (output reodered to show comparison)

    $ ldd /usr/sbin/smbd
    linux-gate.so.1 => (0xffffe000)
    libldap-2.3.so.0 => /usr/lib/libldap-2.3.so.0 (0xb7eb0000)
    liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0xb7ea4000)
    libcups.so.2 => /usr/lib/libcups.so.2 (0xb7d73000)
    libssl.so.0 => /usr/lib/libssl.so.0 (0xb7d33000)
    libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb7bf4000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb7be0000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xb7bc9000)
    libm.so.6 => /lib/libm.so.6 (0xb7ba2000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7b74000)
    libattr.so.1 => /lib/libattr.so.1 (0xb7b68000)
    libacl.so.1 => /lib/libacl.so.1 (0xb7b6d000)
    libresolv.so.2 => /lib/libresolv.so.2 (0xb7da3000)
    libnsl.so.1 => /lib/libnsl.so.1 (0xb7b51000)
    libdl.so.2 => /lib/libdl.so.2 (0xb7d9f000)
    libpopt.so.0 => /usr/lib/libpopt.so.0 (0xb7b42000)
    libdm.so.0 => /lib/libdm.so.0 (0xb7b3d000)
    libc.so.6 => /lib/libc.so.6 (0xb79dd000)
    libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb79c6000)
    /lib/ld-linux.so.2 (0xb7f07000)

    [ differences ]

    libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7e79000)
    libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7de3000)
    libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb79be000)
    libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7dbb000)
    libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0xb7db6000)
    libdns_sd.so.1 => /usr/lib/libdns_sd.so.1 (0xb7b49000)
    libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0xb79b2000)
    libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0xb79a3000)
    libtalloc.so.1 => /usr/lib/libtalloc.so.1 (0xb7b34000)
    libtdb.so.1 => /usr/lib/libtdb.so.1 (0xb7b27000)
    libwbclient.so.0 => /usr/lib/libwbclient.so.0 (0xb7b1f000)
    libssp.so.0 => /usr/lib/libssp.so.0 (0xb79a0000)
    libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb796e000)

    [ end ldd output ]


    --
    Douglas Mayne

  2. Re: Question about compiling from source (library linkage, etc)

    Douglas Mayne wrote:
    > The first development platform is Slackware 12.0 (and patched with
    > security fixes) and the second is a Dropline Gnome on top of a
    > similar Slackware 12.0. Dropline Gnome adds some libraries to the system,
    > including avahi and kerberos. BTW, in my setup, I would really prefer
    > support for kerberos be built in; I think that is what I need to
    > integrate with active directory, etc. I am trying to understand "how"
    > it happens; just to see the big picture for future reference. I am
    > confused by the fact that Samba, when compiled with the extra libraries
    > provided by Dropline, "sees" that they are present and somewhat
    > arbitrarily decides to use them and links against them. I would have
    > thought it was a much more formal directive for Samba (in configure), to
    > specifically enable support for kerberos and other libraries.


    each configure option has a default. apparently, the default w.r.t.
    kerberos in samba is to use it when it's there. this means that the
    configure script checks for kerberos in the standard locations (/usr/lib,
    /usr/local/lib, perhaps a few others) and if it finds it, it compiles samba
    with support for it. if it doesn't find it, as with a stock slack 12.0,
    support is not built in.

    so if you have kerberos on your system, and you *don't* want samba to be
    compiled with support for it, you have to explicitly disable it. since a
    stock slack 12.0 doesn't have kerberos, pat probably didn't see the need to
    exclude it in his slackbuild script.

    if you do './configure --help | less' you get a list of all configure
    options and (usually) their default values.

    HTH


    --
    Joost Kremers joostkremers@yahoo.com
    Selbst in die Unterwelt dringt durch Spalten Licht
    EN:SiS(9)

  3. Re: Question about compiling from source (library linkage, etc)

    On Fri, 15 Aug 2008 14:50:39 +0000, Joost Kremers wrote:

    >
    > each configure option has a default. apparently, the default w.r.t.
    > kerberos in samba is to use it when it's there. this means that the
    > configure script checks for kerberos in the standard locations (/usr/lib,
    > /usr/local/lib, perhaps a few others) and if it finds it, it compiles samba
    > with support for it. if it doesn't find it, as with a stock slack 12.0,
    > support is not built in.
    >
    > so if you have kerberos on your system, and you *don't* want samba to be
    > compiled with support for it, you have to explicitly disable it. since a
    > stock slack 12.0 doesn't have kerberos, pat probably didn't see the need to
    > exclude it in his slackbuild script.
    >
    > if you do './configure --help | less' you get a list of all configure
    > options and (usually) their default values.
    >
    > HTH
    >

    Thanks! That helps to point me in the right direction. It looks like I
    have some more reading to do to see how this fits together.

    --
    Douglas Mayne




  4. Re: Question about compiling from source (library linkage, etc)

    Douglas Mayne wrote:

    > I would have thought it was a much more formal directive for Samba (in
    > configure), to specifically enable support for kerberos and other
    > libraries.


    See the output of "./configure --help". Chances are there are some
    features that default to "auto-detect".

    --
    ----------------------------------------------------------------------
    Sylvain Robitaille syl@alcor.concordia.ca

    Network and Systems analyst Concordia University
    Instructional & Information Technology Montreal, Quebec, Canada
    ----------------------------------------------------------------------

  5. Re: Question about compiling from source (library linkage, etc)

    Joost Kremers wrote:

    > if you do './configure --help | less' ...


    I should have kept reading before posting ...

    --
    ----------------------------------------------------------------------
    Sylvain Robitaille syl@alcor.concordia.ca

    Network and Systems analyst Concordia University
    Instructional & Information Technology Montreal, Quebec, Canada
    ----------------------------------------------------------------------

  6. Re: Question about compiling from source (library linkage, etc)

    On Fri, 15 Aug 2008 08:12:31 -0600, Douglas Mayne wrote:

    > I am trying to see the big picture here, and I am a bit confused.
    > Perhaps, someone here will be able to shed some light about some of the
    > possible trip points when building packages from source. In this
    > example, I am trying to rebuild Samba from source. I have found that the
    > development platform used to compile the package can make a big
    > difference. Obviously, this shouldn't be a big surprise, but the degree
    > of difference between the two platforms is what is throwing me for a
    > loop and causing my confusion.
    >
    > The first development platform is Slackware 12.0 (and patched with
    > security fixes) and the second is a Dropline Gnome on top of a similar
    > Slackware 12.0. Dropline Gnome adds some libraries to the system,
    > including avahi and kerberos.


    In my experience, adding Dropline to Slackware is asking for
    trouble. Not only does it replace a hell of a lot of stuff for no good
    reason but, in addition it brings in some questionable packages (PAM
    being the egregious example.) The end result has been, for me, invariably
    less stable than the original Slackware.

    If you need to have Gnome, you'd be better off using GnomeSlacky
    (at slacky.eu) which is far less intrusive, and does not destabilize
    Slackware.


  7. Re: Question about compiling from source (library linkage, etc)

    Sylvain Robitaille wrote:
    > Joost Kremers wrote:
    >
    >> if you do './configure --help | less' ...

    >
    > I should have kept reading before posting ...


    sssh! just don't tell anyone. you can always claim that my post hadn't
    reached your news server yet when you posted. ;-)


    --
    Joost Kremers joostkremers@yahoo.com
    Selbst in die Unterwelt dringt durch Spalten Licht
    EN:SiS(9)

+ Reply to Thread