From: Marcin Nowakowski <marcin.nowakowski.000@gmail.com>
To: Michal Marek <mmarek@suse.cz>
Cc: linux-kbuild@vger.kernel.org
Subject: Re: [kbuild patch] mkcompile_h produces warnings when using domain logins
Date: Tue, 19 Apr 2011 19:23:18 +0100 [thread overview]
Message-ID: <4DADD316.9020000@gmail.com> (raw)
In-Reply-To: <4DAD47B4.3080908@suse.cz>
On 19/04/11 09:28, Michal Marek wrote:
> (CC linux-kbuild, please do not send patches to public projects privately)
>
> On 5.4.2011 20:47, Marcin Nowakowski wrote:
>> Fix handling of backslash character in LINUX_COMPILE_BY name
>>
>> When using a domain login, `whoami` returns the login in
>> user\domain format. This leads to either warnings on unrecognised
>> escape sequences or escaped characters being generated for the user.
>> This patch ensures that any backslash is escaped to a double-backslash
>> to make sure the name is preserved correctly
>>
>> Signed-off-by: Marcin Nowakowski<marcin.nowakowski.000@gmail.com>
>> --- a/scripts/mkcompile_h
>> +++ b/scripts/mkcompile_h
>> @@ -64,7 +64,7 @@
>> echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
>>
>> echo \#define LINUX_COMPILE_TIME \"`date +%T`\"
>> - echo \#define LINUX_COMPILE_BY \"`whoami`\"
>> + echo \#define LINUX_COMPILE_BY \"`whoami | sed
>> "s/\\\\\\\\/\\\\\\\\\\\\\\\\/"`\"
>> echo \#define LINUX_COMPILE_HOST \"`hostname | $UTS_TRUNCATE`\"
>
> Such long sequence of backslashes is rather unreadable. The same command
> is equivalent to
>
> sed 's/\\\\/\\\\\\\\/'
>
> if you use single quotes, but I wonder why you need to match two
> backslashes. You say that whoami returns 'user\domain', so the above
> regexp wouldn't match it.
The problem in this case is that when using back-quotes for command
substitution, backslashes are escaped so we need the extra layer of
escaping. However - having looked again at the bash documentation, I've
found that if $(...) syntax is used instead of `...` then backslashes
are treated literally. That, with addition of single quotes as you had
suggested should allow a simple
echo \#define LINUX_COMPILE_BY \"$(whoami | sed 's/\\/\\\\/g')\"
instead of the rather unreadable solution I initially suggested.
> Also, is it necessary to reproduce the full
> user\domain string in the macro? Or could we cut everything after the
> backslash, like
>
> sed 's/\\.*//'
>
> ? BTW, I changed the mkcompile_h script recently, see
> http://git.kernel.org/?p=linux/kernel/git/mmarek/kbuild-2.6.git;a=blob;f=scripts/mkcompile_h;hb=refs/heads/for-next,
> could you base any further version on the for-next branch of
> kbuild.2.6.git or on linux-next?
I'll re-send a new patched based on this tree and with the cleanup as
described above
thanks
Marcin
next prev parent reply other threads:[~2011-04-19 18:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4D9B63B2.1080701@gmail.com>
2011-04-19 8:28 ` [kbuild patch] mkcompile_h produces warnings when using domain logins Michal Marek
2011-04-19 18:23 ` Marcin Nowakowski [this message]
2011-04-25 12:35 ` [PATCH V2] Fix handling of backlash character in LINUX_COMPILE_BY name Marcin Nowakowski
2011-04-29 13:57 ` Michal Marek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DADD316.9020000@gmail.com \
--to=marcin.nowakowski.000@gmail.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=mmarek@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.