Patchwork Apache2: Add libselinux dependency and Disable parallel install

login
register
mail settings
Submitter rongqing.li@windriver.com
Date Nov. 7, 2012, 5:57 a.m.
Message ID <1352267865-3534-1-git-send-email-rongqing.li@windriver.com>
Download mbox | patch
Permalink /patch/38813/
State New, archived
Headers show

Comments

rongqing.li@windriver.com - Nov. 7, 2012, 5:57 a.m.
From: Roy.Li <rongqing.li@windriver.com>

1. Add conditional dependency on libselinux to apache2.

2. Disable parallel make install
apache2 supports parallel make install, before installation,
it will firstly call build/mkdir.sh to create needed directories.
build/mkdir.sh first checks if a directory exists or not, if not,
it will create this directory, when mkdir.sh is called by many
instances parallel, it will introduce race, namely the result of
checking says one directory does not exist, but when it tries to
mkdir, this directory has been created by other instance.

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
---
 .../recipes-httpd/apache2/apache2_2.4.2.bb         |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
Chris Larson - Nov. 7, 2012, 4:46 p.m.
On Tue, Nov 6, 2012 at 10:57 PM, <rongqing.li@windriver.com> wrote:

> 2. Disable parallel make install
> apache2 supports parallel make install, before installation,
> it will firstly call build/mkdir.sh to create needed directories.
> build/mkdir.sh first checks if a directory exists or not, if not,
> it will create this directory, when mkdir.sh is called by many
> instances parallel, it will introduce race, namely the result of
> checking says one directory does not exist, but when it tries to
> mkdir, this directory has been created by other instance.
>

How much work would it be to change it to run 'mkdir -p' rather than
build/mkdir.sh, e.g. via a variable in EXTRA_OEMAKE?
rongqing.li@windriver.com - Nov. 8, 2012, 12:47 a.m.
On 2012?11?08? 00:46, Chris Larson wrote:
> On Tue, Nov 6, 2012 at 10:57 PM, <rongqing.li@windriver.com> wrote:
>
>> 2. Disable parallel make install
>> apache2 supports parallel make install, before installation,
>> it will firstly call build/mkdir.sh to create needed directories.
>> build/mkdir.sh first checks if a directory exists or not, if not,
>> it will create this directory, when mkdir.sh is called by many
>> instances parallel, it will introduce race, namely the result of
>> checking says one directory does not exist, but when it tries to
>> mkdir, this directory has been created by other instance.
>>
>
> How much work would it be to change it to run 'mkdir -p' rather than
> build/mkdir.sh, e.g. via a variable in EXTRA_OEMAKE?
>

"mkdir -p", plus ignoring return result of mkdir should be worked, but
it can not be passed in by variable in EXTRA_OEMAKE, maybe need a patch.

Since this bug is hard to reproduce, so I simply disable the parallel
install.

Patch

diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.2.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.2.bb
index af7840d..c484a19 100644
--- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.2.bb
+++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.2.bb
@@ -52,6 +52,12 @@  EXTRA_OECONF = "--enable-ssl \
 		--enable-mpms-shared \
 		ac_cv_have_threadsafe_pollset=no"
 
+PARALLEL_MAKEINST = ""
+
+PACKAGECONFIG = "${@base_contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}"
+PACKAGECONFIG[selinux] = "ac_cv_lib_selinux_is_selinux_enabled=yes, \
+        ac_cv_lib_selinux_is_selinux_enabled=no, libselinux,"
+
 do_configure_prepend() {
 	# FIXME: this hack is required to work around an issue with apr/apr-util
 	# Can be removed when fixed in OE-Core (also revert --with-* options above)