diff options
Diffstat (limited to 'package/config/patches')
17 files changed, 1597 insertions, 0 deletions
diff --git a/package/config/patches/01-kconfig-kernel-to-buildroot.patch b/package/config/patches/01-kconfig-kernel-to-buildroot.patch new file mode 100644 index 000000000..5fed731a4 --- /dev/null +++ b/package/config/patches/01-kconfig-kernel-to-buildroot.patch @@ -0,0 +1,299 @@ +--- + conf.c | 12 ++++++------ + confdata.c | 12 ++++-------- + gconf.c | 4 ++-- + gconf.glade | 2 +- + mconf.c | 37 ++++++++++++++++++------------------- + qconf.cc | 3 +-- + zconf.tab.c_shipped | 2 +- + zconf.y | 2 +- + 8 files changed, 34 insertions(+), 40 deletions(-) + +Index: config.clean/conf.c +=================================================================== +--- config.clean.orig/conf.c ++++ config.clean/conf.c +@@ -500,8 +500,8 @@ + if (sync_kconfig) { + if (stat(".config", &tmpstat)) { + fprintf(stderr, _("***\n" +- "*** You have not yet configured your kernel!\n" +- "*** (missing kernel .config file)\n" ++ "*** You have not yet configured Buildroot!\n" ++ "*** (missing .config file)\n" + "***\n" + "*** Please run some configurator (e.g. \"make oldconfig\" or\n" + "*** \"make menuconfig\" or \"make xconfig\").\n" +@@ -556,7 +556,7 @@ + name = getenv("KCONFIG_NOSILENTUPDATE"); + if (name && *name) { + fprintf(stderr, +- _("\n*** Kernel configuration requires explicit update.\n\n")); ++ _("\n*** Buildroot configuration requires explicit update.\n\n")); + return 1; + } + } +@@ -599,16 +599,16 @@ + * All other commands are only used to generate a config. + */ + if (conf_get_changed() && conf_write(NULL)) { +- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); ++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); + exit(1); + } + if (conf_write_autoconf()) { +- fprintf(stderr, _("\n*** Error during update of the kernel configuration.\n\n")); ++ fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n")); + return 1; + } + } else { + if (conf_write(NULL)) { +- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); ++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); + exit(1); + } + } +Index: config.clean/confdata.c +=================================================================== +--- config.clean.orig/confdata.c ++++ config.clean/confdata.c +@@ -436,7 +436,7 @@ + if (!out) + return 1; + +- sym = sym_lookup("KERNELVERSION", 0); ++ sym = sym_lookup("BR2_VERSION", 0); + sym_calc_value(sym); + time(&now); + env = getenv("KCONFIG_NOTIMESTAMP"); +@@ -445,10 +445,8 @@ + + fprintf(out, _("#\n" + "# Automatically generated make config: don't edit\n" +- "# Linux kernel version: %s\n" + "%s%s" + "#\n"), +- sym_get_string_value(sym), + use_timestamp ? "# " : "", + use_timestamp ? ctime(&now) : ""); + +@@ -692,22 +690,20 @@ + return 1; + } + +- sym = sym_lookup("KERNELVERSION", 0); ++ sym = sym_lookup("BR2_VERSION", 0); + sym_calc_value(sym); + time(&now); + fprintf(out, "#\n" + "# Automatically generated make config: don't edit\n" +- "# Linux kernel version: %s\n" + "# %s" + "#\n", +- sym_get_string_value(sym), ctime(&now)); ++ ctime(&now)); + fprintf(out_h, "/*\n" + " * Automatically generated C config: don't edit\n" +- " * Linux kernel version: %s\n" + " * %s" + " */\n" + "#define AUTOCONF_INCLUDED\n", +- sym_get_string_value(sym), ctime(&now)); ++ ctime(&now)); + + for_all_symbols(i, sym) { + sym_calc_value(sym); +Index: config.clean/gconf.c +=================================================================== +--- config.clean.orig/gconf.c ++++ config.clean/gconf.c +@@ -266,8 +266,8 @@ + /*"style", PANGO_STYLE_OBLIQUE, */ + NULL); + +- sprintf(title, _("Linux Kernel v%s Configuration"), +- getenv("KERNELVERSION")); ++ sprintf(title, _("Buildroot v%s Configuration"), ++ getenv("BR2_VERSION")); + gtk_window_set_title(GTK_WINDOW(main_wnd), title); + + gtk_widget_show(main_wnd); +Index: config.clean/gconf.glade +=================================================================== +--- config.clean.orig/gconf.glade ++++ config.clean/gconf.glade +@@ -5,7 +5,7 @@ + + <widget class="GtkWindow" id="window1"> + <property name="visible">True</property> +- <property name="title" translatable="yes">Gtk Kernel Configurator</property> ++ <property name="title" translatable="yes">Gtk Buildroot Configurator</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> +Index: config.clean/mconf.c +=================================================================== +--- config.clean.orig/mconf.c ++++ config.clean/mconf.c +@@ -25,10 +25,9 @@ + static const char mconf_readme[] = N_( + "Overview\n" + "--------\n" +-"Some kernel features may be built directly into the kernel.\n" +-"Some may be made into loadable runtime modules. Some features\n" ++"Some features may be built directly into Buildroot. Some features\n" + "may be completely removed altogether. There are also certain\n" +-"kernel parameters which are not really features, but must be\n" ++"parameters which are not really features, but must be\n" + "entered in as decimal or hexadecimal numbers or possibly text.\n" + "\n" + "Menu items beginning with following braces represent features that\n" +@@ -115,7 +114,7 @@ + "-----------------------------\n" + "Menuconfig supports the use of alternate configuration files for\n" + "those who, for various reasons, find it necessary to switch\n" +-"between different kernel configurations.\n" ++"between different configurations.\n" + "\n" + "At the end of the main menu you will find two options. One is\n" + "for saving the current configuration to a file of your choosing.\n" +@@ -148,7 +147,7 @@ + "\n" + "Optional personality available\n" + "------------------------------\n" +-"If you prefer to have all of the kernel options listed in a single\n" ++"If you prefer to have all of the options listed in a single\n" + "menu, rather than the default multimenu hierarchy, run the menuconfig\n" + "with MENUCONFIG_MODE environment variable set to single_menu. Example:\n" + "\n" +@@ -178,9 +177,9 @@ + "Arrow keys navigate the menu. " + "<Enter> selects submenus --->. " + "Highlighted letters are hotkeys. " +- "Pressing <Y> includes, <N> excludes, <M> modularizes features. " ++ "Pressing <Y> selectes a feature, while <N> will exclude a feature. " + "Press <Esc><Esc> to exit, <?> for Help, </> for Search. " +- "Legend: [*] built-in [ ] excluded <M> module < > module capable"), ++ "Legend: [*] feature is selected [ ] feature is excluded"), + radiolist_instructions[] = N_( + "Use the arrow keys to navigate this window or " + "press the hotkey of the item you wish to select " +@@ -200,18 +199,18 @@ + "This feature depends on another which has been configured as a module.\n" + "As a result, this feature will be built as a module."), + nohelp_text[] = N_( +- "There is no help available for this kernel option.\n"), ++ "There is no help available for this option.\n"), + load_config_text[] = N_( + "Enter the name of the configuration file you wish to load. " + "Accept the name shown to restore the configuration you " + "last retrieved. Leave blank to abort."), + load_config_help[] = N_( + "\n" +- "For various reasons, one may wish to keep several different kernel\n" ++ "For various reasons, one may wish to keep several different Buildroot\n" + "configurations available on a single machine.\n" + "\n" + "If you have saved a previous configuration in a file other than the\n" +- "kernel's default, entering the name of the file here will allow you\n" ++ "Buildroot's default, entering the name of the file here will allow you\n" + "to modify that configuration.\n" + "\n" + "If you are uncertain, then you have probably never used alternate\n" +@@ -221,7 +220,7 @@ + "as an alternate. Leave blank to abort."), + save_config_help[] = N_( + "\n" +- "For various reasons, one may wish to keep different kernel\n" ++ "For various reasons, one may wish to keep different Buildroot\n" + "configurations available on a single machine.\n" + "\n" + "Entering a file name here will allow you to later retrieve, modify\n" +@@ -364,10 +363,10 @@ + int size; + struct symbol *sym; + +- sym = sym_lookup("KERNELVERSION", 0); ++ sym = sym_lookup("BR2_VERSION", 0); + sym_calc_value(sym); + size = snprintf(menu_backtitle, sizeof(menu_backtitle), +- _("%s - Linux Kernel v%s Configuration"), ++ _("%s - buildroot v%s Configuration"), + config_filename, sym_get_string_value(sym)); + if (size >= sizeof(menu_backtitle)) + menu_backtitle[sizeof(menu_backtitle)-1] = '\0'; +@@ -894,7 +893,7 @@ + if (conf_get_changed()) + res = dialog_yesno(NULL, + _("Do you wish to save your " +- "new kernel configuration?\n" ++ "new Buildroot configuration?\n" + "<ESC><ESC> to continue."), + 6, 60); + else +@@ -906,20 +905,20 @@ + case 0: + if (conf_write(filename)) { + fprintf(stderr, _("\n\n" +- "Error during writing of the kernel configuration.\n" +- "Your kernel configuration changes were NOT saved." ++ "Error during writing of the Buildroot configuration.\n" ++ "Your Buildroot configuration changes were NOT saved." + "\n\n")); + return 1; + } + case -1: + printf(_("\n\n" +- "*** End of Linux kernel configuration.\n" +- "*** Execute 'make' to build the kernel or try 'make help'." ++ "*** End of Buildroot configuration.\n" ++ "*** Execute 'make' to build Buildroot or try 'make help'." + "\n\n")); + break; + default: + fprintf(stderr, _("\n\n" +- "Your kernel configuration changes were NOT saved." ++ "Your Buildroot configuration changes were NOT saved." + "\n\n")); + } + +Index: config.clean/qconf.cc +=================================================================== +--- config.clean.orig/qconf.cc ++++ config.clean/qconf.cc +@@ -1276,8 +1276,7 @@ + char title[256]; + + QWidget *d = configApp->desktop(); +- snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration"), +- getenv("KERNELVERSION")); ++ snprintf(title, sizeof(title), _("Buildroot Configuration")); + setCaption(title); + + width = configSettings->readNumEntry("/window width", d->width() - 64); +Index: config.clean/zconf.tab.c_shipped +=================================================================== +--- config.clean.orig/zconf.tab.c_shipped ++++ config.clean/zconf.tab.c_shipped +@@ -2259,7 +2259,7 @@ + modules_sym = sym_lookup(NULL, 0); + modules_sym->type = S_BOOLEAN; + modules_sym->flags |= SYMBOL_AUTO; +- rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); ++ rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL); + + #if YYDEBUG + if (getenv("ZCONF_DEBUG")) +Index: config.clean/zconf.y +=================================================================== +--- config.clean.orig/zconf.y ++++ config.clean/zconf.y +@@ -476,7 +476,7 @@ + modules_sym = sym_lookup(NULL, 0); + modules_sym->type = S_BOOLEAN; + modules_sym->flags |= SYMBOL_AUTO; +- rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); ++ rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL); + + #if YYDEBUG + if (getenv("ZCONF_DEBUG")) diff --git a/package/config/patches/02-cpp-comments-to-c-comments.patch b/package/config/patches/02-cpp-comments-to-c-comments.patch new file mode 100644 index 000000000..a801319e3 --- /dev/null +++ b/package/config/patches/02-cpp-comments-to-c-comments.patch @@ -0,0 +1,178 @@ +--- + expr.c | 42 +++++++++++++++++++++--------------------- + 1 file changed, 21 insertions(+), 21 deletions(-) + +Index: config.clean/expr.c +=================================================================== +--- config.clean.orig/expr.c ++++ config.clean/expr.c +@@ -331,7 +331,7 @@ + e->right.expr = expr_trans_bool(e->right.expr); + break; + case E_UNEQUAL: +- // FOO!=n -> FOO ++ /* FOO!=n -> FOO */ + if (e->left.sym->type == S_TRISTATE) { + if (e->right.sym == &symbol_no) { + e->type = E_SYMBOL; +@@ -380,19 +380,19 @@ + if (e1->type == E_EQUAL && e2->type == E_EQUAL && + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || + (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { +- // (a='y') || (a='m') -> (a!='n') ++ /* (a='y') || (a='m') -> (a!='n') */ + return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no); + } + if (e1->type == E_EQUAL && e2->type == E_EQUAL && + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { +- // (a='y') || (a='n') -> (a!='m') ++ /* (a='y') || (a='n') -> (a!='m') */ + return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod); + } + if (e1->type == E_EQUAL && e2->type == E_EQUAL && + ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { +- // (a='m') || (a='n') -> (a!='y') ++ /* (a='m') || (a='n') -> (a!='y') */ + return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes); + } + } +@@ -443,29 +443,29 @@ + + if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || + (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) +- // (a) && (a='y') -> (a='y') ++ /* (a) && (a='y') -> (a='y') */ + return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); + + if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || + (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) +- // (a) && (a!='n') -> (a) ++ /* (a) && (a!='n') -> (a) */ + return expr_alloc_symbol(sym1); + + if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || + (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) +- // (a) && (a!='m') -> (a='y') ++ /* (a) && (a!='m') -> (a='y') */ + return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); + + if (sym1->type == S_TRISTATE) { + if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) { +- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' ++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ + sym2 = e1->right.sym; + if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) + return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) + : expr_alloc_symbol(&symbol_no); + } + if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) { +- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' ++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ + sym2 = e2->right.sym; + if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) + return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) +@@ -474,19 +474,19 @@ + if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) +- // (a!='y') && (a!='n') -> (a='m') ++ /* (a!='y') && (a!='n') -> (a='m') */ + return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod); + + if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || + (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) +- // (a!='y') && (a!='m') -> (a='n') ++ /* (a!='y') && (a!='m') -> (a='n') */ + return expr_alloc_comp(E_EQUAL, sym1, &symbol_no); + + if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && + ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) +- // (a!='m') && (a!='n') -> (a='m') ++ /* (a!='m') && (a!='n') -> (a='m') */ + return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); + + if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || +@@ -579,7 +579,7 @@ + switch (e1->type) { + case E_OR: + expr_eliminate_dups2(e1->type, &e1, &e1); +- // (FOO || BAR) && (!FOO && !BAR) -> n ++ /* (FOO || BAR) && (!FOO && !BAR) -> n */ + tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); + tmp2 = expr_copy(e2); + tmp = expr_extract_eq_and(&tmp1, &tmp2); +@@ -594,7 +594,7 @@ + break; + case E_AND: + expr_eliminate_dups2(e1->type, &e1, &e1); +- // (FOO && BAR) || (!FOO || !BAR) -> y ++ /* (FOO && BAR) || (!FOO || !BAR) -> y */ + tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); + tmp2 = expr_copy(e2); + tmp = expr_extract_eq_or(&tmp1, &tmp2); +@@ -703,7 +703,7 @@ + case E_NOT: + switch (e->left.expr->type) { + case E_NOT: +- // !!a -> a ++ /* !!a -> a */ + tmp = e->left.expr->left.expr; + free(e->left.expr); + free(e); +@@ -712,14 +712,14 @@ + break; + case E_EQUAL: + case E_UNEQUAL: +- // !a='x' -> a!='x' ++ /* !a='x' -> a!='x' */ + tmp = e->left.expr; + free(e); + e = tmp; + e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL; + break; + case E_OR: +- // !(a || b) -> !a && !b ++ /* !(a || b) -> !a && !b */ + tmp = e->left.expr; + e->type = E_AND; + e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); +@@ -728,7 +728,7 @@ + e = expr_transform(e); + break; + case E_AND: +- // !(a && b) -> !a || !b ++ /* !(a && b) -> !a || !b */ + tmp = e->left.expr; + e->type = E_OR; + e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); +@@ -738,7 +738,7 @@ + break; + case E_SYMBOL: + if (e->left.expr->left.sym == &symbol_yes) { +- // !'y' -> 'n' ++ /* !'y' -> 'n' */ + tmp = e->left.expr; + free(e); + e = tmp; +@@ -747,7 +747,7 @@ + break; + } + if (e->left.expr->left.sym == &symbol_mod) { +- // !'m' -> 'm' ++ /* !'m' -> 'm' */ + tmp = e->left.expr; + free(e); + e = tmp; +@@ -756,7 +756,7 @@ + break; + } + if (e->left.expr->left.sym == &symbol_no) { +- // !'n' -> 'y' ++ /* !'n' -> 'y' */ + tmp = e->left.expr; + free(e); + e = tmp; diff --git a/package/config/patches/03-change-config-option-prefix.patch b/package/config/patches/03-change-config-option-prefix.patch new file mode 100644 index 000000000..a786078c6 --- /dev/null +++ b/package/config/patches/03-change-config-option-prefix.patch @@ -0,0 +1,176 @@ +--- + confdata.c | 57 +++++++++++++++++++++++++++------------------------------ + 1 file changed, 27 insertions(+), 30 deletions(-) + +Index: config.clean/confdata.c +=================================================================== +--- config.clean.orig/confdata.c ++++ config.clean/confdata.c +@@ -11,6 +11,7 @@ + #include <string.h> + #include <time.h> + #include <unistd.h> ++#include <libgen.h> + + #define LKC_DIRECT_LINK + #include "lkc.h" +@@ -21,7 +22,7 @@ + static const char *conf_filename; + static int conf_lineno, conf_warnings, conf_unsaved; + +-const char conf_defname[] = "arch/$ARCH/defconfig"; ++const char conf_defname[] = ".defconfig"; + + static void conf_warning(const char *fmt, ...) + { +@@ -36,7 +37,7 @@ + + const char *conf_get_configname(void) + { +- char *name = getenv("KCONFIG_CONFIG"); ++ char *name = getenv("BUILDROOT_CONFIG"); + + return name ? name : ".config"; + } +@@ -212,22 +213,22 @@ + sym = NULL; + switch (line[0]) { + case '#': +- if (memcmp(line + 2, "CONFIG_", 7)) ++ if (line[1]!=' ') + continue; +- p = strchr(line + 9, ' '); ++ p = strchr(line + 2, ' '); + if (!p) + continue; + *p++ = 0; + if (strncmp(p, "is not set", 10)) + continue; + if (def == S_DEF_USER) { +- sym = sym_find(line + 9); ++ sym = sym_find(line + 2); + if (!sym) { + sym_add_change_count(1); + break; + } + } else { +- sym = sym_lookup(line + 9, 0); ++ sym = sym_lookup(line + 2, 0); + if (sym->type == S_UNKNOWN) + sym->type = S_BOOLEAN; + } +@@ -244,12 +245,8 @@ + ; + } + break; +- case 'C': +- if (memcmp(line, "CONFIG_", 7)) { +- conf_warning("unexpected data"); +- continue; +- } +- p = strchr(line + 7, '='); ++ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': ++ p = strchr(line, '='); + if (!p) + continue; + *p++ = 0; +@@ -260,13 +257,13 @@ + *p2 = 0; + } + if (def == S_DEF_USER) { +- sym = sym_find(line + 7); ++ sym = sym_find(line); + if (!sym) { + sym_add_change_count(1); + break; + } + } else { +- sym = sym_lookup(line + 7, 0); ++ sym = sym_lookup(line, 0); + if (sym->type == S_UNKNOWN) + sym->type = S_OTHER; + } +@@ -480,19 +477,19 @@ + case S_TRISTATE: + switch (sym_get_tristate_value(sym)) { + case no: +- fprintf(out, "# CONFIG_%s is not set\n", sym->name); ++ fprintf(out, "# %s is not set\n", sym->name); + break; + case mod: +- fprintf(out, "CONFIG_%s=m\n", sym->name); ++ fprintf(out, "%s=m\n", sym->name); + break; + case yes: +- fprintf(out, "CONFIG_%s=y\n", sym->name); ++ fprintf(out, "%s=y\n", sym->name); + break; + } + break; + case S_STRING: + str = sym_get_string_value(sym); +- fprintf(out, "CONFIG_%s=\"", sym->name); ++ fprintf(out, "%s=\"", sym->name); + while (1) { + l = strcspn(str, "\"\\"); + if (l) { +@@ -508,12 +505,12 @@ + case S_HEX: + str = sym_get_string_value(sym); + if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); ++ fprintf(out, "%s=%s\n", sym->name, str); + break; + } + case S_INT: + str = sym_get_string_value(sym); +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); ++ fprintf(out, "%s=%s\n", sym->name, str); + break; + } + } +@@ -716,19 +713,19 @@ + case no: + break; + case mod: +- fprintf(out, "CONFIG_%s=m\n", sym->name); +- fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name); ++ fprintf(out, "%s=m\n", sym->name); ++ fprintf(out_h, "#define %s_MODULE 1\n", sym->name); + break; + case yes: +- fprintf(out, "CONFIG_%s=y\n", sym->name); +- fprintf(out_h, "#define CONFIG_%s 1\n", sym->name); ++ fprintf(out, "%s=y\n", sym->name); ++ fprintf(out_h, "#define %s 1\n", sym->name); + break; + } + break; + case S_STRING: + str = sym_get_string_value(sym); +- fprintf(out, "CONFIG_%s=\"", sym->name); +- fprintf(out_h, "#define CONFIG_%s \"", sym->name); ++ fprintf(out, "%s=\"", sym->name); ++ fprintf(out_h, "#define %s \"", sym->name); + while (1) { + l = strcspn(str, "\"\\"); + if (l) { +@@ -748,14 +745,14 @@ + case S_HEX: + str = sym_get_string_value(sym); + if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); +- fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str); ++ fprintf(out, "%s=%s\n", sym->name, str); ++ fprintf(out_h, "#define %s 0x%s\n", sym->name, str); + break; + } + case S_INT: + str = sym_get_string_value(sym); +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); +- fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str); ++ fprintf(out, "%s=%s\n", sym->name, str); ++ fprintf(out_h, "#define %s %s\n", sym->name, str); + break; + default: + break; diff --git a/package/config/patches/04-fedora-13-build-fix.patch b/package/config/patches/04-fedora-13-build-fix.patch new file mode 100644 index 000000000..4fa72df6e --- /dev/null +++ b/package/config/patches/04-fedora-13-build-fix.patch @@ -0,0 +1,17 @@ +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: config.clean/Makefile +=================================================================== +--- config.clean.orig/Makefile ++++ config.clean/Makefile +@@ -165,7 +165,7 @@ + HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl + HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK + +-HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` ++HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` -ldl + HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \ + -D LKC_DIRECT_LINK + diff --git a/package/config/patches/05-really-clean-everything.patch b/package/config/patches/05-really-clean-everything.patch new file mode 100644 index 000000000..c206f5582 --- /dev/null +++ b/package/config/patches/05-really-clean-everything.patch @@ -0,0 +1,28 @@ +--- + Makefile | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +Index: config.clean/Makefile +=================================================================== +--- config.clean.orig/Makefile ++++ config.clean/Makefile +@@ -142,10 +142,15 @@ + gconf-objs := gconf.o kconfig_load.o zconf.tab.o + endif + +-clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \ +- .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h +-clean-files += mconf qconf gconf +-clean-files += config.pot linux.pot ++clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \ ++ .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h ++clean-files += config.pot linux.pot ++clean-files += conf $(conf-objs) ++clean-files += mconf $(mconf-objs) ++clean-files += qconf qconf.o ++clean-files += gconf gconf.o ++clean-files += kconfig_load.o zconf.tab.o ++clean-files += $(kxgettext-objs) + + # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) + PHONY += $(obj)/dochecklxdialog diff --git a/package/config/patches/06-br-build-system-integration.patch b/package/config/patches/06-br-build-system-integration.patch new file mode 100644 index 000000000..1e340f3f8 --- /dev/null +++ b/package/config/patches/06-br-build-system-integration.patch @@ -0,0 +1,33 @@ +--- + Makefile | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +Index: config.clean/Makefile +=================================================================== +--- config.clean.orig/Makefile ++++ config.clean/Makefile +@@ -124,14 +124,23 @@ + ifeq ($(MAKECMDGOALS),menuconfig) + hostprogs-y += mconf + endif ++ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf) ++ hostprogs-y += mconf ++endif + + ifeq ($(MAKECMDGOALS),xconfig) + qconf-target := 1 + endif ++ifeq ($(findstring qconf,$(MAKECMDGOALS)),qconf) ++ qconf-target := 1 ++endif ++ + ifeq ($(MAKECMDGOALS),gconfig) + gconf-target := 1 + endif +- ++ifeq ($(findstring gconf,$(MAKECMDGOALS)),gconf) ++ gconf-target := 1 ++endif + + ifeq ($(qconf-target),1) + qconf-cxxobjs := qconf.o diff --git a/package/config/patches/07-minor-makefile-fixes.patch b/package/config/patches/07-minor-makefile-fixes.patch new file mode 100644 index 000000000..f0f68ee22 --- /dev/null +++ b/package/config/patches/07-minor-makefile-fixes.patch @@ -0,0 +1,26 @@ +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: config.clean/Makefile +=================================================================== +--- config.clean.orig/Makefile ++++ config.clean/Makefile +@@ -83,7 +83,7 @@ + @echo ' xconfig - Update current config utilising a QT based front-end' + @echo ' gconfig - Update current config utilising a GTK based front-end' + @echo ' oldconfig - Update current config utilising a provided .config as base' +- @echo ' silentoldconfig - Same as oldconfig, but quietly' ++ @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps' + @echo ' randconfig - New config with random answer to all options' + @echo ' defconfig - New config with default answer to all options' + @echo ' allmodconfig - New config selecting modules when possible' +@@ -104,7 +104,7 @@ + # =========================================================================== + # Shared Makefile for the various kconfig executables: + # conf: Used for defconfig, oldconfig and related targets +-# mconf: Used for the mconfig target. ++# mconf: Used for the menuconfig target + # Utilizes the lxdialog package + # qconf: Used for the xconfig target + # Based on QT which needs to be installed to compile it diff --git a/package/config/patches/08-make-write-deps.patch b/package/config/patches/08-make-write-deps.patch new file mode 100644 index 000000000..b10413485 --- /dev/null +++ b/package/config/patches/08-make-write-deps.patch @@ -0,0 +1,139 @@ +--- + util.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 116 insertions(+), 1 deletion(-) + +Index: config.clean/util.c +=================================================================== +--- config.clean.orig/util.c ++++ config.clean/util.c +@@ -26,6 +26,121 @@ + return file; + } + ++static char* br2_symbol_printer(const char * const in) ++{ ++ ssize_t i, j, len = strlen(in); ++ char *ret; ++ if (len < 1) ++ return NULL; ++ ret = malloc(len); ++ if (!ret) { ++ printf("Out of memory!"); ++ exit(1); ++ } ++ memset(ret, 0, len); ++ i = j = 0; ++ if (strncmp("BR2_", in, 4) == 0) ++ i += 4; ++ if (strncmp("PACKAGE_", in + i, 8) == 0) ++ i += 8; ++ else if (strncmp("TARGET_", in + i, 7) == 0) ++ i += 7; ++ while (i <= len) ++ ret[j++] = tolower(in[i++]); ++ return ret; ++} ++ ++/* write dependencies of the infividual config-symbols */ ++static int write_make_deps(const char *name) ++{ ++ char *str; ++ char dir[PATH_MAX+1], buf[PATH_MAX+1], buf2[PATH_MAX+1]; ++ struct menu *menu; ++ struct symbol *sym; ++ struct property *prop, *p; ++ unsigned done; ++ const char * const name_tmp = "..make.deps.tmp"; ++ FILE *out; ++ if (!name) ++ name = ".auto.deps"; ++ ++ strcpy(dir, conf_get_configname()); ++ str = strrchr(dir, '/'); ++ if (str) ++ str[1] = 0; ++ else ++ dir[0] = 0; ++ ++ sprintf(buf, "%s%s", dir, name_tmp); ++ out = fopen(buf, "w"); ++ if (!out) ++ return 1; ++ fprintf(out, "# ATTENTION! This does not handle 'depends', just 'select'! \n" ++ "# See package/config/util.c write_make_deps()\n#\n"); ++ menu = &rootmenu;//rootmenu.list; ++ while (menu) { ++ sym = menu->sym; ++ if (!sym) { ++ if (!menu_is_visible(menu)) ++ goto next; ++ } else if (!(sym->flags & SYMBOL_CHOICE)) { ++ sym_calc_value(sym); ++ if (sym->type == S_BOOLEAN ++ && sym_get_tristate_value(sym) != no) { ++ done = 0; ++ for_all_prompts(sym, prop) { ++ struct expr *e; ++//printf("\nname=%s\n", sym->name); ++ for_all_properties(sym, p, P_SELECT) { ++ e = p->expr; ++ if (e && e->left.sym->name) { ++ if (!done) { ++ fprintf(out, "%s: $(BASE_TARGETS)", br2_symbol_printer(sym->name)); ++ done = 1; ++ } ++//printf("SELECTS %s\n",e->left.sym->name); ++ fprintf(out, " %s",br2_symbol_printer(e->left.sym->name)); ++ } ++ } ++ if (done) ++ fprintf(out, "\n"); ++#if 0 ++ e = sym->rev_dep.expr; ++ if (e && e->type == E_SYMBOL ++ && e->left.sym->name) { ++ fprintf(out, "%s: %s", br2_symbol_printer(e->left.sym->name), ++ br2_symbol_printer(sym->name)); ++printf("%s is Selected BY: %s", sym->name, e->left.sym->name); ++ } ++#endif ++ } ++ } ++ } ++next: ++ if (menu->list) { ++ menu = menu->list; ++ continue; ++ } ++ if (menu->next) ++ menu = menu->next; ++ else while ((menu = menu->parent)) { ++ if (menu->next) { ++ menu = menu->next; ++ break; ++ } ++ } ++ } ++ fclose(out); ++ sprintf(buf2, "%s%s", dir, name); ++ rename(buf, buf2); ++ printf(_("#\n" ++ "# make dependencies written to %s\n" ++ "# ATTENTION buildroot devels!\n" ++ "# See top of this file before playing with this auto-preprequisites!\n" ++ "#\n"), name); ++ return 0; ++} ++ + /* write a dependency file as used by kbuild to track dependencies */ + int file_write_dep(const char *name) + { +@@ -68,7 +183,7 @@ + fprintf(out, "\n$(deps_config): ;\n"); + fclose(out); + rename("..config.tmp", name); +- return 0; ++ return write_make_deps(NULL); + } + + diff --git a/package/config/patches/09-implement-kconfig-probability.patch b/package/config/patches/09-implement-kconfig-probability.patch new file mode 100644 index 000000000..7adfc0b17 --- /dev/null +++ b/package/config/patches/09-implement-kconfig-probability.patch @@ -0,0 +1,43 @@ +--- + confdata.c | 21 +++++++++++++++++++-- + 1 file changed, 19 insertions(+), 2 deletions(-) + +Index: config.clean/confdata.c +=================================================================== +--- config.clean.orig/confdata.c ++++ config.clean/confdata.c +@@ -812,7 +812,16 @@ + struct symbol *sym, *csym; + struct property *prop; + struct expr *e; +- int i, cnt, def; ++ int i, cnt, def, prob = 50; ++ ++ if (mode == def_random) { ++ char *endp, *env = getenv("KCONFIG_PROBABILITY"); ++ if (env && *env) { ++ int tmp = (int)strtol(env, &endp, 10); ++ if (*endp == '\0' && tmp >= 0 && tmp <= 100) ++ prob = tmp; ++ } ++ } + + for_all_symbols(i, sym) { + if (sym_has_value(sym)) +@@ -831,7 +840,15 @@ + sym->def[S_DEF_USER].tri = no; + break; + case def_random: +- sym->def[S_DEF_USER].tri = (tristate)(rand() % 3); ++ cnt = (rand() % 100) - (100 - prob); ++ if (cnt < 0) ++ sym->def[S_DEF_USER].tri = no; ++ else ++ if ((sym_get_type(sym) == S_TRISTATE) ++ && (cnt > prob/2)) ++ sym->def[S_DEF_USER].tri = mod; ++ else ++ sym->def[S_DEF_USER].tri = yes; + break; + default: + continue; diff --git a/package/config/patches/10-br-build-system.patch b/package/config/patches/10-br-build-system.patch new file mode 100644 index 000000000..85125e519 --- /dev/null +++ b/package/config/patches/10-br-build-system.patch @@ -0,0 +1,80 @@ +--- + Makefile.br | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + foo.h | 12 ++++++++++++ + 2 files changed, 65 insertions(+) + +Index: config/Makefile.br +=================================================================== +--- /dev/null ++++ config/Makefile.br +@@ -0,0 +1,53 @@ ++src := . ++top_srcdir=../../ ++top_builddir=../../ ++srctree := . ++obj ?= . ++ ++include Makefile ++#HOSTCFLAGS+=-Dinline="" -include foo.h ++-include $(obj)/.depend ++$(obj)/.depend: $(wildcard *.h *.c) ++ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) -MM *.c > $@ 2>/dev/null || : ++ ++__hostprogs := $(sort $(hostprogs-y) $(hostprogs-m)) ++host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m))) ++host-cmulti := $(foreach m,$(__hostprogs),\ ++ $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m)))) ++host-cxxmulti := $(foreach m,$(__hostprogs),\ ++ $(if $($(m)-cxxobjs),$(m),$(if $($(m)-objs),))) ++host-cobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-objs)))) ++host-cxxobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-cxxobjs)))) ++ ++HOST_EXTRACFLAGS += -I$(obj) ++ ++$(host-csingle): %: %.c ++ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< $(HOST_LOADLIBES) -o $(obj)/$@ ++ ++$(host-cmulti): %: $(host-cobjs) $(host-cshlib) ++ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs)) $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ ++ ++$(host-cxxmulti): %: $(host-cxxobjs) $(host-cobjs) $(host-cshlib) ++ $(HOSTCXX) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs) $($(@F)-cxxobjs)) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ ++ ++$(obj)/%.o: %.c ++ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ ++ ++$(obj)/%.o: $(obj)/%.c ++ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ ++ ++$(obj)/%.o: %.cc ++ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$(@F)) -c $< -o $@ ++ ++$(obj)/%:: $(src)/%_shipped ++ $(Q)cat $< > $@ ++ ++clean: ++ $(Q)rm -f $(addprefix $(obj)/,$(clean-files)) ++distclean: clean ++ $(Q)rm -f $(addprefix $(obj)/,$(lxdialog) $(conf-objs) $(mconf-objs) $(kxgettext-objs) \ ++ $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \ ++ mconf .depend) ++ ++FORCE: ++.PHONY: FORCE clean distclean +Index: config/foo.h +=================================================================== +--- /dev/null ++++ config/foo.h +@@ -0,0 +1,12 @@ ++#ifndef __KCONFIG_FOO_H ++#define __KCONFIG_FOO_H ++ ++#ifndef __APPLE__ ++#include <features.h> ++#endif ++#include <limits.h> ++ ++#ifndef PATH_MAX ++#define PATH_MAX 1024 ++#endif ++#endif /* __KCONFIG_FOO_H */ diff --git a/package/config/patches/11-use-mktemp-for-lxdialog.patch b/package/config/patches/11-use-mktemp-for-lxdialog.patch new file mode 100644 index 000000000..16fd8bf18 --- /dev/null +++ b/package/config/patches/11-use-mktemp-for-lxdialog.patch @@ -0,0 +1,17 @@ +--- + lxdialog/check-lxdialog.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: config.clean/lxdialog/check-lxdialog.sh +=================================================================== +--- config.clean.orig/lxdialog/check-lxdialog.sh ++++ config.clean/lxdialog/check-lxdialog.sh +@@ -31,7 +31,7 @@ + } + + # Temp file, try to clean up after us +-tmp=.lxdialog.tmp ++tmp=$(mktemp) + trap "rm -f $tmp" 0 1 2 3 15 + + # Check if we can link to ncurses diff --git a/package/config/patches/12-fix-glade-file-path.patch b/package/config/patches/12-fix-glade-file-path.patch new file mode 100644 index 000000000..233809aaf --- /dev/null +++ b/package/config/patches/12-fix-glade-file-path.patch @@ -0,0 +1,17 @@ +--- + gconf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: config.clean/gconf.c +=================================================================== +--- config.clean.orig/gconf.c ++++ config.clean/gconf.c +@@ -1576,7 +1576,7 @@ + /* Determine GUI path */ + env = getenv(SRCTREE); + if (env) +- glade_file = g_strconcat(env, "/scripts/kconfig/gconf.glade", NULL); ++ glade_file = g_strconcat(env, "/package/config/gconf.glade", NULL); + else if (av[0][0] == '/') + glade_file = g_strconcat(av[0], ".glade", NULL); + else diff --git a/package/config/patches/13-use-conf-write-autoconf.patch b/package/config/patches/13-use-conf-write-autoconf.patch new file mode 100644 index 000000000..826852df4 --- /dev/null +++ b/package/config/patches/13-use-conf-write-autoconf.patch @@ -0,0 +1,53 @@ +--- + conf.c | 4 ++++ + mconf.c | 2 +- + qconf.cc | 2 ++ + 3 files changed, 7 insertions(+), 1 deletion(-) + +Index: config.clean/conf.c +=================================================================== +--- config.clean.orig/conf.c ++++ config.clean/conf.c +@@ -611,6 +611,10 @@ + fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); + exit(1); + } ++ if (conf_write_autoconf()) { ++ fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n")); ++ return 1; ++ } + } + return 0; + } +Index: config.clean/mconf.c +=================================================================== +--- config.clean.orig/mconf.c ++++ config.clean/mconf.c +@@ -922,6 +922,6 @@ + "\n\n")); + } + +- return 0; ++ return conf_write_autoconf(); + } + +Index: config.clean/qconf.cc +=================================================================== +--- config.clean.orig/qconf.cc ++++ config.clean/qconf.cc +@@ -1608,6 +1608,7 @@ + { + if (!conf_get_changed()) { + e->accept(); ++ conf_write_autoconf(); + return; + } + QMessageBox mb("qconf", _("Save configuration?"), QMessageBox::Warning, +@@ -1618,6 +1619,7 @@ + switch (mb.exec()) { + case QMessageBox::Yes: + conf_write(NULL); ++ conf_write_autoconf(); + case QMessageBox::No: + e->accept(); + break; diff --git a/package/config/patches/14-support-out-of-tree-config.patch b/package/config/patches/14-support-out-of-tree-config.patch new file mode 100644 index 000000000..4aae0c154 --- /dev/null +++ b/package/config/patches/14-support-out-of-tree-config.patch @@ -0,0 +1,253 @@ +--- + conf.c | 8 +++--- + confdata.c | 71 ++++++++++++++++++++++++++++++++++++++++++++----------------- + lkc.h | 1 + util.c | 22 ++++++++++++++---- + 4 files changed, 74 insertions(+), 28 deletions(-) + +Index: config.clean/conf.c +=================================================================== +--- config.clean.orig/conf.c ++++ config.clean/conf.c +@@ -496,16 +496,16 @@ + } + name = av[optind]; + conf_parse(name); +- //zconfdump(stdout); + if (sync_kconfig) { +- if (stat(".config", &tmpstat)) { ++ name = conf_get_configname(); ++ if (stat(name, &tmpstat)) { + fprintf(stderr, _("***\n" + "*** You have not yet configured Buildroot!\n" +- "*** (missing .config file)\n" ++ "*** (missing .config file \"%s\")\n" + "***\n" + "*** Please run some configurator (e.g. \"make oldconfig\" or\n" + "*** \"make menuconfig\" or \"make xconfig\").\n" +- "***\n")); ++ "***\n"), name); + exit(1); + } + } +Index: config.clean/confdata.c +=================================================================== +--- config.clean.orig/confdata.c ++++ config.clean/confdata.c +@@ -42,6 +42,11 @@ + return name ? name : ".config"; + } + ++const char *conf_get_autoconfig_name(void) ++{ ++ return getenv("KCONFIG_AUTOCONFIG"); ++} ++ + static char *conf_expand_value(const char *in) + { + struct symbol *sym; +@@ -399,6 +404,9 @@ + int use_timestamp = 1; + char *env; + ++ if (!name) ++ name = conf_get_configname(); ++ + dirname[0] = 0; + if (name && name[0]) { + struct stat st; +@@ -550,19 +558,31 @@ + + int conf_split_config(void) + { +- char *name, path[128]; ++ const char *name; ++ char path[128]; ++ char *opwd, *dir, *_name; + char *s, *d, c; + struct symbol *sym; + struct stat sb; + int res, i, fd; + +- name = getenv("KCONFIG_AUTOCONFIG"); +- if (!name) +- name = "include/config/auto.conf"; ++ name = conf_get_autoconfig_name(); + conf_read_simple(name, S_DEF_AUTO); + +- if (chdir("include/config")) ++ opwd = malloc(256); ++ _name = strdup(name); ++ if (opwd == NULL || _name == NULL) + return 1; ++ opwd = getcwd(opwd, 256); ++ dir = dirname(_name); ++ if (dir == NULL) { ++ res = 1; ++ goto err; ++ } ++ if (chdir(dir)) { ++ res = 1; ++ goto err; ++ } + + res = 0; + for_all_symbols(i, sym) { +@@ -655,9 +675,11 @@ + close(fd); + } + out: +- if (chdir("../..")) +- return 1; +- ++ if (chdir(opwd)) ++ res = 1; ++err: ++ free(opwd); ++ free(_name); + return res; + } + +@@ -665,23 +687,35 @@ + { + struct symbol *sym; + const char *str; +- char *name; ++ const char *name; + FILE *out, *out_h; + time_t now; + int i, l; ++ char dir[PATH_MAX+1], buf[PATH_MAX+1]; ++ char *s; ++ ++ strcpy(dir, conf_get_configname()); ++ s = strrchr(dir, '/'); ++ if (s) ++ s[1] = 0; ++ else ++ dir[0] = 0; + + sym_clear_all_valid(); + +- file_write_dep("include/config/auto.conf.cmd"); ++ sprintf(buf, "%s.config.cmd", dir); ++ file_write_dep(buf); + + if (conf_split_config()) + return 1; + +- out = fopen(".tmpconfig", "w"); ++ sprintf(buf, "%s.tmpconfig", dir); ++ out = fopen(buf, "w"); + if (!out) + return 1; + +- out_h = fopen(".tmpconfig.h", "w"); ++ sprintf(buf, "%s.tmpconfig.h", dir); ++ out_h = fopen(buf, "w"); + if (!out_h) { + fclose(out); + return 1; +@@ -698,8 +732,7 @@ + fprintf(out_h, "/*\n" + " * Automatically generated C config: don't edit\n" + " * %s" +- " */\n" +- "#define AUTOCONF_INCLUDED\n", ++ " */\n", + ctime(&now)); + + for_all_symbols(i, sym) { +@@ -764,16 +797,16 @@ + name = getenv("KCONFIG_AUTOHEADER"); + if (!name) + name = "include/linux/autoconf.h"; +- if (rename(".tmpconfig.h", name)) ++ sprintf(buf, "%s.tmpconfig.h", dir); ++ if (rename(buf, name)) + return 1; +- name = getenv("KCONFIG_AUTOCONFIG"); +- if (!name) +- name = "include/config/auto.conf"; ++ name = conf_get_autoconfig_name(); + /* + * This must be the last step, kbuild has a dependency on auto.conf + * and this marks the successful completion of the previous steps. + */ +- if (rename(".tmpconfig", name)) ++ sprintf(buf, "%s.tmpconfig", dir); ++ if (rename(buf, name)) + return 1; + + return 0; +Index: config.clean/lkc.h +=================================================================== +--- config.clean.orig/lkc.h ++++ config.clean/lkc.h +@@ -74,6 +74,7 @@ + + /* confdata.c */ + const char *conf_get_configname(void); ++const char *conf_get_autoconfig_name(void); + char *conf_get_default_confname(void); + void sym_set_change_count(int count); + void sym_add_change_count(int count); +Index: config.clean/util.c +=================================================================== +--- config.clean.orig/util.c ++++ config.clean/util.c +@@ -144,6 +144,8 @@ + /* write a dependency file as used by kbuild to track dependencies */ + int file_write_dep(const char *name) + { ++ char *str; ++ char buf[PATH_MAX+1], buf2[PATH_MAX+1], dir[PATH_MAX+1]; + struct symbol *sym, *env_sym; + struct expr *e; + struct file *file; +@@ -151,7 +153,16 @@ + + if (!name) + name = ".kconfig.d"; +- out = fopen("..config.tmp", "w"); ++ ++ strcpy(dir, conf_get_configname()); ++ str = strrchr(dir, '/'); ++ if (str) ++ str[1] = 0; ++ else ++ dir[0] = 0; ++ ++ sprintf(buf, "%s..config.tmp", dir); ++ out = fopen(buf, "w"); + if (!out) + return 1; + fprintf(out, "deps_config := \\\n"); +@@ -161,8 +172,8 @@ + else + fprintf(out, "\t%s\n", file->name); + } +- fprintf(out, "\ninclude/config/auto.conf: \\\n" +- "\t$(deps_config)\n\n"); ++ fprintf(out, "\n%s: \\\n" ++ "\t$(deps_config)\n\n", conf_get_autoconfig_name()); + + expr_list_for_each_sym(sym_env_list, e, sym) { + struct property *prop; +@@ -176,13 +187,14 @@ + if (!value) + value = ""; + fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value); +- fprintf(out, "include/config/auto.conf: FORCE\n"); ++ fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name()); + fprintf(out, "endif\n"); + } + + fprintf(out, "\n$(deps_config): ;\n"); + fclose(out); +- rename("..config.tmp", name); ++ sprintf(buf2, "%s%s", dir, name); ++ rename(buf, buf2); + return write_make_deps(NULL); + } + diff --git a/package/config/patches/15-misc-qconf-changes.patch b/package/config/patches/15-misc-qconf-changes.patch new file mode 100644 index 000000000..683d518f1 --- /dev/null +++ b/package/config/patches/15-misc-qconf-changes.patch @@ -0,0 +1,175 @@ +--- + qconf.cc | 48 +++++++++++++++++++++++++++--------------------- + 1 file changed, 27 insertions(+), 21 deletions(-) + +Index: config.clean/qconf.cc +=================================================================== +--- config.clean.orig/qconf.cc ++++ config.clean/qconf.cc +@@ -5,6 +5,7 @@ + + #include <qapplication.h> + #include <qmainwindow.h> ++#include <qdesktopwidget.h> + #include <qtoolbar.h> + #include <qlayout.h> + #include <qvbox.h> +@@ -297,10 +298,10 @@ + void ConfigLineEdit::keyPressEvent(QKeyEvent* e) + { + switch (e->key()) { +- case Key_Escape: ++ case Qt::Key_Escape: + break; +- case Key_Return: +- case Key_Enter: ++ case Qt::Key_Return: ++ case Qt::Key_Enter: + sym_set_string_value(item->menu->sym, text().latin1()); + parent()->updateList(item); + break; +@@ -639,7 +640,7 @@ + struct menu *menu; + enum prop_type type; + +- if (ev->key() == Key_Escape && mode != fullMode && mode != listMode) { ++ if (ev->key() == Qt::Key_Escape && mode != fullMode && mode != listMode) { + emit parentSelected(); + ev->accept(); + return; +@@ -652,8 +653,8 @@ + item = (ConfigItem*)i; + + switch (ev->key()) { +- case Key_Return: +- case Key_Enter: ++ case Qt::Key_Return: ++ case Qt::Key_Enter: + if (item->goParent) { + emit parentSelected(); + break; +@@ -667,16 +668,16 @@ + emit menuSelected(menu); + break; + } +- case Key_Space: ++ case Qt::Key_Space: + changeValue(item); + break; +- case Key_N: ++ case Qt::Key_N: + setValue(item, no); + break; +- case Key_M: ++ case Qt::Key_M: + setValue(item, mod); + break; +- case Key_Y: ++ case Qt::Key_Y: + setValue(item, yes); + break; + default: +@@ -920,7 +921,7 @@ + } + + ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) +- : Parent(parent, name), menu(0), sym(0) ++ : Parent(parent, name), sym(0), menu(0) + { + if (name) { + configSettings->beginGroup(name); +@@ -1199,7 +1200,7 @@ + layout1->addLayout(layout2); + + split = new QSplitter(this); +- split->setOrientation(QSplitter::Vertical); ++ split->setOrientation(Qt::Vertical); + list = new ConfigView(split, name); + list->list->mode = listMode; + info = new ConfigInfoView(split, name); +@@ -1275,7 +1276,7 @@ + int x, y, width, height; + char title[256]; + +- QWidget *d = configApp->desktop(); ++ QDesktopWidget *d = configApp->desktop(); + snprintf(title, sizeof(title), _("Buildroot Configuration")); + setCaption(title); + +@@ -1289,14 +1290,14 @@ + move(x, y); + + split1 = new QSplitter(this); +- split1->setOrientation(QSplitter::Horizontal); ++ split1->setOrientation(Qt::Horizontal); + setCentralWidget(split1); + + menuView = new ConfigView(split1, "menu"); + menuList = menuView->list; + + split2 = new QSplitter(split1); +- split2->setOrientation(QSplitter::Vertical); ++ split2->setOrientation(Qt::Vertical); + + // create config tree + configView = new ConfigView(split2, "config"); +@@ -1314,18 +1315,18 @@ + backAction = new QAction("Back", QPixmap(xpm_back), _("Back"), 0, this); + connect(backAction, SIGNAL(activated()), SLOT(goBack())); + backAction->setEnabled(FALSE); +- QAction *quitAction = new QAction("Quit", _("&Quit"), CTRL+Key_Q, this); ++ QAction *quitAction = new QAction("Quit", _("&Quit"), Qt::CTRL + Qt::Key_Q, this); + connect(quitAction, SIGNAL(activated()), SLOT(close())); +- QAction *loadAction = new QAction("Load", QPixmap(xpm_load), _("&Load"), CTRL+Key_L, this); ++ QAction *loadAction = new QAction("Load", QPixmap(xpm_load), _("&Load"), Qt::CTRL + Qt::Key_L, this); + connect(loadAction, SIGNAL(activated()), SLOT(loadConfig())); +- saveAction = new QAction("Save", QPixmap(xpm_save), _("&Save"), CTRL+Key_S, this); ++ saveAction = new QAction("Save", QPixmap(xpm_save), _("&Save"), Qt::CTRL + Qt::Key_S, this); + connect(saveAction, SIGNAL(activated()), SLOT(saveConfig())); + conf_set_changed_callback(conf_changed); + // Set saveAction's initial state + conf_changed(); + QAction *saveAsAction = new QAction("Save As...", _("Save &As..."), 0, this); + connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs())); +- QAction *searchAction = new QAction("Find", _("&Find"), CTRL+Key_F, this); ++ QAction *searchAction = new QAction("Find", _("&Find"), Qt::CTRL + Qt::Key_F, this); + connect(searchAction, SIGNAL(activated()), SLOT(searchConfig())); + QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), _("Single View"), 0, this); + connect(singleViewAction, SIGNAL(activated()), SLOT(showSingleView())); +@@ -1446,7 +1447,7 @@ + + void ConfigMainWindow::loadConfig(void) + { +- QString s = QFileDialog::getOpenFileName(".config", NULL, this); ++ QString s = QFileDialog::getOpenFileName(conf_get_configname(), NULL, this); + if (s.isNull()) + return; + if (conf_read(QFile::encodeName(s))) +@@ -1462,7 +1463,7 @@ + + void ConfigMainWindow::saveConfigAs(void) + { +- QString s = QFileDialog::getSaveFileName(".config", NULL, this); ++ QString s = QFileDialog::getSaveFileName(conf_get_configname(), NULL, this); + if (s.isNull()) + return; + if (conf_write(QFile::encodeName(s))) +@@ -1523,6 +1524,8 @@ + case fullMode: + list = configList; + break; ++ default: ++ break; + } + + if (list) { +@@ -1674,6 +1677,9 @@ + case fullMode : + entry = "full"; + break; ++ ++ default: ++ break; + } + configSettings->writeEntry("/listMode", entry); + diff --git a/package/config/patches/16-non-identified-changes.patch b/package/config/patches/16-non-identified-changes.patch new file mode 100644 index 000000000..3a4bae5d9 --- /dev/null +++ b/package/config/patches/16-non-identified-changes.patch @@ -0,0 +1,47 @@ +--- + lxdialog/checklist.c | 3 ++- + mconf.c | 10 +++++++++- + 2 files changed, 11 insertions(+), 2 deletions(-) + +Index: config.clean/lxdialog/checklist.c +=================================================================== +--- config.clean.orig/lxdialog/checklist.c ++++ config.clean/lxdialog/checklist.c +@@ -41,7 +41,8 @@ + wmove(win, choice, check_x); + wattrset(win, selected ? dlg.check_selected.atr + : dlg.check.atr); +- wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' '); ++ if (!item_is_tag(':')) ++ wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' '); + + wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr); + mvwaddch(win, choice, item_x, item_str()[0]); +Index: config.clean/mconf.c +=================================================================== +--- config.clean.orig/mconf.c ++++ config.clean/mconf.c +@@ -731,7 +731,12 @@ + for (child = menu->list; child; child = child->next) { + if (!menu_is_visible(child)) + continue; +- item_make("%s", _(menu_get_prompt(child))); ++ if (child->sym) ++ item_make("%s", _(menu_get_prompt(child))); ++ else { ++ item_make("*** %s ***", _(menu_get_prompt(child))); ++ item_set_tag(':'); ++ } + item_set_data(child); + if (child->sym == active) + item_set_selected(1); +@@ -747,6 +752,9 @@ + case 0: + if (selected) { + child = item_data(); ++ if (!child->sym) ++ break; ++ + sym_set_tristate_value(child->sym, yes); + } + return; diff --git a/package/config/patches/series b/package/config/patches/series new file mode 100644 index 000000000..d5ab94c7f --- /dev/null +++ b/package/config/patches/series @@ -0,0 +1,16 @@ +01-kconfig-kernel-to-buildroot.patch +02-cpp-comments-to-c-comments.patch +03-change-config-option-prefix.patch +04-fedora-13-build-fix.patch +05-really-clean-everything.patch +06-br-build-system-integration.patch +07-minor-makefile-fixes.patch +08-make-write-deps.patch +09-implement-kconfig-probability.patch +10-br-build-system.patch +11-use-mktemp-for-lxdialog.patch +12-fix-glade-file-path.patch +13-use-conf-write-autoconf.patch +14-support-out-of-tree-config.patch +15-misc-qconf-changes.patch +16-non-identified-changes.patch |