Skip to contentSkip to conversation

kconfig: support read-only Buildroot source directories

PATCH New Hollis Blanchard 4 participants 6 messages Aug 13, 2015 – Aug 28, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kconfig: support read-only Buildroot source directories

merge_config.sh currently tries to create a .tmp file in the top-level Buildroot source tree. This fails when that directory is read-only, leading to unexpected .config file contents (affecting the configuration of Buildroot itself, Linux, and Busybox).

Fix it by using mktemp --tmpdir to create the .tmp file in $TMPDIR or /tmp.

---
 support/kconfig/merge_config.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
support/kconfig/merge_config.sh +1 -1
index 81b0c61..19d968b 100755
@@ -82,7 +82,7 @@ shift;
 
 MERGE_LIST=$*
 SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p"
-TMP_FILE=$(mktemp ./.tmp.config.XXXXXXXXXX)
+TMP_FILE=$(mktemp --tmpdir .tmp.config.XXXXXXXXXX)
 
 echo "Using $INITFILE as base"
 cat $INITFILE > $TMP_FILE
Signature · 1 line
2.3.2
#1 lore raw

PATCH 1/1 kconfig: support read-only Buildroot source directories

Hollis, All,

On 2015-08-13 15:22 -0700, Hollis Blanchard spake thusly:

Quoted 8 lines

merge_config.sh currently tries to create a .tmp file in the top-level Buildroot source tree. This fails when that directory is read-only, leading to unexpected .config file contents (affecting the configuration of Buildroot itself, Linux, and Busybox).

Fix it by using mktemp --tmpdir to create the .tmp file in $TMPDIR or /tmp.

Regards,
Yann E. MORIN.

Quoted 24 lines
---
 support/kconfig/merge_config.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
support/kconfig/merge_config.sh +1 -1
index 81b0c61..19d968b 100755
@@ -82,7 +82,7 @@ shift;
 
 MERGE_LIST=$*
 SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p"
-TMP_FILE=$(mktemp ./.tmp.config.XXXXXXXXXX)
+TMP_FILE=$(mktemp --tmpdir .tmp.config.XXXXXXXXXX)
 
 echo "Using $INITFILE as base"
 cat $INITFILE > $TMP_FILE
Signature · 6 lines
2.3.2

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH 1/1 kconfig: support read-only Buildroot source directories

Hello Hollis,

Quoted 8 lines · Yann E. MORIN

Hollis, All,

On 2015-08-13 15:22 -0700, Hollis Blanchard spake thusly:

Quoted 5 lines

merge_config.sh currently tries to create a .tmp file in the top-level Buildroot source tree. This fails when that directory is read-only, leading to unexpected .config file contents (affecting the configuration of Buildroot itself, Linux, and Busybox).

Quoted 9 lines
Quoted 3 lines

Fix it by using mktemp --tmpdir to create the .tmp file in $TMPDIR or /tmp.

Regards,
Yann E. MORIN.

I mentioned on IRC the other day that I had reproduced the problem; I have tested this patch and it works for me, so:

#3 lore raw

PATCH 1/1 kconfig: support read-only Buildroot source directories

In reply to Hollis Blanchard

Hollis,

Quoted 17 lines · Hollis Blanchard

merge_config.sh currently tries to create a .tmp file in the top-level Buildroot source tree. This fails when that directory is read-only, leading to unexpected .config file contents (affecting the configuration of Buildroot itself, Linux, and Busybox).

Fix it by using mktemp --tmpdir to create the .tmp file in $TMPDIR or /tmp.

---
 support/kconfig/merge_config.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
support/kconfig/merge_config.sh +0 -0
index 81b0c61..19d968b 100755

support/kconfig/merge_config.sh shift; · line 88

Quoted 8 lines
support/kconfig/merge_config.sh +1 -1
@@ -82,7 +82,7 @@ shift;
 
 MERGE_LIST=$*
 SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p"
-TMP_FILE=$(mktemp ./.tmp.config.XXXXXXXXXX)
+TMP_FILE=$(mktemp --tmpdir .tmp.config.XXXXXXXXXX)
 
 echo "Using $INITFILE as base"
 cat $INITFILE > $TMP_FILE

Thanks for this patch! It looks good in principle, but is not done correctly. support/kconfig/ is directly inherited from the kernel source code, and we keep a series of patches in support/kconfig/patches/ to clearly identify the changes we made compared to the original kernel version. See support/kconfig/README.buildroot for details.

Could you rework your patch to also add a patch to support/kconfig/patches/ ? Can you check whether the problem also exists in the kernel kconfig code, and if so, report the problem to the kernel developers ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 kconfig: support read-only Buildroot source directories

Hello all,

This bug seems to be somewhat major to remain in the 2015.08 release, as it prevents users from using a read-only buildroot source with out-of-tree builds.

Quoted 7 lines · Thomas Petazzoni

Thanks for this patch! It looks good in principle, but is not done correctly. support/kconfig/ is directly inherited from the kernel source code, and we keep a series of patches in support/kconfig/patches/ to clearly identify the changes we made compared to the original kernel version. See support/kconfig/README.buildroot for details.

Quoted 5 lines

Could you rework your patch to also add a patch to support/kconfig/patches/ ? Can you check whether the problem also exists in the kernel kconfig code, and if so, report the problem to the kernel developers ?

Hollis, did you manage to evolve this issue with the kernel developers? Or, will you have time to work this patch before the release according to Thomas' review?
I believe it would be a very important fix, and I could pick it in case you are unable right now.

Thanks,

Erico

#5 lore raw

PATCH 1/1 kconfig: support read-only Buildroot source directories

It's on my list, but I don't expect to be able to get back to this for quite a while. Sorry!

Hollis Blanchard
Mentor Graphics Emulation Division

Quoted 29 lines · Erico Nunes

Hello all,

This bug seems to be somewhat major to remain in the 2015.08 release, as it prevents users from using a read-only buildroot source with out-of-tree builds.

Quoted 7 lines · Thomas Petazzoni

Thanks for this patch! It looks good in principle, but is not done correctly. support/kconfig/ is directly inherited from the kernel source code, and we keep a series of patches in support/kconfig/patches/ to clearly identify the changes we made compared to the original kernel version. See support/kconfig/README.buildroot for details.

Quoted 5 lines

Could you rework your patch to also add a patch to support/kconfig/patches/ ? Can you check whether the problem also exists in the kernel kconfig code, and if so, report the problem to the kernel developers ?

Hollis, did you manage to evolve this issue with the kernel developers? Or, will you have time to work this patch before the release according to Thomas' review?
I believe it would be a very important fix, and I could pick it in case you are unable right now.

Thanks,

Erico