Kai Can you add the needed bits to commit msg and send a v4 please
On Sun, May 12, 2024 at 8:30 PM Kai Kang via lists.openembedded.org <kai.kang=eng.windriver....@lists.openembedded.org> wrote: > > On 5/12/24 21:59, Peter Kjellerstedt wrote: > > -----Original Message----- > From: kai.k...@windriver.com <kai.k...@windriver.com> > Sent: den 8 maj 2024 09:07 > To: Peter Kjellerstedt <peter.kjellerst...@axis.com> > Cc: openembedded-devel@lists.openembedded.org > Subject: [PATCH v3 1/1] apache2: fix multilib file conflicts > > From: Kai Kang <kai.k...@windriver.com> > > 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.k...@windriver.com> > --- > .../recipes-httpd/apache2/apache2_2.4.59.bb | 37 ++++++++++++------- > 1 file 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 b96e8b4e1..59db22310 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,9 @@ EXTRA_OECONF:class-native = "\ > " > > do_configure:prepend() { > - sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' > ${S}/config.layout > + sed -i -e 's#\(cgidir:\s*\).*#\1${libexecdir}/cgi-bin#' \ > > I do not know if this was intentional or not, but the above changes the > location of the CGI directory for all layouts, where it previously only > changed the path used by the Debian layout. > > It is not a problem for us as we do not use it anyway (we actually > remove it in our bbappend), but if it was intentional, it should be > mentioned in the commit message, and if it was not intentional, then > it should be reverted. > > It is indeed to change `the CGI directory` and it has been done a long time > ago for all layouts. > It is just update the sed pattern to make it more clear this time. > > + -e 's#\(installbuilddir:\s*\).*#\1${libexecdir}/${PN}/build#' \ > > This now works for us while using the RedHat layout. > > Thanks for your feedback. > > Regards, > Kai > > + ${S}/config.layout > } > > do_install:append:class-target() { > @@ -119,14 +121,15 @@ 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,${WORKDIR}/recipe-sysroot/,,g' \ > + -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() { > @@ -152,20 +157,22 @@ do_install:append:class-native() { > > SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess" > > +SYSROOT_DIRS += "${libexecdir}/${PN}/build" > + > apache_sysroot_preprocess() { > install -d ${SYSROOT_DESTDIR}${bindir_crossscripts} > install -m 755 ${D}${bindir}/apxs > ${SYSROOT_DESTDIR}${bindir_crossscripts} > install -d ${SYSROOT_DESTDIR}${sbindir} > 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!\(my $installbuilddir = \)"\(.*\)"!\1"${STAGING_DIR_HOST}\2"!' > ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs > + > + 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 +185,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 +209,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 > > //Peter > > > -- > Kai Kang > Wind River Linux > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#110333): https://lists.openembedded.org/g/openembedded-devel/message/110333 Mute This Topic: https://lists.openembedded.org/mt/105976652/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-