From: Kai Kang <[email protected]>
There are files confliction 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
Set 'installbuilddir' to install dir 'build' to ${libexecdir} to fix the
confliction. And inherit bbclasses multilib_script and multilib_header
to fix follow up conflictions:
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.
Signed-off-by: Kai Kang <[email protected]>
---
.../recipes-httpd/apache2/apache2_2.4.59.bb | 31 ++++++++++++-------
1 file changed, 19 insertions(+), 12 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 b96e8b4e1..1827d652f 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
S = "${WORKDIR}/httpd-${PV}"
-inherit autotools update-rc.d pkgconfig systemd update-alternatives
+inherit autotools update-rc.d pkgconfig systemd multilib_script multilib_header
DEPENDS = "openssl expat pcre apr apr-util apache2-native "
@@ -80,7 +80,10 @@ EXTRA_OECONF:class-native = "\
"
do_configure:prepend() {
- sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g'
${S}/config.layout
+ # only modify layout Debian which is adopted
+ sed -i -e '/Layout Debian/,/\Layout/
s#\(cgidir:\s*\).*#\1${libexecdir}/cgi-bin#g' \
+ -e '/Layout Debian/,/\Layout/
s#\(installbuilddir:\s*\).*#\1${libexecdir}/${PN}/build#g' \
+ ${S}/config.layout
}
do_install:append:class-target() {
@@ -119,14 +122,14 @@ do_install:append:class-target() {
-e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g;
s,-ffile-prefix-map[^ ]*,,g' \
-e 's,${HOSTTOOLS_DIR}/,,g' \
-e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
- -e 's,APU_CONFIG = .*,APU_CONFIG = ,g'
${D}${datadir}/apache2/build/config_vars.mk
+ -e 's,APU_CONFIG = .*,APU_CONFIG = ,g'
${D}${libexecdir}/${PN}/build/config_vars.mk
sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
-e 's,${DEBUG_PREFIX_MAP},,g' \
-e 's,${RECIPE_SYSROOT},,g' \
-e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g;
s,-fmacro-prefix-map[^ ]*,,g' \
-e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
- -e 's,".*/configure","configure",g'
${D}${datadir}/apache2/build/config.nice
+ -e 's,".*/configure","configure",g'
${D}${libexecdir}/${PN}/build/config.nice
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',
d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d/
@@ -143,6 +146,8 @@ do_install:append:class-target() {
rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars*
chown -R root:root ${D}
+
+ oe_multilib_header apache2/ap_config_layout.h
}
do_install:append:class-native() {
@@ -159,13 +164,13 @@ apache_sysroot_preprocess() {
install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}
sed -i 's!my $installbuilddir = .*!my $installbuilddir =
"${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!'
${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
- sed -i 's!^APR_CONFIG = .*!APR_CONFIG =
${STAGING_BINDIR_CROSS}/apr-1-config!'
${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^APU_CONFIG = .*!APU_CONFIG =
${STAGING_BINDIR_CROSS}/apu-1-config!'
${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!'
${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!'
${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!'
${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I.
-I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!'
${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^APR_CONFIG = .*!APR_CONFIG =
${STAGING_BINDIR_CROSS}/apr-1-config!'
${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
+ sed -i 's!^APU_CONFIG = .*!APU_CONFIG =
${STAGING_BINDIR_CROSS}/apu-1-config!'
${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
+ sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!'
${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
+ sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!'
${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
+ sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!'
${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
+ sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I.
-I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
+ sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!'
${SYSROOT_DESTDIR}${libexecdir}/${PN}/build/config_vars.mk
}
# Implications - used by update-rc.d scripts
@@ -178,6 +183,8 @@ SYSTEMD_AUTO_ENABLE:${PN} = "enable"
ALTERNATIVE:${PN}-doc = "htpasswd.1"
ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apxs"
+
PACKAGES = "${PN}-utils ${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \
@@ -200,7 +207,7 @@ FILES:${PN}-utils = "${bindir}/ab \
# We override here rather than append so that .so links are
# included in the runtime package rather than here (-dev)
# and to get build, icons, error into the -dev package
-FILES:${PN}-dev = "${datadir}/${BPN}/build \
+FILES:${PN}-dev = "${libexecdir}/${PN}/build \
${datadir}/${BPN}/icons \
${datadir}/${BPN}/error \
${includedir}/${BPN} \
--
2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#110106):
https://lists.openembedded.org/g/openembedded-devel/message/110106
Mute This Topic: https://lists.openembedded.org/mt/105671896/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-