summaryrefslogtreecommitdiffstats
path: root/meta-webserver
diff options
context:
space:
mode:
authorKai Kang <kai.kang@windriver.com>2024-05-22 16:14:29 +0800
committerKhem Raj <raj.khem@gmail.com>2024-05-23 16:17:11 -0700
commite77507a898cc6f9f575cb4a9fcc604b8fb2d7860 (patch)
treeb6f5ab02899848c94d584917e4cb13a80e0aa990 /meta-webserver
parent907b9c0ae697ff169470157c0dc5e2ae11e5452d (diff)
downloadmeta-openembedded-e77507a898cc6f9f575cb4a9fcc604b8fb2d7860.tar.gz
apache2: fix multilib file conflicts
There are file conflicts of apache2 when multilib enabled: Error: Transaction test error: file /usr/share/apache2/build/config.nice conflicts between attempted installs of apache2-dev-2.4.58-r0.cortexa57 and lib32-apache2-dev-2.4.58-r0.armv7vet2hf_vfp file /usr/share/apache2/build/config_vars.mk conflicts between attempted installs of apache2-dev-2.4.58-r0.cortexa57 and lib32-apache2-dev-2.4.58-r0.armv7vet2hf_vfp Install the 'build' directory to ${libexecdir} by setting 'installbuilddir' to fix the conflicts. ${libexecdir} is not populated to sysroot by default, but command apxs requires these files, then add the dir to SYSROOT_DIRS to populate them. And inherit bbclasses multilib_script and multilib_header to fix follow-up conflicts: file /usr/bin/apxs conflicts between attempted installs of apache2-dev-2.4.58-r0.cortexa57 and lib32-apache2-dev-2.4.58-r0.armv7vet2hf_vfp file /usr/include/apache2/ap_config_layout.h conflicts between attempted installs of apache2-dev-2.4.58-r0.cortexa57 and lib32-apache2-dev-2.4.58-r0.armv7vet2hf_vfp Since multilib_script inherits update-alternatives, remove it from inherit line for beautification. Fix buildpaths warning as well: WARNING: lib32-apache2-2.4.58-r0 do_package_qa: QA Issue: File /usr/share/apache2/build/config.nice in package lib32-apache2-dev contains reference to TMPDIR [buildpaths] Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-webserver')
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb37
1 files changed, 23 insertions, 14 deletions
diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb
index 14891ea89..1632c6ccb 100644
--- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb
+++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.59.bb
@@ -31,7 +31,7 @@ SRC_URI[sha256sum] = "ec51501ec480284ff52f637258135d333230a7d229c3afa6f6c2f9040e
31 31
32S = "${WORKDIR}/httpd-${PV}" 32S = "${WORKDIR}/httpd-${PV}"
33 33
34inherit autotools update-rc.d pkgconfig systemd update-alternatives 34inherit autotools update-rc.d pkgconfig systemd multilib_script multilib_header
35 35
36DEPENDS = "openssl expat pcre apr apr-util apache2-native " 36DEPENDS = "openssl expat pcre apr apr-util apache2-native "
37 37
@@ -80,7 +80,9 @@ EXTRA_OECONF:class-native = "\
80 " 80 "
81 81
82do_configure:prepend() { 82do_configure:prepend() {
83 sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' ${S}/config.layout 83 sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' \
84 -e 's#\(installbuilddir:\s*\).*#\1${libexecdir}/${PN}/build#' \
85 ${S}/config.layout
84} 86}
85 87
86do_install:append:class-target() { 88do_install:append:class-target() {
@@ -119,14 +121,15 @@ do_install:append:class-target() {
119 -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-ffile-prefix-map[^ ]*,,g' \ 121 -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-ffile-prefix-map[^ ]*,,g' \
120 -e 's,${HOSTTOOLS_DIR}/,,g' \ 122 -e 's,${HOSTTOOLS_DIR}/,,g' \
121 -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ 123 -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
122 -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk 124 -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${libexecdir}/${PN}/build/config_vars.mk
123 125
124 sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ 126 sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
125 -e 's,${DEBUG_PREFIX_MAP},,g' \ 127 -e 's,${DEBUG_PREFIX_MAP},,g' \
126 -e 's,${RECIPE_SYSROOT},,g' \ 128 -e 's,${RECIPE_SYSROOT},,g' \
127 -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \ 129 -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \
128 -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ 130 -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
129 -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice 131 -e 's,${WORKDIR}/recipe-sysroot/,,g' \
132 -e 's,".*/configure","configure",g' ${D}${libexecdir}/${PN}/build/config.nice
130 133
131 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 134 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
132 install -d ${D}${sysconfdir}/tmpfiles.d/ 135 install -d ${D}${sysconfdir}/tmpfiles.d/
@@ -143,6 +146,8 @@ do_install:append:class-target() {
143 146
144 rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars* 147 rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars*
145 chown -R root:root ${D} 148 chown -R root:root ${D}
149
150 oe_multilib_header apache2/ap_config_layout.h
146} 151}
147 152
148do_install:append:class-native() { 153do_install:append:class-native() {
@@ -152,20 +157,22 @@ do_install:append:class-native() {
152 157
153SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess" 158SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess"
154 159
160SYSROOT_DIRS += "${libexecdir}/${PN}/build"
161
155apache_sysroot_preprocess() { 162apache_sysroot_preprocess() {
156 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts} 163 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
157 install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts} 164 install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}
158 install -d ${SYSROOT_DESTDIR}${sbindir} 165 install -d ${SYSROOT_DESTDIR}${sbindir}
159 install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir} 166 install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}
160 sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs 167 sed -i 's!\(my $installbuilddir = \)"\(.*\)"!\1"${STAGING_DIR_HOST}\2"!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
161 168
162 sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk 169 sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
163 sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk 170 sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
164 sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk 171 sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
165 sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk 172 sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
166 sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk 173 sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
167 sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk 174 sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
168 sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk 175 sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
169} 176}
170 177
171# Implications - used by update-rc.d scripts 178# Implications - used by update-rc.d scripts
@@ -178,6 +185,8 @@ SYSTEMD_AUTO_ENABLE:${PN} = "enable"
178ALTERNATIVE:${PN}-doc = "htpasswd.1" 185ALTERNATIVE:${PN}-doc = "htpasswd.1"
179ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1" 186ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
180 187
188MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apxs"
189
181PACKAGES = "${PN}-utils ${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}" 190PACKAGES = "${PN}-utils ${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
182 191
183CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \ 192CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \
@@ -200,7 +209,7 @@ FILES:${PN}-utils = "${bindir}/ab \
200# We override here rather than append so that .so links are 209# We override here rather than append so that .so links are
201# included in the runtime package rather than here (-dev) 210# included in the runtime package rather than here (-dev)
202# and to get build, icons, error into the -dev package 211# and to get build, icons, error into the -dev package
203FILES:${PN}-dev = "${datadir}/${BPN}/build \ 212FILES:${PN}-dev = "${libexecdir}/${PN}/build \
204 ${datadir}/${BPN}/icons \ 213 ${datadir}/${BPN}/icons \
205 ${datadir}/${BPN}/error \ 214 ${datadir}/${BPN}/error \
206 ${includedir}/${BPN} \ 215 ${includedir}/${BPN} \