1*4882a593SmuzhiyunSUMMARY = "Generic client/server library for SASL authentication"
2*4882a593SmuzhiyunSECTION = "libs"
3*4882a593SmuzhiyunHOMEPAGE = "http://asg.web.cmu.edu/sasl/"
4*4882a593SmuzhiyunDEPENDS = "openssl db groff-native"
5*4882a593SmuzhiyunLICENSE = "BSD-4-Clause"
6*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396"
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunSRCREV = "7a6b45b177070198fed0682bea5fa87c18abb084"
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunSRC_URI = "git://github.com/cyrusimap/cyrus-sasl;protocol=https;branch=cyrus-sasl-2.1 \
11*4882a593Smuzhiyun           file://avoid-to-call-AC_TRY_RUN.patch \
12*4882a593Smuzhiyun           file://debian_patches_0014_avoid_pic_overwrite.diff \
13*4882a593Smuzhiyun           file://0001-sample-Rename-dprintf-to-cyrus_dprintf.patch \
14*4882a593Smuzhiyun           file://saslauthd.service \
15*4882a593Smuzhiyun           file://saslauthd.conf \
16*4882a593Smuzhiyun           file://CVE-2019-19906.patch \
17*4882a593Smuzhiyun	   file://CVE-2022-24407.patch \
18*4882a593Smuzhiyun           "
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunUPSTREAM_CHECK_URI = "https://github.com/cyrusimap/cyrus-sasl/archives"
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunS = "${WORKDIR}/git"
23*4882a593Smuzhiyun
24*4882a593Smuzhiyuninherit autotools pkgconfig useradd systemd
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunEXTRA_OECONF += "--with-dblib=berkeley \
27*4882a593Smuzhiyun                 --with-plugindir='${libdir}/sasl2' \
28*4882a593Smuzhiyun                 andrew_cv_runpath_switch=none"
29*4882a593Smuzhiyun
30*4882a593SmuzhiyunPACKAGECONFIG ??= "\
31*4882a593Smuzhiyun    ${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)} \
32*4882a593Smuzhiyun"
33*4882a593SmuzhiyunPACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5,"
34*4882a593SmuzhiyunPACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
35*4882a593SmuzhiyunPACKAGECONFIG[opie] = "--with-opie,--without-opie,opie,"
36*4882a593SmuzhiyunPACKAGECONFIG[des] = "--with-des,--without-des,,"
37*4882a593SmuzhiyunPACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap,"
38*4882a593SmuzhiyunPACKAGECONFIG[ntlm] = "--enable-ntlm=yes,--enable-ntlm=no,,"
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunCFLAGS += "-fPIC"
41*4882a593Smuzhiyun
42*4882a593Smuzhiyundo_configure:prepend () {
43*4882a593Smuzhiyun    # make it be able to work with db 5.0 version
44*4882a593Smuzhiyun    local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c"
45*4882a593Smuzhiyun    for sed_file in $sed_files; do
46*4882a593Smuzhiyun        sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' ${S}/$sed_file
47*4882a593Smuzhiyun    done
48*4882a593Smuzhiyun}
49*4882a593Smuzhiyun
50*4882a593Smuzhiyundo_compile:prepend () {
51*4882a593Smuzhiyun    cd include
52*4882a593Smuzhiyun    ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} ${S}/include/makemd5.c -o makemd5
53*4882a593Smuzhiyun    touch makemd5.o makemd5.lo makemd5
54*4882a593Smuzhiyun    cd ..
55*4882a593Smuzhiyun}
56*4882a593Smuzhiyun
57*4882a593Smuzhiyundo_install:append() {
58*4882a593Smuzhiyun    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
59*4882a593Smuzhiyun        install -d ${D}${systemd_unitdir}/system
60*4882a593Smuzhiyun        install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun        sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
63*4882a593Smuzhiyun        sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
64*4882a593Smuzhiyun        sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun        install -d ${D}${sysconfdir}/tmpfiles.d
67*4882a593Smuzhiyun        echo "d /run/saslauthd/ - - - -" > ${D}${sysconfdir}/tmpfiles.d/saslauthd.conf
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun        install -d ${D}${sysconfdir}/default/
70*4882a593Smuzhiyun        install -m 0644 ${WORKDIR}/saslauthd.conf ${D}${sysconfdir}/default/saslauthd
71*4882a593Smuzhiyun        sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/default/saslauthd
72*4882a593Smuzhiyun    fi
73*4882a593Smuzhiyun}
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunUSERADD_PACKAGES = "${PN}-bin"
76*4882a593SmuzhiyunUSERADD_PARAM:${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus"
77*4882a593Smuzhiyun
78*4882a593SmuzhiyunSYSTEMD_PACKAGES = "${PN}-bin"
79*4882a593SmuzhiyunSYSTEMD_SERVICE:${PN}-bin = "saslauthd.service"
80*4882a593SmuzhiyunSYSTEMD_AUTO_ENABLE = "disable"
81*4882a593Smuzhiyun
82*4882a593SmuzhiyunSRC_URI[md5sum] = "a7f4e5e559a0e37b3ffc438c9456e425"
83*4882a593SmuzhiyunSRC_URI[sha256sum] = "8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3"
84*4882a593Smuzhiyun
85*4882a593SmuzhiyunPACKAGES =+ "${PN}-bin"
86*4882a593Smuzhiyun
87*4882a593SmuzhiyunFILES:${PN}           += "${libdir}/sasl2/*.so*"
88*4882a593SmuzhiyunFILES:${PN}-bin       += "${bindir} \
89*4882a593Smuzhiyun                          ${sysconfdir}/default/saslauthd \
90*4882a593Smuzhiyun                          ${systemd_unitdir}/system/saslauthd.service \
91*4882a593Smuzhiyun                          ${sysconfdir}/tmpfiles.d/saslauthd.conf"
92*4882a593SmuzhiyunFILES:${PN}-dev       += "${libdir}/sasl2/*.la"
93*4882a593SmuzhiyunFILES:${PN}-dbg       += "${libdir}/sasl2/.debug"
94*4882a593SmuzhiyunFILES:${PN}-staticdev += "${libdir}/sasl2/*.a"
95*4882a593Smuzhiyun
96*4882a593SmuzhiyunINSANE_SKIP:${PN} += "dev-so"
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun# CVE-2020-8032 affects only openSUSE
99*4882a593SmuzhiyunCVE_CHECK_IGNORE += "CVE-2020-8032"
100