* [PATCH] 98syslog: try to dynamically check for rsyslog moddir
@ 2010-09-08 14:52 Andrey Borzenkov
2010-09-08 16:48 ` Tomasz Paweł Gajc
0 siblings, 1 reply; 10+ messages in thread
From: Andrey Borzenkov @ 2010-09-08 14:52 UTC (permalink / raw)
To: initramfs-u79uwXL29TY76Z2rM5mHXA
Cc: rsyslog-4gKAAF5ltrKNkp5+ER1W/AC/G2K4zDHf,
tpg-4qZELD6Fgxhg9hUCZPvPmw
Thomas pointed out that default module path may not be correct
(Mandriva installs modules under architecture dependent path).
Unfortunately rsyslog does not seem to offer any way to query for
default configuration values. Here is rather hack - try to load
non-existing module and fetch path from error message.
Example of error message from version 4.6.4:
rsyslogd: could not load module '/lib64/rsyslog/_No_sUcH_MOduLe.so', dlopen: /lib64/rsyslog/_No_sUcH_MOduLe.so: cannot open shared object file: No such file or directory
Signed-off-by: Andrey Borzenkov <arvidjaar-JGs/UdohzUI@public.gmane.org>
---
modules.d/98syslog/install | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/modules.d/98syslog/install b/modules.d/98syslog/install
index 1fd1b6f..e3d02bf 100755
--- a/modules.d/98syslog/install
+++ b/modules.d/98syslog/install
@@ -1,6 +1,21 @@
#!/bin/sh
if type -P rsyslogd >/dev/null; then
- installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so /lib/rsyslog/imuxsock.so"
+ # module path can be changed during build and currently rsyslog
+ # does not provide any means to query for it. Use hack - try to
+ # load non-existent module and look at error message
+ R_CONF=/tmp/dracut.rsyslog.conf.$$
+ R_ERR=/tmp/dracut.rsyslog.err.$$
+ R_MODDIR=
+ echo '$ModLoad _No_sUcH_MOduLe' > $R_CONF
+ if [ -s $R_CONF ]; then
+ rsyslogd -N 1 -f $R_CONF 2> $R_ERR > /dev/null
+ R_MODDIR=$(grep ' could not load module .*_No_sUcH_MOduLe' $R_ERR)
+ R_MODDIR=${R_MODDIR#*could not load module \'}
+ R_MODDIR=${R_MODDIR%\', *}
+ R_MODDIR=${R_MODDIR%/*}
+ fi
+ [ -n "$R_MODDIR" ] || R_MODDIR=/lib/rsyslog
+ installs="rsyslogd $R_MODDIR/lmnet.so $R_MODDIR/imklog.so $R_MODDIR/imuxsock.so"
elif type -P syslogd >/dev/null; then
installs="syslogd"
elif type -P syslog-ng >/dev/null; then
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] 98syslog: try to dynamically check for rsyslog moddir
2010-09-08 14:52 Andrey Borzenkov
@ 2010-09-08 16:48 ` Tomasz Paweł Gajc
[not found] ` <20100908184826.7968b1e9-5tc4TXWwyLM@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Tomasz Paweł Gajc @ 2010-09-08 16:48 UTC (permalink / raw)
To: Andrey Borzenkov
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA,
rsyslog-4gKAAF5ltrKNkp5+ER1W/AC/G2K4zDHf,
tpg-4qZELD6Fgxhg9hUCZPvPmw
Dnia 2010-09-08, o godz. 18:52:13
Andrey Borzenkov <arvidjaar-JGs/UdohzUI@public.gmane.org> napisa³(a):
> Thomas pointed out that default module path may not be correct
> (Mandriva installs modules under architecture dependent path).
> Unfortunately rsyslog does not seem to offer any way to query for
> default configuration values. Here is rather hack - try to load
> non-existing module and fetch path from error message.
>
> Example of error message from version 4.6.4:
>
> rsyslogd: could not load module '/lib64/rsyslog/_No_sUcH_MOduLe.so',
> dlopen: /lib64/rsyslog/_No_sUcH_MOduLe.so: cannot open shared object
> file: No such file or directory
>
> Signed-off-by: Andrey Borzenkov <arvidjaar-JGs/UdohzUI@public.gmane.org>
>
> ---
>
> modules.d/98syslog/install | 17 ++++++++++++++++-
> 1 files changed, 16 insertions(+), 1 deletions(-)
>
> diff --git a/modules.d/98syslog/install b/modules.d/98syslog/install
> index 1fd1b6f..e3d02bf 100755
> --- a/modules.d/98syslog/install
> +++ b/modules.d/98syslog/install
> @@ -1,6 +1,21 @@
> #!/bin/sh
> if type -P rsyslogd >/dev/null; then
> -
> installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so /lib/rsyslog/imuxsock.so"
> + # module path can be changed during build and currently
> rsyslog
> + # does not provide any means to query for it. Use hack - try
> to
> + # load non-existent module and look at error message
> + R_CONF=/tmp/dracut.rsyslog.conf.$$
> + R_ERR=/tmp/dracut.rsyslog.err.$$
> + R_MODDIR=
> + echo '$ModLoad _No_sUcH_MOduLe' > $R_CONF
> + if [ -s $R_CONF ]; then
> + rsyslogd -N 1 -f $R_CONF 2> $R_ERR > /dev/null
> + R_MODDIR=$(grep ' could not load
> module .*_No_sUcH_MOduLe' $R_ERR)
> + R_MODDIR=${R_MODDIR#*could not load module \'}
> + R_MODDIR=${R_MODDIR%\', *}
> + R_MODDIR=${R_MODDIR%/*}
> + fi
> + [ -n "$R_MODDIR" ] || R_MODDIR=/lib/rsyslog
> + installs="rsyslogd $R_MODDIR/lmnet.so $R_MODDIR/imklog.so
> $R_MODDIR/imuxsock.so" elif type -P syslogd >/dev/null; then
> installs="syslogd"
> elif type -P syslog-ng >/dev/null; then
>
>
Indeed this patch is more precise than my simplified one ;)
--
Regards
TPG
http://cia.vc/stats/author/tpg
---
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] 98syslog: try to dynamically check for rsyslog moddir
[not found] ` <20100908184826.7968b1e9-5tc4TXWwyLM@public.gmane.org>
@ 2010-09-10 13:48 ` Harald Hoyer
0 siblings, 0 replies; 10+ messages in thread
From: Harald Hoyer @ 2010-09-10 13:48 UTC (permalink / raw)
To: Tomasz Paweł Gajc
Cc: Andrey Borzenkov, initramfs-u79uwXL29TY76Z2rM5mHXA,
rsyslog-4gKAAF5ltrKNkp5+ER1W/AC/G2K4zDHf,
tpg-4qZELD6Fgxhg9hUCZPvPmw
On 09/08/2010 06:48 PM, Tomasz Pawe³ Gajc wrote:
> Dnia 2010-09-08, o godz. 18:52:13
> Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org> napisa³(a):
>
>> Thomas pointed out that default module path may not be correct
>> (Mandriva installs modules under architecture dependent path).
>> Unfortunately rsyslog does not seem to offer any way to query for
>> default configuration values. Here is rather hack - try to load
>> non-existing module and fetch path from error message.
>>
>> Example of error message from version 4.6.4:
>>
>> rsyslogd: could not load module '/lib64/rsyslog/_No_sUcH_MOduLe.so',
>> dlopen: /lib64/rsyslog/_No_sUcH_MOduLe.so: cannot open shared object
>> file: No such file or directory
>>
>> Signed-off-by: Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org>
>>
>> ---
>>
>> modules.d/98syslog/install | 17 ++++++++++++++++-
>> 1 files changed, 16 insertions(+), 1 deletions(-)
>>
>> diff --git a/modules.d/98syslog/install b/modules.d/98syslog/install
>> index 1fd1b6f..e3d02bf 100755
>> --- a/modules.d/98syslog/install
>> +++ b/modules.d/98syslog/install
>> @@ -1,6 +1,21 @@
>> #!/bin/sh
>> if type -P rsyslogd>/dev/null; then
>> -
>> installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so /lib/rsyslog/imuxsock.so"
>> + # module path can be changed during build and currently
>> rsyslog
>> + # does not provide any means to query for it. Use hack - try
>> to
>> + # load non-existent module and look at error message
>> + R_CONF=/tmp/dracut.rsyslog.conf.$$
>> + R_ERR=/tmp/dracut.rsyslog.err.$$
>> + R_MODDIR=
>> + echo '$ModLoad _No_sUcH_MOduLe'> $R_CONF
>> + if [ -s $R_CONF ]; then
>> + rsyslogd -N 1 -f $R_CONF 2> $R_ERR> /dev/null
>> + R_MODDIR=$(grep ' could not load
>> module .*_No_sUcH_MOduLe' $R_ERR)
>> + R_MODDIR=${R_MODDIR#*could not load module \'}
>> + R_MODDIR=${R_MODDIR%\', *}
>> + R_MODDIR=${R_MODDIR%/*}
>> + fi
>> + [ -n "$R_MODDIR" ] || R_MODDIR=/lib/rsyslog
>> + installs="rsyslogd $R_MODDIR/lmnet.so $R_MODDIR/imklog.so
>> $R_MODDIR/imuxsock.so" elif type -P syslogd>/dev/null; then
>> installs="syslogd"
>> elif type -P syslog-ng>/dev/null; then
>>
>>
>
> Indeed this patch is more precise than my simplified one ;)
>
ugly hack :-/ plus you want mktemp to prevent attacks..
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Re: [PATCH] 98syslog: try to dynamically check for rsyslog moddir
@ 2010-09-10 14:33 Andrey Borzenkov
[not found] ` <E1Ou4kw-0005pA-00.arvidjaar-mail-ru-eJLJSXF0gEtsdVUOrk1QfQ@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Andrey Borzenkov @ 2010-09-10 14:33 UTC (permalink / raw)
To: Harald Hoyer
Cc: Tomasz Paweł Gajc, initramfs-u79uwXL29TY76Z2rM5mHXA,
rsyslog-4gKAAF5ltrKNkp5+ER1W/AC/G2K4zDHf,
tpg-4qZELD6Fgxhg9hUCZPvPmw
[-- Attachment #1: Type: text/plain, Size: 2589 bytes --]
On Friday 10 of September 2010 15:48:22 Harald Hoyer wrote:
> On 09/08/2010 06:48 PM, Tomasz Paweł Gajc wrote:
> > Dnia 2010-09-08, o godz. 18:52:13
> >
> > Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org> napisał(a):
> >> Thomas pointed out that default module path may not be correct
> >> (Mandriva installs modules under architecture dependent path).
> >> Unfortunately rsyslog does not seem to offer any way to query
> >> for
> >> default configuration values. Here is rather hack - try to load
> >> non-existing module and fetch path from error message.
> >>
> >> Example of error message from version 4.6.4:
> >>
> >> rsyslogd: could not load module
> >> '/lib64/rsyslog/_No_sUcH_MOduLe.so', dlopen:
> >> /lib64/rsyslog/_No_sUcH_MOduLe.so: cannot open shared object
> >> file: No such file or directory
> >>
> >> Signed-off-by: Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org>
> >>
> >> ---
> >>
> >> modules.d/98syslog/install | 17 ++++++++++++++++-
> >> 1 files changed, 16 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/modules.d/98syslog/install
> >> b/modules.d/98syslog/install index 1fd1b6f..e3d02bf 100755
> >> --- a/modules.d/98syslog/install
> >> +++ b/modules.d/98syslog/install
> >> @@ -1,6 +1,21 @@
> >>
> >> #!/bin/sh
> >> if type -P rsyslogd>/dev/null; then
> >>
> >> -
> >> installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so
> >> /lib/rsyslog/imuxsock.so" + # module path can be changed during
> >> build and currently rsyslog
> >> + # does not provide any means to query for it. Use hack - try
> >> to
> >> + # load non-existent module and look at error message
> >> + R_CONF=/tmp/dracut.rsyslog.conf.$$
> >> + R_ERR=/tmp/dracut.rsyslog.err.$$
> >> + R_MODDIR=
> >> + echo '$ModLoad _No_sUcH_MOduLe'> $R_CONF
> >> + if [ -s $R_CONF ]; then
> >> + rsyslogd -N 1 -f $R_CONF 2> $R_ERR> /dev/null
> >> + R_MODDIR=$(grep ' could not load
> >> module .*_No_sUcH_MOduLe' $R_ERR)
> >> + R_MODDIR=${R_MODDIR#*could not load module \'}
> >> + R_MODDIR=${R_MODDIR%\', *}
> >> + R_MODDIR=${R_MODDIR%/*}
> >> + fi
> >> + [ -n "$R_MODDIR" ] || R_MODDIR=/lib/rsyslog
> >> + installs="rsyslogd $R_MODDIR/lmnet.so $R_MODDIR/imklog.so
> >> $R_MODDIR/imuxsock.so" elif type -P syslogd>/dev/null; then
> >>
> >> installs="syslogd"
> >>
> >> elif type -P syslog-ng>/dev/null; then
> >
> > Indeed this patch is more precise than my simplified one ;)
>
> ugly hack :-/ plus you want mktemp to prevent attacks..
Just to make sure - it was NAK? :)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] 98syslog: try to dynamically check for rsyslog moddir
[not found] ` <E1Ou4kw-0005pA-00.arvidjaar-mail-ru-eJLJSXF0gEtsdVUOrk1QfQ@public.gmane.org>
@ 2010-09-10 14:39 ` Harald Hoyer
2010-09-10 15:15 ` Peter Jones
1 sibling, 0 replies; 10+ messages in thread
From: Harald Hoyer @ 2010-09-10 14:39 UTC (permalink / raw)
To: Andrey Borzenkov
Cc: Tomasz Paweł Gajc, initramfs-u79uwXL29TY76Z2rM5mHXA,
rsyslog-4gKAAF5ltrKNkp5+ER1W/AC/G2K4zDHf,
tpg-4qZELD6Fgxhg9hUCZPvPmw
On 09/10/2010 04:33 PM, Andrey Borzenkov wrote:
> On Friday 10 of September 2010 15:48:22 Harald Hoyer wrote:
>> On 09/08/2010 06:48 PM, Tomasz Pawe³ Gajc wrote:
>>> Dnia 2010-09-08, o godz. 18:52:13
>>>
>>> Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org> napisa³(a):
>>>> Thomas pointed out that default module path may not be correct
>>>> (Mandriva installs modules under architecture dependent path).
>>>> Unfortunately rsyslog does not seem to offer any way to query
>>>> for
>>>> default configuration values. Here is rather hack - try to load
>>>> non-existing module and fetch path from error message.
>>>>
>>>> Example of error message from version 4.6.4:
>>>>
>>>> rsyslogd: could not load module
>>>> '/lib64/rsyslog/_No_sUcH_MOduLe.so', dlopen:
>>>> /lib64/rsyslog/_No_sUcH_MOduLe.so: cannot open shared object
>>>> file: No such file or directory
>>>>
>>>> Signed-off-by: Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org>
>>>>
>>>> ---
>>>>
>>>> modules.d/98syslog/install | 17 ++++++++++++++++-
>>>> 1 files changed, 16 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/modules.d/98syslog/install
>>>> b/modules.d/98syslog/install index 1fd1b6f..e3d02bf 100755
>>>> --- a/modules.d/98syslog/install
>>>> +++ b/modules.d/98syslog/install
>>>> @@ -1,6 +1,21 @@
>>>>
>>>> #!/bin/sh
>>>> if type -P rsyslogd>/dev/null; then
>>>>
>>>> -
>>>> installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so
>>>> /lib/rsyslog/imuxsock.so" + # module path can be changed during
>>>> build and currently rsyslog
>>>> + # does not provide any means to query for it. Use hack - try
>>>> to
>>>> + # load non-existent module and look at error message
>>>> + R_CONF=/tmp/dracut.rsyslog.conf.$$
>>>> + R_ERR=/tmp/dracut.rsyslog.err.$$
>>>> + R_MODDIR=
>>>> + echo '$ModLoad _No_sUcH_MOduLe'> $R_CONF
>>>> + if [ -s $R_CONF ]; then
>>>> + rsyslogd -N 1 -f $R_CONF 2> $R_ERR> /dev/null
>>>> + R_MODDIR=$(grep ' could not load
>>>> module .*_No_sUcH_MOduLe' $R_ERR)
>>>> + R_MODDIR=${R_MODDIR#*could not load module \'}
>>>> + R_MODDIR=${R_MODDIR%\', *}
>>>> + R_MODDIR=${R_MODDIR%/*}
>>>> + fi
>>>> + [ -n "$R_MODDIR" ] || R_MODDIR=/lib/rsyslog
>>>> + installs="rsyslogd $R_MODDIR/lmnet.so $R_MODDIR/imklog.so
>>>> $R_MODDIR/imuxsock.so" elif type -P syslogd>/dev/null; then
>>>>
>>>> installs="syslogd"
>>>>
>>>> elif type -P syslog-ng>/dev/null; then
>>>
>>> Indeed this patch is more precise than my simplified one ;)
>>
>> ugly hack :-/ plus you want mktemp to prevent attacks..
>
> Just to make sure - it was NAK? :)
NAK without mktemp... with mktemp, I am willing to accept the hackiness for the
sake of portability :)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] 98syslog: try to dynamically check for rsyslog moddir
[not found] ` <E1Ou4kw-0005pA-00.arvidjaar-mail-ru-eJLJSXF0gEtsdVUOrk1QfQ@public.gmane.org>
2010-09-10 14:39 ` Harald Hoyer
@ 2010-09-10 15:15 ` Peter Jones
[not found] ` <4C8A4B91.20905-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
1 sibling, 1 reply; 10+ messages in thread
From: Peter Jones @ 2010-09-10 15:15 UTC (permalink / raw)
To: Andrey Borzenkov
Cc: Harald Hoyer, Tomasz Paweł Gajc,
initramfs-u79uwXL29TY76Z2rM5mHXA,
rsyslog-4gKAAF5ltrKNkp5+ER1W/AC/G2K4zDHf,
tpg-4qZELD6Fgxhg9hUCZPvPmw
On 09/10/2010 10:33 AM, Andrey Borzenkov wrote:
> On Friday 10 of September 2010 15:48:22 Harald Hoyer wrote:
>> On 09/08/2010 06:48 PM, Tomasz Pawe³ Gajc wrote:
>>> Dnia 2010-09-08, o godz. 18:52:13
>>>
>>> Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org> napisa³(a):
>>>> Thomas pointed out that default module path may not be correct
>>>> (Mandriva installs modules under architecture dependent path).
>>>> Unfortunately rsyslog does not seem to offer any way to query
>>>> for
>>>> default configuration values. Here is rather hack - try to load
>>>> non-existing module and fetch path from error message.
>>>>
>>>> Example of error message from version 4.6.4:
>>>>
>>>> rsyslogd: could not load module
>>>> '/lib64/rsyslog/_No_sUcH_MOduLe.so', dlopen:
>>>> /lib64/rsyslog/_No_sUcH_MOduLe.so: cannot open shared object
>>>> file: No such file or directory
>>>>
>>>> Signed-off-by: Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org>
>>>>
>>>> ---
>>>>
>>>> modules.d/98syslog/install | 17 ++++++++++++++++-
>>>> 1 files changed, 16 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/modules.d/98syslog/install
>>>> b/modules.d/98syslog/install index 1fd1b6f..e3d02bf 100755
>>>> --- a/modules.d/98syslog/install
>>>> +++ b/modules.d/98syslog/install
>>>> @@ -1,6 +1,21 @@
>>>>
>>>> #!/bin/sh
>>>> if type -P rsyslogd>/dev/null; then
>>>>
>>>> -
>>>> installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so
>>>> /lib/rsyslog/imuxsock.so" + # module path can be changed during
>>>> build and currently rsyslog
>>>> + # does not provide any means to query for it. Use hack - try
>>>> to
>>>> + # load non-existent module and look at error message
>>>> + R_CONF=/tmp/dracut.rsyslog.conf.$$
>>>> + R_ERR=/tmp/dracut.rsyslog.err.$$
>>>> + R_MODDIR=
>>>> + echo '$ModLoad _No_sUcH_MOduLe'> $R_CONF
>>>> + if [ -s $R_CONF ]; then
>>>> + rsyslogd -N 1 -f $R_CONF 2> $R_ERR> /dev/null
>>>> + R_MODDIR=$(grep ' could not load
>>>> module .*_No_sUcH_MOduLe' $R_ERR)
>>>> + R_MODDIR=${R_MODDIR#*could not load module \'}
>>>> + R_MODDIR=${R_MODDIR%\', *}
>>>> + R_MODDIR=${R_MODDIR%/*}
>>>> + fi
>>>> + [ -n "$R_MODDIR" ] || R_MODDIR=/lib/rsyslog
>>>> + installs="rsyslogd $R_MODDIR/lmnet.so $R_MODDIR/imklog.so
>>>> $R_MODDIR/imuxsock.so" elif type -P syslogd>/dev/null; then
>>>>
>>>> installs="syslogd"
>>>>
>>>> elif type -P syslog-ng>/dev/null; then
>>>
>>> Indeed this patch is more precise than my simplified one ;)
>>
>> ugly hack :-/ plus you want mktemp to prevent attacks..
>
> Just to make sure - it was NAK? :)
Is there some reason to do something this complex instead of simply replacing
/lib/rsyslog/ with /lib*/rsyslog/ on that one line?
--
Peter
Computers don't make errors. What they do, they do on purpose.
-- Dale
01234567890123456789012345678901234567890123456789012345678901234567890123456789
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] Be sure and get the right architecture for rsylogd modules.
[not found] ` <4C8A4B91.20905-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2010-09-10 15:32 ` Peter Jones
[not found] ` <1284132744-6659-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-10 18:25 ` [PATCH] 98syslog: try to dynamically check for rsyslog moddir Tomasz Paweł Gajc
1 sibling, 1 reply; 10+ messages in thread
From: Peter Jones @ 2010-09-10 15:32 UTC (permalink / raw)
To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Peter Jones
I've tested this locally on 64-bit with:
dracut -a syslog -f -v foo.img `uname -r`
And I see this in the output:
I: *** Sourcing module syslog
I: Installing /sbin/rsyslogd
I: Installing /lib64/rsyslog/lmnet.so
I: Installing /lib64/rsyslog/imklog.so
I: Installing /lib64/rsyslog/imuxsock.so
I: Installing /usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh
I: Installing /usr/share/dracut/modules.d/98syslog/syslog-genrules.sh
I: Installing /usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh
I: Installing /usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh
I: Installing /usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh
I: Installing /usr/share/dracut/modules.d/98syslog/rsyslog.conf
---
modules.d/98syslog/install | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/modules.d/98syslog/install b/modules.d/98syslog/install
index ed5958e..dfaddf3 100755
--- a/modules.d/98syslog/install
+++ b/modules.d/98syslog/install
@@ -3,7 +3,7 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
if type -P rsyslogd >/dev/null; then
- installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so /lib/rsyslog/imuxsock.so"
+ installs="rsyslogd /lib*/rsyslog/lmnet.so /lib*/rsyslog/imklog.so /lib*/rsyslog/imuxsock.so"
elif type -P syslogd >/dev/null; then
installs="syslogd"
elif type -P syslog-ng >/dev/null; then
--
1.7.2.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] Be sure and get the right architecture for rsylogd modules.
[not found] ` <1284132744-6659-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2010-09-10 15:58 ` Peter Jones
[not found] ` <4C8A55BC.8060606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Peter Jones @ 2010-09-10 15:58 UTC (permalink / raw)
To: Peter Jones; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA
On 09/10/2010 11:32 AM, Peter Jones wrote:
> I've tested this locally on 64-bit with:
>
> dracut -a syslog -f -v foo.img `uname -r`
>
> And I see this in the output:
Harald asked me on IRC to try and also handle the /usr/* case, so my
next revision will handle that.
--
Peter
Computers don't make errors. What they do, they do on purpose.
-- Dale
01234567890123456789012345678901234567890123456789012345678901234567890123456789
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] Be sure and get the right architecture for rsylogd modules.
[not found] ` <4C8A55BC.8060606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2010-09-10 15:59 ` Peter Jones
0 siblings, 0 replies; 10+ messages in thread
From: Peter Jones @ 2010-09-10 15:59 UTC (permalink / raw)
To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Peter Jones
I've tested this locally on 64-bit with:
dracut -a syslog -f -v foo.img `uname -r`
And I see this in the output:
I: *** Sourcing module syslog
I: Installing /sbin/rsyslogd
I: Installing /lib64/rsyslog/lmnet.so
I: Installing /lib64/rsyslog/imklog.so
I: Installing /lib64/rsyslog/imuxsock.so
I: Installing /usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh
I: Installing /usr/share/dracut/modules.d/98syslog/syslog-genrules.sh
I: Installing /usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh
I: Installing /usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh
I: Installing /usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh
I: Installing /usr/share/dracut/modules.d/98syslog/rsyslog.conf
---
modules.d/98syslog/install | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/modules.d/98syslog/install b/modules.d/98syslog/install
index ed5958e..cca088d 100755
--- a/modules.d/98syslog/install
+++ b/modules.d/98syslog/install
@@ -3,7 +3,12 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
if type -P rsyslogd >/dev/null; then
- installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so /lib/rsyslog/imuxsock.so"
+ installs="rsyslogd"
+ for i in {"$libdir","$usrlibdir"}/rsyslog/lmnet.so \
+ {"$libdir","$usrlibdir"}/rsyslog/imklog.so \
+ {"$libdir","$usrlibdir"}/rsyslog/imuxsock.so ; do
+ [ -e "$i" ] && installs="$installs $i"
+ done
elif type -P syslogd >/dev/null; then
installs="syslogd"
elif type -P syslog-ng >/dev/null; then
--
1.7.2.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] 98syslog: try to dynamically check for rsyslog moddir
[not found] ` <4C8A4B91.20905-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-10 15:32 ` [PATCH] Be sure and get the right architecture for rsylogd modules Peter Jones
@ 2010-09-10 18:25 ` Tomasz Paweł Gajc
1 sibling, 0 replies; 10+ messages in thread
From: Tomasz Paweł Gajc @ 2010-09-10 18:25 UTC (permalink / raw)
To: Peter Jones
Cc: Andrey Borzenkov, Harald Hoyer, initramfs-u79uwXL29TY76Z2rM5mHXA,
rsyslog-4gKAAF5ltrKNkp5+ER1W/AC/G2K4zDHf
[-- Attachment #1: Type: text/plain, Size: 4037 bytes --]
Dnia 2010-09-10, o godz. 11:15:29
Peter Jones <pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> napisał(a):
> On 09/10/2010 10:33 AM, Andrey Borzenkov wrote:
> > On Friday 10 of September 2010 15:48:22 Harald Hoyer wrote:
> >> On 09/08/2010 06:48 PM, Tomasz Paweł Gajc wrote:
> >>> Dnia 2010-09-08, o godz. 18:52:13
> >>>
> >>> Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org> napisał(a):
> >>>> Thomas pointed out that default module path may not be correct
> >>>> (Mandriva installs modules under architecture dependent path).
> >>>> Unfortunately rsyslog does not seem to offer any way to query
> >>>> for
> >>>> default configuration values. Here is rather hack - try to load
> >>>> non-existing module and fetch path from error message.
> >>>>
> >>>> Example of error message from version 4.6.4:
> >>>>
> >>>> rsyslogd: could not load module
> >>>> '/lib64/rsyslog/_No_sUcH_MOduLe.so', dlopen:
> >>>> /lib64/rsyslog/_No_sUcH_MOduLe.so: cannot open shared object
> >>>> file: No such file or directory
> >>>>
> >>>> Signed-off-by: Andrey Borzenkov<arvidjaar-JGs/UdohzUI@public.gmane.org>
> >>>>
> >>>> ---
> >>>>
> >>>> modules.d/98syslog/install | 17 ++++++++++++++++-
> >>>> 1 files changed, 16 insertions(+), 1 deletions(-)
> >>>>
> >>>> diff --git a/modules.d/98syslog/install
> >>>> b/modules.d/98syslog/install index 1fd1b6f..e3d02bf 100755
> >>>> --- a/modules.d/98syslog/install
> >>>> +++ b/modules.d/98syslog/install
> >>>> @@ -1,6 +1,21 @@
> >>>>
> >>>> #!/bin/sh
> >>>> if type -P rsyslogd>/dev/null; then
> >>>>
> >>>> -
> >>>> installs="rsyslogd /lib/rsyslog/lmnet.so /lib/rsyslog/imklog.so
> >>>> /lib/rsyslog/imuxsock.so" + # module path can be changed
> >>>> during build and currently rsyslog
> >>>> + # does not provide any means to query for it. Use hack
> >>>> - try to
> >>>> + # load non-existent module and look at error message
> >>>> + R_CONF=/tmp/dracut.rsyslog.conf.$$
> >>>> + R_ERR=/tmp/dracut.rsyslog.err.$$
> >>>> + R_MODDIR=
> >>>> + echo '$ModLoad _No_sUcH_MOduLe'> $R_CONF
> >>>> + if [ -s $R_CONF ]; then
> >>>> + rsyslogd -N 1 -f $R_CONF 2>
> >>>> $R_ERR> /dev/null
> >>>> + R_MODDIR=$(grep ' could not load
> >>>> module .*_No_sUcH_MOduLe' $R_ERR)
> >>>> + R_MODDIR=${R_MODDIR#*could not load module \'}
> >>>> + R_MODDIR=${R_MODDIR%\', *}
> >>>> + R_MODDIR=${R_MODDIR%/*}
> >>>> + fi
> >>>> + [ -n "$R_MODDIR" ] || R_MODDIR=/lib/rsyslog
> >>>> + installs="rsyslogd $R_MODDIR/lmnet.so
> >>>> $R_MODDIR/imklog.so $R_MODDIR/imuxsock.so" elif type -P
> >>>> syslogd>/dev/null; then
> >>>>
> >>>> installs="syslogd"
> >>>>
> >>>> elif type -P syslog-ng>/dev/null; then
> >>>
> >>> Indeed this patch is more precise than my simplified one ;)
> >>
> >> ugly hack :-/ plus you want mktemp to prevent attacks..
> >
> > Just to make sure - it was NAK? :)
>
> Is there some reason to do something this complex instead of simply
> replacing /lib/rsyslog/ with /lib*/rsyslog/ on that one line?
>
Well you can always try my simple solution:
diff -Naur dracut-007//modules.d/98syslog/install
dracut-007.tpg//modules.d/98syslog/install ---
dracut-007//modules.d/98syslog/install 2010-08-09
14:13:51.000000000 +0000 +++
dracut-007.tpg//modules.d/98syslog/install 2010-09-04
23:00:12.000000000 +0000 @@ -1,6 +1,13 @@ #!/bin/sh +
+if ldd /sbin/rsyslogd | grep -q lib64; then
+ LIBDIR="/lib64"
+else
+ LIBDIR="/lib"
+fi
+
if which rsyslogd >/dev/null; then
-
installs="rsyslogd /usr/lib/rsyslog/lmnet.so /usr/lib/rsyslog/imklog.so /usr/lib/rsyslog/imuxsock.so"
+ installs="rsyslogd ${LIBDIR}/rsyslog/lmnet.so
${LIBDIR}/rsyslog/imklog.so ${LIBDIR}/rsyslog/imuxsock.so" elif which
syslogd >/dev/null; then installs="syslogd"
elif which syslog-ng >/dev/null; then
http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/dracut/current/SOURCES/dracut-007-add-rsyslog-library-patch-check.patch
--
Regards
TPG
http://cia.vc/stats/author/tpg
---
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-09-10 18:25 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-10 14:33 Re: [PATCH] 98syslog: try to dynamically check for rsyslog moddir Andrey Borzenkov
[not found] ` <E1Ou4kw-0005pA-00.arvidjaar-mail-ru-eJLJSXF0gEtsdVUOrk1QfQ@public.gmane.org>
2010-09-10 14:39 ` Harald Hoyer
2010-09-10 15:15 ` Peter Jones
[not found] ` <4C8A4B91.20905-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-10 15:32 ` [PATCH] Be sure and get the right architecture for rsylogd modules Peter Jones
[not found] ` <1284132744-6659-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-10 15:58 ` Peter Jones
[not found] ` <4C8A55BC.8060606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-10 15:59 ` Peter Jones
2010-09-10 18:25 ` [PATCH] 98syslog: try to dynamically check for rsyslog moddir Tomasz Paweł Gajc
-- strict thread matches above, loose matches on Subject: below --
2010-09-08 14:52 Andrey Borzenkov
2010-09-08 16:48 ` Tomasz Paweł Gajc
[not found] ` <20100908184826.7968b1e9-5tc4TXWwyLM@public.gmane.org>
2010-09-10 13:48 ` Harald Hoyer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.