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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox