modify recipes/samba
[vuplus_openembedded] / recipes / samba / samba.inc
1 SECTION = "console/network"
2 LICENSE = "GPL"
3 DEPENDS = "readline virtual/libiconv"
4
5 SRC_URI = "http://samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
6            file://volatiles.03_samba \
7            file://smb.conf \
8            file://init \
9            file://tdb.pc \
10            "
11
12 SRC_URI_append_opendreambox = " \
13         file://01samba-kill \
14         file://01samba-start"
15
16 SRC_URI_append_vuplus = " \
17         file://01samba-kill \
18         file://01samba-start"
19
20 S = "${WORKDIR}/samba-${PV}/source"
21
22 inherit autotools update-rc.d
23
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"
28
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}/.. \
35               --without-automount \
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'
45
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.*"
61
62 PROVIDES_append_opendreambox = " sambaserver libpopt libtalloc libtdb"
63 PROVIDES_append_vuplus = " sambaserver libpopt libtalloc libtdb"
64
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"
71
72 CONFFILES_sambaserver = "${sysconfdir}/samba/smb.conf"
73 CONFFILES_${PN}_opendreambox = ""
74 CONFFILES_${PN}_vuplus = ""
75
76 do_configure_prepend () {
77         ./script/mkversion.sh
78         if [ ! -e acinclude.m4 ]; then
79                 touch aclocal.m4        
80                 cat aclocal.m4 > acinclude.m4
81         fi
82 }
83
84 do_compile () {
85         oe_runmake proto_exists
86         base_do_compile
87 }
88
89 do_install_append() {
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}/
99
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
105         fi
106         
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
112 }
113
114 do_install_prepend_opendreambox() {
115         install -c -m 644 ${WORKDIR}/smb.conf ../examples/smb.conf.default
116 }
117
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
124 }
125
126 do_install_prepend_vuplus() {
127         install -c -m 644 ${WORKDIR}/smb.conf ../examples/smb.conf.default
128 }
129
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
136 }
137
138 do_stage() {
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}/
147 }