порядок строк в .config при make menuconfig

Модератор: Модераторы разделов

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

порядок строк в .config при make menuconfig

Сообщение sash-kan »

после вызова make menuconfig слегка меняется порядок строк в .config.
это создаёт определённые проблемы, например, в случае, если .config включается в систему контроля версий.

поискал по этому поводу информацию в интернетах. такое ощущение, что этим вопросом никто не озабочивался.
может, у кого-то из форумчан есть соображения по этому поводу?

p.s. вообще в моём случае подразумевается .config в openwrt, но построена работа menuconfig-а по тому же принципу, что и в ядре.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: порядок строк в .config при make menuconfig

Сообщение serzh-z »

sash-kan писал(а):
09.09.2010 19:18
у кого-то из форумчан есть соображения по этому поводу?
А в чём вопрос? Файл .config не изменяется, а полностью переписывается... в соответствии с правилами файлов menuconfig. Если требуется чтобы .config минимально отличался от версии в VCS, и в качестве VCS используется система, поддерживающая хуки, то можно попробовать использоваьт их, чтобы перед комитом причесать .config
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: порядок строк в .config при make menuconfig

Сообщение sash-kan »

serzh-z
спасибо за дельную мысль. hook-и мне в голову не приходили. видимо потому, что использую в работе отнюдь не централизованную vcs. собственно поэтому именно hook-овое решение мне и не подходит.

но из твоей мысли (и уверенности) проистекла пара других мыслишек:
1. закомментированные строки ведь нужны только для человеков? по идее, их удаление из .config никак не должно повлиять ни на сборку, ни на последующие запуски make menuconfig. я правильно размышляю?
2. порядок незакомментированных строк тоже, вроде бы, никакого влияния на сборку/переконфигурацию не должен оказывать. я прав?

если я прав в обоих случаях, то достаточно подправить соответствующее место соответствующего мэйкфайла, и после записи .config-а просто убрать из него комментарии (и пустые строки), а оставшееся отсортировать.
и получится очень даже съедобное для vcs-а решение. а то нынче каждая правка .config-а вызывает такой идиотский патч, в котором обе ноги переломаешь, пока разберешься, что же, собственно, включалось/отключалось.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: порядок строк в .config при make menuconfig

Сообщение serzh-z »

sash-kan писал(а):
09.09.2010 21:55
пока разберешься, что же, собственно, включалось/отключалось.
Если цель - всего лишь понять, что именно было включено/выключено, уж проще написать скрипт, который будет сохранять "порядоченную" копию .config. Скажем, .config.human, ну и запускать make menuconfig из скрипта, который будет дёргать скрипт-причёсывальщик, после успешной работы menuconfig.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: порядок строк в .config при make menuconfig

Сообщение sash-kan »

serzh-z
ну, я рискнул обойтись без лишних сущностей, и сокращать/сортировать непосредственно .config.
вроде пока полёт нормальный.
спасибо.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: порядок строк в .config при make menuconfig

Сообщение KiWi »

sash-kan писал(а):
09.09.2010 21:55
1. закомментированные строки ведь нужны только для человеков? по идее, их удаление из .config никак не должно повлиять ни на сборку, ни на последующие запуски make menuconfig. я правильно размышляю?

По идее, они и для make oldconfig (не строки => новая настройка => спросить у пользователя значение).
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: порядок строк в .config при make menuconfig

Сообщение sash-kan »

KiWi писал(а):
10.09.2010 02:08
sash-kan писал(а):
09.09.2010 21:55
1. закомментированные строки ведь нужны только для человеков? по идее, их удаление из .config никак не должно повлиять ни на сборку, ни на последующие запуски make menuconfig. я правильно размышляю?

По идее, они и для make oldconfig (не строки => новая настройка => спросить у пользователя значение).
вроде как всё понимает и всем доволен:

Код: Выделить всё

$ make oldconfig
#
# using defaults found in .config
#
*
* OpenWrt Configuration
*
Target System
  1. AMCC/IBM PPC40x (TARGET_ppc40x) (NEW)
  2. AMCC/IBM PPC44x (TARGET_ppc44x) (NEW)
  3. Atheros AR231x/AR5312 (TARGET_atheros) (NEW)
  4. Atheros AR71xx/AR7240/AR913x (TARGET_ar71xx) (NEW)
  5. Atmel AVR32 (TARGET_avr32) (NEW)
  6. Broadcom BCM63xx (TARGET_brcm63xx) (NEW)
> 7. Broadcom BCM947xx/953xx (TARGET_brcm47xx)
  8. Broadcom BCM947xx/953xx [2.4] (TARGET_brcm_2_4) (NEW)
  9. Cavium Networks Octeon (TARGET_octeon) (NEW)
  10. Cobalt Microservers (TARGET_cobalt) (NEW)
  11. Infineon Mips (TARGET_ifxmips) (NEW)
  12. Infineon/ADMtek ADM5120 (TARGET_adm5120) (NEW)
  13. Ingenic XBurst (TARGET_xburst) (NEW)
  14. Intel IXP4xx (TARGET_ixp4xx) (NEW)
  15. Marvell Kirkwood (TARGET_kirkwood) (NEW)
  16. Marvell Orion (TARGET_orion) (NEW)
  17. Mikrotik RouterBoard 532 (TARGET_rb532) (NEW)
  18. RDC 321x (TARGET_rdc) (NEW)
  19. RMI/AMD AU1x00 (TARGET_au1000) (NEW)
  20. TI AR7 (TARGET_ar7) (NEW)
  21. User Mode Linux (TARGET_uml) (NEW)
  22. x86 (TARGET_x86) (NEW)
choice[1-22]:
Target Profile
> 1. Broadcom BCM43xx WiFi (default) (TARGET_brcm47xx_Broadcom-b43)
  2. Atheros WiFi (TARGET_brcm47xx_Atheros) (NEW)
  3. Atheros WiFi (atk5k) (TARGET_brcm47xx_Atheros-ath5k) (NEW)
  4. No WiFi (TARGET_brcm47xx_None) (NEW)
  5. Netgear WGT634U (TARGET_brcm47xx_WGT634U) (NEW)
  6. ASUS WL-500g Premium v1 (Atheros WiFi) (TARGET_brcm47xx_WL500GPv1) (NEW)
  7. Linksys WRT350Nv1 (TARGET_brcm47xx_WRT350Nv1) (NEW)
  8. Linksys WRTSL54GS (TARGET_brcm47xx_WRTSL54GS) (NEW)
choice[1-8]:
*
* Target Images
*
*
* ramdisk
*
ramdisk (TARGET_ROOTFS_INITRAMFS) [N/y/?] (NEW)
...
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: