после вызова make menuconfig слегка меняется порядок строк в .config.
это создаёт определённые проблемы, например, в случае, если .config включается в систему контроля версий.
поискал по этому поводу информацию в интернетах. такое ощущение, что этим вопросом никто не озабочивался.
может, у кого-то из форумчан есть соображения по этому поводу?
p.s. вообще в моём случае подразумевается .config в openwrt, но построена работа menuconfig-а по тому же принципу, что и в ядре.
порядок строк в .config при make menuconfig
Модератор: Модераторы разделов
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
порядок строк в .config при make menuconfig
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: порядок строк в .config при make menuconfig
А в чём вопрос? Файл .config не изменяется, а полностью переписывается... в соответствии с правилами файлов menuconfig. Если требуется чтобы .config минимально отличался от версии в VCS, и в качестве VCS используется система, поддерживающая хуки, то можно попробовать использоваьт их, чтобы перед комитом причесать .config
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: порядок строк в .config при make menuconfig
serzh-z
спасибо за дельную мысль. hook-и мне в голову не приходили. видимо потому, что использую в работе отнюдь не централизованную vcs. собственно поэтому именно hook-овое решение мне и не подходит.
но из твоей мысли (и уверенности) проистекла пара других мыслишек:
1. закомментированные строки ведь нужны только для человеков? по идее, их удаление из .config никак не должно повлиять ни на сборку, ни на последующие запуски make menuconfig. я правильно размышляю?
2. порядок незакомментированных строк тоже, вроде бы, никакого влияния на сборку/переконфигурацию не должен оказывать. я прав?
если я прав в обоих случаях, то достаточно подправить соответствующее место соответствующего мэйкфайла, и после записи .config-а просто убрать из него комментарии (и пустые строки), а оставшееся отсортировать.
и получится очень даже съедобное для vcs-а решение. а то нынче каждая правка .config-а вызывает такой идиотский патч, в котором обе ноги переломаешь, пока разберешься, что же, собственно, включалось/отключалось.
спасибо за дельную мысль. hook-и мне в голову не приходили. видимо потому, что использую в работе отнюдь не централизованную vcs. собственно поэтому именно hook-овое решение мне и не подходит.
но из твоей мысли (и уверенности) проистекла пара других мыслишек:
1. закомментированные строки ведь нужны только для человеков? по идее, их удаление из .config никак не должно повлиять ни на сборку, ни на последующие запуски make menuconfig. я правильно размышляю?
2. порядок незакомментированных строк тоже, вроде бы, никакого влияния на сборку/переконфигурацию не должен оказывать. я прав?
если я прав в обоих случаях, то достаточно подправить соответствующее место соответствующего мэйкфайла, и после записи .config-а просто убрать из него комментарии (и пустые строки), а оставшееся отсортировать.
и получится очень даже съедобное для vcs-а решение. а то нынче каждая правка .config-а вызывает такой идиотский патч, в котором обе ноги переломаешь, пока разберешься, что же, собственно, включалось/отключалось.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: порядок строк в .config при make menuconfig
Если цель - всего лишь понять, что именно было включено/выключено, уж проще написать скрипт, который будет сохранять "порядоченную" копию .config. Скажем, .config.human, ну и запускать make menuconfig из скрипта, который будет дёргать скрипт-причёсывальщик, после успешной работы menuconfig.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: порядок строк в .config при make menuconfig
serzh-z
ну, я рискнул обойтись без лишних сущностей, и сокращать/сортировать непосредственно .config.
вроде пока полёт нормальный.
спасибо.
ну, я рискнул обойтись без лишних сущностей, и сокращать/сортировать непосредственно .config.
вроде пока полёт нормальный.
спасибо.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: порядок строк в .config при make menuconfig
По идее, они и для make oldconfig (не строки => новая настройка => спросить у пользователя значение).
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: порядок строк в .config при make menuconfig
вроде как всё понимает и всем доволен:
Код: Выделить всё
$ 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
при сбоях форума см.блог
при сбоях форума см.блог