Question with compiling 4.12rc2 and ceph.

L. van Belle belle at samba.org
Wed Feb 5 16:06:06 UTC 2020


hai, 
 
I have a question, 
Im working on the 4.12.0rc2  packages for debian buster.
im having a few problems with these parts in source3/wscript mainly the ceph
part. 


I was thinking base on : 
  --with-libcephfs no longer supported, please use compiler
  flags instead, e.g. GCC LIBRARY_PATH and C_INCLUDE_PATH''') 

That this would be correct : 
  --with-libcephfs=/usr/lib/$(DEB_HOST_MULTIARCH) \  


>From source3/wscript 

    opt.add_option('--with-libcephfs',
                   help=("Directory under which libcephfs is installed"),
                   action="store", dest='libcephfs_dir', default=None)
and 
 
    conf.env['CFLAGS_CEPHFS'] = "-D_FILE_OFFSET_BITS=64"
    if Options.options.libcephfs_dir:
        Logs.error('''--with-libcephfs no longer supported, please use
compiler
                   flags instead, e.g. GCC LIBRARY_PATH and
C_INCLUDE_PATH''')
        sys.exit(1)
 
    if (Options.options.with_cephfs and
        conf.CHECK_HEADERS('cephfs/libcephfs.h', False, False, 'cephfs') and
        conf.CHECK_LIB('cephfs', shlib=True)):
        if (Options.options.with_acl_support and
            conf.CHECK_FUNCS_IN('ceph_statx', 'cephfs',
                                headers='cephfs/libcephfs.h')):
            conf.DEFINE('HAVE_CEPH', '1')
        else:
            Logs.warn('''Ceph support disabled due to --without-acl-support
                      or lack of ceph_statx support''')
            conf.undefine('HAVE_CEPH')

 
which translates in debian/rules to : 
 
override_dh_shlibdeps:
 
LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/samba:$$LD_LIBRARY_
PATH \
          dh_shlibdeps -a -Xceph.so -Xglusterfs.so -Xsnapper.so
-Xctdb_mutex_ceph_rados_helper
ifneq (,$(filter amd64 arm64 armel armhf i386 mips64el mipsel ppc64el ppc64
s390x x32, $(DEB_HOST_ARCH)))
 
LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/samba:$$LD_LIBRARY_
PATH \
          dh_shlibdeps -a -- -pvfsceph -dRecommends \
            -e debian/samba-vfs-modules/usr/lib/*/samba/vfs/ceph.so
 
LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/samba:$$LD_LIBRARY_
PATH \
          dh_shlibdeps -a -- -prados -dRecommends \
            -e debian/ctdb/usr/lib/*/ctdb/ctdb_mutex_ceph_rados_helper
endif
ifeq ($(DEB_HOST_ARCH_OS), linux)
 
LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/samba:$$LD_LIBRARY_
PATH \
          dh_shlibdeps -a -- -pvfsglusterfs -dRecommends \
            -e debian/samba-vfs-modules/usr/lib/*/samba/vfs/glusterfs.so
endif
 
LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/samba:$$LD_LIBRARY_
PATH \
          dh_shlibdeps -a -- -pvfssnapper -dRecommends \
            -e debian/samba-vfs-modules/usr/lib/*/samba/vfs/snapper.so


Now, my problem here, i am at the point that most is build and looks good,
but im stopped at this part.

override_dh_shlibdeps:
 
LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/samba:$$LD_LIBRARY_
PATH \
          dh_shlibdeps -a -Xceph.so -Xglusterfs.so -Xsnapper.so
-Xctdb_mutex_ceph_rados_helper
ifneq (,$(filter amd64 arm64 armel armhf i386 mips64el mipsel ppc64el ppc64
s390x x32, $(DEB_HOST_ARCH)))
 
LD_LIBRARY_PATH=$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/samba:$$LD_LIBRARY_
PATH \
          dh_shlibdeps -a -- -pvfsceph -dRecommends \
            -e debian/samba-vfs-modules/usr/lib/*/samba/vfs/ceph.so

Because it cant find debian/samba-vfs-modules/usr/lib/*/samba/vfs/ceph.so

But i found these 2. ( from manualy .configure make .. ) 
samba-4.12.0rc2/bin/default/source3/modules/libvfs_module_ceph.so
samba-4.12.0rc2/bin/modules/vfs/ceph.so

So, if i just run : ./configure && make && make install, its all done
successfully. 
And ceph.so is created correctly, i dont see what i mis here. 

Im doing something wrong with the parameter 
                --with-libcephfs=/usr/lib/$(DEB_HOST_MULTIARCH) \
At least thats what im thinking, but i dont see what.

And this if the part of debian/rules that configures it. 
conf_args = \
                --prefix=/usr \
                --enable-fhs \
                --sysconfdir=/etc \
                --localstatedir=/var \
                --libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
                --with-privatedir=/var/lib/samba/private \
                --with-smbpasswd-file=/etc/samba/smbpasswd \
                --with-piddir=/run/samba \
                --with-pammodulesdir=/lib/$(DEB_HOST_MULTIARCH)/security \
                --with-pam \
                --with-syslog \
                --with-utmp \
                --with-winbind \
                --with-quota \
 
--with-shared-modules=idmap_rid,idmap_ad,idmap_adex,idmap_hash,idmap_ldap,id
map_tdb2,vfs_dfs_samba4,auth_samba4,vfs_nfs4acl_xattr \
                --with-automount \
                --with-ldap \
                --with-ads \
                --with-dnsupdate \
                --with-gpgme \
                --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
                --with-modulesdir=/usr/lib/$(DEB_HOST_MULTIARCH)/samba \
                --datadir=/usr/share \
                --with-lockdir=/run/samba \
                --with-statedir=/var/lib/samba \
                --with-cachedir=/var/cache/samba \
                --enable-avahi \
                --disable-rpath \
                --disable-rpath-install \
 
--bundled-libraries=NONE,pytevent,iniparser,roken,replace,wind,hx509,asn1,he
imbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,com_err,compile_et,asn1_compile
\
                --builtin-libraries=ccan,samba-cluster-support \
                --minimum-library-version="$(shell ./debian/autodeps.py
--minimum-library-version)" \
                --with-cluster-support \
                --with-socketpath=/run/ctdb/ctdbd.socket \
                --with-logdir=/var/log/ctdb \
                --with-libcephfs=/usr/lib/$(DEB_HOST_MULTIARCH) \
                --enable-etcd-reclock \
                --enable-spotlight

ifneq (,$(filter amd64 arm64 armel armhf i386 mips64el mipsel ppc64el ppc64
s390x x32, $(DEB_HOST_ARCH)))
        conf_args += \
                --with-libcephfs=/usr/lib/$(DEB_HOST_MULTIARCH) \
                --enable-ceph-reclock
else
        conf_args += \
                --disable-cephfs
Endif


So if anyone has any suggestions? Very appriciated. 

Thanks in advance.. 


Greetz, 

Louis







More information about the samba-technical mailing list