Bug 13291

Summary: BR2_DL_DIR is ignored when creating defconfig
Product: buildroot Reporter: Lance Fredrickson <lancethepants>
Component: OtherAssignee: unassigned
Status: RESOLVED FIXED    
Severity: minor CC: buildroot, yann.morin.1998
Priority: P5    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:

Description Lance Fredrickson 2020-11-04 17:42:48 UTC
BR2_DL_DIR is not being stored in defconfig with 'make savedefconfig'
It is also being ignored when present in a defconfig.
Comment 1 Lance Fredrickson 2020-11-04 18:17:20 UTC
correction: only 'make savedefconfig' is not working. It is pulling in and using the value when already in the defconfig.
Comment 2 Peter Korsgaard 2020-11-04 21:43:29 UTC
This is a recent change done on purpose:
https://git.buildroot.org/buildroot/commit/?id=36edacce9c2c3b90f9bb11a5d2208e8edf7bbe63

What is your use case for wanting to store a custom download directory location in the defconfig?
Comment 3 Lance Fredrickson 2020-11-05 20:52:40 UTC
For various projects I set BR2_DL_DIR using menuconfig to point to a central directory for source packages.  I use savedefconfig to store the config cause it looks nice and is easier to tell what is going on.

Is that commit talking about when BR2_DL_DIR is 'set' as an environment variable or as a value you 'set' in a config using menuconfig?  I can understand why you wouldn't want to pull in environment variabless while using savedefconfig. However, I would assume if it's left configurable in the menuconfig that it would be preserved in a minimalized version of that config.
Comment 4 Yann E. MORIN 2020-11-06 23:00:27 UTC
(In reply to Lance Fredrickson from comment #3)
> For various projects I set BR2_DL_DIR using menuconfig to point to a
> central directory for source packages.

I find it dubious that it is used as-is.

For example, in a team of many developpers, each working on their
own machines, with their own usernames and filesystem layouts, surely
a common BR2_DL_DIR does not make sense.

For a CI (or any similar build farm), then the CI setup is already
taking care of making the shared BR2_DL_DIR mounted (or otherwise
available) at that known central directory. It only makes sense that
that CI setup also exports BR2_DL_DIR in the environment too. Doing
so also ensures that no legacy is stored in a defconfig, so that old
commits can still be built in a newer CI setup (e.g. one where the
central directory was moved).

> Is that commit talking about when BR2_DL_DIR is 'set' as an environment
> variable or as a value you 'set' in a config using menuconfig?

This was about not saving the Kconfig (menuconfig) variable. The environment
variable had never been saved into the saved defconfig.

> However, I would assume if it's left configurable in the menuconfig
> that it would be preserved in a minimalized version of that config.

I believe that this is mostly a historical accident that this is
configurable in the menuconfig. Such site-local settings are not really
configuration defining the target filesystem; rather, they settings that
drive and control how the build is performed, not its output. As such
they should not be part of the configuration.

However, I've reverted that patch now, with commit 1482ef6bb8.

Thanks for the report.