1 SECTION = "console/network"
3 DEPENDS = "readline virtual/libiconv"
5 SRC_URI = "http://samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
6 file://volatiles.03_samba \
12 SRC_URI_append_opendreambox = " \
16 SRC_URI_append_vuplus = " \
20 S = "${WORKDIR}/samba-${PV}/source"
22 inherit autotools update-rc.d
24 FILES_${PN} += "${libdir}/vfs/*.so ${libdir}/charset/*.so ${libdir}/*.dat \
25 ${libdir}/auth/*.so ${libdir}/security/*.so"
26 FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so ${libdir}/charset/.debug/*.so \
27 ${libdir}/auth/.debug/*.so ${libdir}/security/.debug/*.so"
29 # The file system settings --foodir=dirfoo and overridden unconditionally
30 # in the samba config by --with-foodir=dirfoo - even if the --with is not
31 # specified! Fix that here. Set the privatedir to /etc/samba/private.
32 EXTRA_OECONF='--disable-cups \
33 --with-readline=${STAGING_LIBDIR}/.. \
34 --with-libiconv=${STAGING_LIBDIR}/.. \
36 --with-configdir=${sysconfdir}/samba \
37 --with-privatedir=${sysconfdir}/samba/private \
38 --with-lockdir=${localstatedir}/lock \
39 --with-piddir=${localstatedir}/run \
40 --with-logfilebase=${localstatedir}/log \
41 --with-libdir=${libdir} \
42 --with-mandir=${mandir} \
43 --with-swatdir=${datadir}/swat \
44 samba_cv_struct_timespec=yes'
46 PACKAGES =+ "libsmbclient libsmbclient-dev cifs cifs-doc smbfs smbfs-doc"
47 PACKAGES_opendreambox =+ "${@base_conditional('DISTRO', 'opendreambox', ' sambaserver libpopt libtalloc libtdb', '', d)}"
48 PACKAGES_vuplus =+ "${@base_conditional('DISTRO', 'vuplus', ' sambaserver libpopt libtalloc libtdb', '', d)}"
49 FILES_smbfs = "${bindir}/smbmount ${bindir}/smbumount ${bindir}/smbmnt ${base_sbindir}/mount.smbfs ${base_sbindir}/mount.smb"
50 FILES_smbfs-doc = "${mandir}/man8/smbmount.8 ${mandir}/man8/smbumount.8 ${mandir}/man8/smbmnt.8"
51 FILES_cifs = "${base_sbindir}/mount.cifs ${base_sbindir}/umount.cifs"
52 FILES_cifs-doc = "${mandir}/man8/mount.cifs.8 ${mandir}/man8/umount.cifs.8"
53 FILES_libsmbclient = "${libdir}/libsmbclient.so.*"
54 FILES_libsmbclient-dev = "${libdir}/libsmbclient.so ${includedir}"
55 FILES_sambaserver = "${sbindir}/smbd ${sbindir}/nmbd ${libdir}/charset/*.so ${libdir}/*.dat \
56 /etc/samba/smb.conf /etc/samba/private \
57 /etc/network/if-up.d/01samba-start /etc/network/if-down.d/01samba-kill"
58 FILES_libpopt = "${libdir}/libpopt.so.*"
59 FILES_libtalloc = "${libdir}/libtalloc.so.*"
60 FILES_libtdb = "${libdir}/libtdb.so.*"
62 PROVIDES_append_opendreambox = " sambaserver libpopt libtalloc libtdb"
63 PROVIDES_append_vuplus = " sambaserver libpopt libtalloc libtdb"
65 INITSCRIPT_NAME = "samba"
66 # No dependencies, goes in at level 20 (NOTE: take care with the
67 # level, later levels put the shutdown later too - see the links
68 # in rc6.d, the shutdown must precede network shutdown).
69 INITSCRIPT_PARAMS = "defaults"
70 CONFFILES_${PN} = "${sysconfdir}/samba/smb.conf"
72 CONFFILES_sambaserver = "${sysconfdir}/samba/smb.conf"
73 CONFFILES_${PN}_opendreambox = ""
74 CONFFILES_${PN}_vuplus = ""
76 do_configure_prepend () {
78 if [ ! -e acinclude.m4 ]; then
80 cat aclocal.m4 > acinclude.m4
85 oe_runmake proto_exists
90 install -d ${D}${libdir}/pkgconfig/
91 cp ${WORKDIR}/tdb.pc ${D}${libdir}/pkgconfig/
92 mv ${D}${libdir}/libsmbclient.so ${D}${libdir}/libsmbclient.so.0 || true
93 ln -sf libsmbclient.so.0 ${D}${libdir}/libsmbclient.so
94 mkdir -p ${D}${base_sbindir}
95 rm -f ${D}${bindir}/*.old
96 rm -f ${D}${sbindir}/*.old
97 [ -f ${D}${sbindir}/mount.cifs ] && mv ${D}${sbindir}/mount.cifs ${D}${base_sbindir}/
98 [ -f ${D}${sbindir}/umount.cifs ] && mv ${D}${sbindir}/umount.cifs ${D}${base_sbindir}/
100 # This is needed for < 3.2.4
101 rm -f ${D}${sbindir}/mount.smbfs ${D}${base_sbindir}/mount.smbfs
102 if [ -f ${D}${bindir}/smbmount ]; then
103 ln -sf ${bindir}/smbmount ${D}${base_sbindir}/mount.smb
104 ln -sf ${bindir}/smbmount ${D}${base_sbindir}/mount.smbfs
107 install -D -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/samba
108 install -D -m 644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
109 install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/volatiles.03_samba
110 install -d ${D}/var/log/samba
111 install -d ${D}/var/spool/samba
114 do_install_prepend_opendreambox() {
115 install -c -m 644 ${WORKDIR}/smb.conf ../examples/smb.conf.default
118 do_install_append_opendreambox() {
119 install -d ${D}/etc/samba/private
120 install -d ${D}/etc/network/if-down.d
121 install -m 0755 ${WORKDIR}/01samba-kill ${D}/etc/network/if-down.d
122 install -d ${D}/etc/network/if-up.d
123 install -m 0755 ${WORKDIR}/01samba-start ${D}/etc/network/if-up.d
126 do_install_prepend_vuplus() {
127 install -c -m 644 ${WORKDIR}/smb.conf ../examples/smb.conf.default
130 do_install_append_vuplus() {
131 install -d ${D}/etc/samba/private
132 install -d ${D}/etc/network/if-down.d
133 install -m 0755 ${WORKDIR}/01samba-kill ${D}/etc/network/if-down.d
134 install -d ${D}/etc/network/if-up.d
135 install -m 0755 ${WORKDIR}/01samba-start ${D}/etc/network/if-up.d
139 install -m 0644 include/libsmbclient.h ${STAGING_INCDIR}
140 oe_libinstall -C bin -a -so libsmbclient ${STAGING_LIBDIR}
141 oe_libinstall -C bin -a -so libtdb ${STAGING_LIBDIR}
142 oe_libinstall -C bin -a -so libtalloc ${STAGING_LIBDIR}
143 oe_libinstall -C bin -so libwbclient ${STAGING_LIBDIR}
144 install -d ${STAGING_LIBDIR}/pkgconfig/
145 install -m 0644 ${WORKDIR}/tdb.pc ${STAGING_LIBDIR}/pkgconfig/
146 install -m 0644 ${S}/lib/tdb/include/*.h ${STAGING_INCDIR}/