[oe] [PATCH 1/1] snort: fix m4 causes out of memory during configure [ LIN8-299 ]

Zhiquan Li zhiquan.li at windriver.com
Thu Oct 29 01:41:52 UTC 2015



On 2015.10.27 18:49, Ioan-Adrian Ratiu wrote:
> On Tue, 27 Oct 2015 09:54:07 +0000
> "Li, Zhiquan" <Zhiquan.Li at windriver.com> wrote:
>
>> I need to evaluate the possibility to upgrade the snort recipe to >2.9.7, because upgrade to > 2.9.7, some patches will not work anymore and the daq recipe also need to be upgraded to 2.0.4 at least. The side-effect is uncertainty.
>>
> What exactly do you mean by "patches will not work anymore"?.
> Do you mean thy do not apply on >2.9.7? AFAIK two of those
> patches are not needed in 2.9.7.6 (fixed upstream), the others
> just need refreshing.
I've tried to upgrade snort from 2.9.6.0 to 2.9.7.5, as its dependency I 
also upgrade daq recipe from 2.0.2 to 2.0.6, and accordingly update the 
patches:
* add 2 new patches for snort to solve the cross compile issues.
* discard a snort patch since it is not needed.
* refresh the patch for daq new version.
Please see the attachment for the changes.

Unfortunately , it was failed when packaging debug files, the rpm 
debugedit complain: canonicalization unexpectedly shrank by one character.
At a glance it is a bug of debugedit, please see: 
http://sourceforge.net/p/snort/mailman/message/34130268/
Redhat hasn't resolved this bug: 
https://bugzilla.redhat.com/show_bug.cgi?id=304121

So, the options are:
* Fix rpm debugedit bug and update it to OE
* Take the workaround that skip the snort debug package
* Backport the fix from snort upstream

>   ________________________________________
>> From: Ioan-Adrian Ratiu [adrian.ratiu at ni.com]
>> Sent: Monday, October 26, 2015 6:49 PM
>> To: Li, Zhiquan
>> Cc: openembedded-devel at lists.openembedded.org
>> Subject: Re: [oe] [PATCH 1/1] snort: fix m4 causes out of memory during configure [ LIN8-299 ]
>>
>> On Fri, 23 Oct 2015 18:07:35 +0800
>> Zhiquan Li <zhiquan.li at windriver.com> wrote:
>>
>>> Issue: LIN8-299
>>>
>>> There is an incorrect m4_define() in configure.in which will result in an
>>> infinite recursion, and it doesn't make sense, since snort 2.9.7 it has been
>>> commented out. We follow this solution to fix it.
>>>
>>> Upstream-Status: Backport
>>>
>>> (LOCAL REV: NOT UPSTREAM) -- Sent to oe-devel on 20151023
>>>
>>> Signed-off-by: Zhiquan Li <zhiquan.li at windriver.com>
>>> ---
>>>   .../snort/snort/m4-oom-during-configure.patch       | 21 +++++++++++++++++++++
>>>   .../recipes-connectivity/snort/snort_2.9.6.0.bb     | 16 +++-------------
>>>   2 files changed, 24 insertions(+), 13 deletions(-)
>>>   create mode 100644 meta-networking/recipes-connectivity/snort/snort/m4-oom-during-configure.patch
>>>
>>> diff --git a/meta-networking/recipes-connectivity/snort/snort/m4-oom-during-configure.patch b/meta-networking/recipes-connectivity/snort/snort/m4-oom-during-configure.patch
>>> new file mode 100644
>>> index 0000000..2250611
>>> --- /dev/null
>>> +++ b/meta-networking/recipes-connectivity/snort/snort/m4-oom-during-configure.patch
>>> @@ -0,0 +1,21 @@
>>> +Upstream-Status: Backport
>>> +
>>> +There is an incorrect m4_define() in configure.in which will result in an
>>> +infinite recursion, and it doesn't make sense, since snort 2.9.7 it has been
>>> +commented out. We follow this solution to fix it.
>>> +
>> Doesn't it make more sense to upgrade the snort recipe to >2.9.7 than
>> backporting this fix?
>>
>>> +Signed-off-by: Zhiquan Li <zhiquan.li at windriver.com>
>>> +
>>> +--- a/configure.in   2015-10-22 13:58:50.743367251 +0800
>>> ++++ b/configure.in   2015-10-22 13:59:13.855366117 +0800
>>> +@@ -1100,8 +1100,8 @@
>>> + # Define PKG_CHECK_MODULES if it doesnt already exist.
>>> + #file_ This prevents './configure' from erroring on machines that dont have
>>> + # 'pkgconfig' installed.
>>> +-m4_ifdef([PKG_CHECK_MODULES],[], [m4_define([PKG_CHECK_MODULES],
>>> +-     [echo "PKG_CHECK_MODULES not defined"])])
>>> ++#m4_ifdef([PKG_CHECK_MODULES],[], [m4_define([PKG_CHECK_MODULES],
>>> ++#     [echo "PKG_CHECK_MODULES not defined"])])
>>> +
>>> + if test "x$enable_rzb_saac" = "xyes"; then
>>> +     AC_CHECK_PROG(PKG_CONFIG,pkg-config,yes)
>>> diff --git a/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb b/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb
>>> index 66653c6..65dc524 100644
>>> --- a/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb
>>> +++ b/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb
>>> @@ -6,19 +6,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
>>>
>>>   DEPENDS = "libpcap libpcre daq libdnet util-linux"
>>>
>>> -# Blacklist:
>>> -#
>>> -# http://errors.yoctoproject.org/Errors/Details/8936/
>>> -#
>>> -# snort failure is again very nasty, because it's m4 which eats all
>>> -# available memory and swap before it's killed by OOM killer.
>>> -#
>>> -# Luckily it always picked m4
>>> -#
>>> -# [Wed Feb 18 19:00:51 2015] Out of memory: Kill process 28522 (m4) score 961 or sacrifice child
>>> -# [Wed Feb 18 19:10:51 2015] Out of memory: Kill process 45228 (m4) score 958 or sacrifice child
>>> -# ...
>>> -PNBLACKLIST[snort] ?= "BROKEN: autotools processing causes OOM condition on configure"
>>>
>>>   SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \
>>>               file://snort.init \
>>> @@ -26,6 +13,7 @@ SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \
>>>               file://disable-dap-address-space-id.patch \
>>>               file://0001-libpcap-search-sysroot-for-headers.patch \
>>>               file://not-hardcoded-libdir.patch \
>>> +            file://m4-oom-during-configure.patch \
>>>   "
>>>
>>>   SRC_URI[tarball.md5sum] = "18111f6de3989ca89add36077a7c2659"
>>> @@ -45,6 +33,8 @@ EXTRA_OECONF = " \
>>>        --disable-static-daq \
>>>        --with-dnet-includes=${STAGING_INCDIR} \
>>>        --with-dnet-libraries=${STAGING_LIBDIR} \
>>> +     --with-libpcre-includes=${STAGING_INCDIR} \
>>> +     --with-libpcre-libraries=${STAGING_INCDIR} \
>>>        "
>>>
>>>   # if you want to disable it, you need to patch configure.in first
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-snort-2.9.6.0-2.9.7.5.patch
Type: text/x-patch
Size: 15817 bytes
Desc: not available
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20151029/1d9b4fc2/attachment-0002.bin>


More information about the Openembedded-devel mailing list