f33c2b6ffe8e46630fe3b52d116eefef848cdec6
[pti/rtp.git] / meta-starlingx / meta-stx-integ / recipes-support / openldap / openldap_%.bbappend
1 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3 SRCREV_FORMAT = "opendev"
4 SRCREV_opendev = "d778e862571957ece3c404c0c37d325769772fde"
5 SUBPATH0 = "openldap-config"
6 DSTSUFX0 = "stx-configfiles"
7
8 LICENSE_append = "& Apache-2.0"
9 LIC_FILES_CHKSUM += "\
10         file://stx-configfiles-LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
11         "
12
13 SRC_URI += " \
14         git://opendev.org/starlingx/config-files.git;protocol=https;destsuffix=${DSTSUFX0};branch="r/stx.3.0";subpath=${SUBPATH0};name=opendev \
15         file://rootdn-should-not-bypass-ppolicy.patch \
16         file://0021-openldap-and-stx-source-and-config-files.patch \
17         "
18 RRECOMMENDS_openldap += " \
19         openldap-backend-shell \
20         openldap-backend-passwd \
21         openldap-backend-null \
22         openldap-backend-monitor \
23         openldap-backend-meta \
24         openldap-backend-ldap \
25         openldap-backend-dnssrv \
26         openldap-staticdev \
27         openldap-locale \
28         openldap-overlay-proxycache \
29         openldap-slapd \
30         openldap-slurpd \
31         openldap-bin \
32         "
33
34 inherit pkgconfig useradd
35
36 USERADD_PACKAGES = "${PN}"
37 USERADD_PARAM_${PN} = "-r -g ldap -u 55 -d / -s /sbin/nologin -c 'OpenLDAP server' ldap"
38 GROUPADD_PARAM_${PN} = "-r -g 55 ldap"
39
40 inherit systemd
41 SYSTEMD_PACKAGES += "${PN}"
42 SYSTEMD_SERVICE_${PN}_append = "slapd.service"
43 SYSETMD_AUTO_ENABLE_${PN} = "enable"
44 # Needed for stx init.d/openldap
45 DISTRO_FEATURES_BACKFILL_CONSIDERED_remove = "sysvinit"
46
47 PACKAGECONFIG_CONFARGS_remove = "--with-tls=gnutls "
48 DEPENDS += " \
49         openssl \
50         glibc \
51         mariadb \
52         mariadb-native \
53         libtirpc \
54         "
55
56 RDEPENDS_${PN}_append = " bash"
57
58 # Do not remove libtool la files slapd.conf uses ppolicy.la 
59 REMOVE_LIBTOOL_LA = "0"
60
61
62 # Defaults:
63 #       --enable-bdb=no
64 #       --enable-hdb=no
65 #       --enable-bdb=no
66 #       --enable-monitor=mod 
67 ######
68 # Stx :
69 #       --enable-wrappers=yes
70 #       --enable-moznss-compatibility=yes
71
72 #################
73 # TODO:
74 #       mysql_config: native command missing
75
76 EXTRA_OECONF += " \
77                 --enable-syslog \
78                 --enable-proctitle \
79                 --enable-ipv6 \
80                 --enable-local \
81                 --enable-slapd \
82                 --enable-dynacl \
83                 --enable-aci \
84                 --enable-cleartext \
85                 --enable-crypt \
86                 --enable-lmpasswd \
87                 --enable-modules \
88                 --enable-rewrite \
89                 --enable-rlookups \
90                 --disable-slp \
91                 --enable-wrappers=no \
92                 --enable-backends=mod \
93                 --enable-bdb=yes \
94                 --enable-hdb=yes \
95                 --enable-mdb=yes \
96                 --enable-monitor=yes \
97                 --disable-ndb \
98                 --enable-overlays=mod \
99                 --disable-static \
100                 --enable-shared \
101                 --with-cyrus-sasl \
102                 --without-fetch \
103                 --with-tls=openssl \
104                 "
105 #       --enable-moznss-compatibility=no 
106 # NEW:
107 # --enable-lmpasswd 
108 # --enable-slapi
109 # --enable-wrappers
110 # --enable-moznss-compatibility=yes
111
112 do_unpack_append() {
113     bb.build.exec_func('do_copy_config_files', d)
114 }
115
116 do_copy_config_files () {
117     cp -pf ${WORKDIR}/${DSTSUFX0}/files/LICENSE ${S}/stx-configfiles-LICENSE
118 }
119
120 do_configure_append () {
121    cd ${S}
122    ln -f -s ${S}/contrib/slapd-modules/smbk5pwd/smbk5pwd.c servers/slapd/overlays
123    ln -f -s ${S}/contrib/slapd-modules/allop/allop.c servers/slapd/overlays
124    ln -f -s ${S}/contrib/slapd-modules/passwd/sha2/sha2.c servers/slapd/overlays
125    ln -f -s ${S}/contrib/slapd-modules/passwd/sha2/sha2.h servers/slapd/overlays
126    ln -f -s ${S}/contrib/slapd-modules/passwd/sha2/slapd-sha2.c servers/slapd/overlays
127 }
128
129
130 do_install_append () {
131         
132         # For this we need to build ltb-project-openldap
133         #install -m 755 check_password.so.%{check_password_version} %{buildroot}%{_libdir}/openldap/
134
135         cd ${S}/stx-sources
136         install -m 0755 -d ${D}/var/run/openldap
137         install -m 0755 -d ${D}/${sysconfdir}/tmpfiles.d
138         install -m 0755 ${S}/stx-sources/slapd.tmpfiles ${D}/${sysconfdir}/tmpfiles.d/slapd.conf 
139         install -m 0755 ${S}/stx-sources/openldap.tmpfiles ${D}/${sysconfdir}/tmpfiles.d/openldap.conf 
140         install -m 0755 ${S}/stx-sources/ldap.conf ${D}/${sysconfdir}/tmpfiles.d/ldap.conf 
141
142         # The database directory MUST exist prior to running slapd AND
143         # should only be accessible by the slapd and slap tools.
144         # Mode 700 recommended.
145         echo "d /var/lib/openldap-data 0700 ldap ldap -" >> ${D}/${sysconfdir}/tmpfiles.d/slapd.conf
146
147         install -m 0644 libexec-functions ${D}/${libexecdir}/openldap/functions
148         install -m 0755 libexec-convert-config.sh ${D}/${libexecdir}/openldap/convert-config.sh
149         install -m 0755 libexec-check-config.sh ${D}/${libexecdir}/openldap/check-config.sh
150         install -m 0755 libexec-upgrade-db.sh ${D}/${libexecdir}/openldap/upgrade-db.sh
151
152         install -m 0755 libexec-create-certdb.sh ${D}/${libexecdir}/openldap/create-certdb.sh
153         install -m 0755 libexec-generate-server-cert.sh ${D}/${libexecdir}/openldap/generate-server-cert.sh
154         install -m 0755 libexec-update-ppolicy-schema.sh ${D}/${libexecdir}/openldap/update-ppolicy-schema.sh
155
156         install -m 0755 -d ${D}/${sysconfdir}/sysconfig
157         install -m 0644 slapd.sysconfig ${D}/${sysconfdir}/sysconfig/slapd
158         install -m 0755 -d ${D}/${datadir}/openldap-servers
159         install -m 0644 slapd.ldif ${D}/${datadir}/openldap-servers/slapd.ldif
160         install -m 0750 -d ${D}/${sysconfdir}/openldap/slapd.d
161         rm -rf ${D}/var/run
162
163         sed -i -e 's:\(/sbin/runuser\):/usr\1:g' ${D}/usr/libexec/openldap/functions 
164
165         install -m 755 ${WORKDIR}/${DSTSUFX0}/files/initscript ${D}/${sysconfdir}/init.d/openldap
166         install -m 600 ${WORKDIR}/${DSTSUFX0}/files/slapd.conf ${D}/${sysconfdir}/openldap/slapd.conf
167
168         install -m 600 ${WORKDIR}/${DSTSUFX0}/files/initial_config.ldif ${D}/${sysconfdir}/openldap/initial_config.ldif
169
170         # install -D -m 644 ${WORKDIR}/${DSTSUFX0}/files/slapd.service ${D}/${sysconfdir}/systemd/system/slapd.service
171         install -D -m 644 ${WORKDIR}/${DSTSUFX0}/files/slapd.service ${D}/${systemd_system_unitdir}/slapd.service
172         sed -i -e 's|/var/run|/run|' ${D}/${systemd_system_unitdir}/slapd.service
173
174         install -m 644 ${WORKDIR}/${DSTSUFX0}/files/slapd.sysconfig ${D}/${sysconfdir}/sysconfig/slapd
175
176 }
177
178
179 FILES_${PN}_append = " \
180         ${datadir}/openldap-servers/ \
181         ${libexecdir}/openldap/ \
182         ${sysconfdir}/sysconfig \
183         ${sysconfdir}/tmpfiles.d \
184         ${systemd_system_unitdir}/slapd.service  \
185         ${sysconfdir}/openldap/initial_config.ldif \
186         "
187
188 # *.la are openldap modules. 
189 FILES_${PN}-dev = " \
190         ${includedir} \
191         ${FILES_SOLIBSDEV} \
192         ${libdir}/*.la \
193         ${libexecdir}/openldap/*${SOLIBSDEV} \
194         "
195