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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to