diff options
author | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-06-04 18:31:57 +0000 |
---|---|---|
committer | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-06-04 18:31:57 +0000 |
commit | 09e967c2d732783b2579e4e120cd9b608404cb00 (patch) | |
tree | 8d2783a6a7e33608c6012efd6a88b8f5694df81d /mdk-stage1/insmod-modutils/util/config.c | |
parent | 18fcff49d3c836697d3b75a3d01d31c700e69974 (diff) | |
download | drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.gz drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.bz2 drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.xz drakx-09e967c2d732783b2579e4e120cd9b608404cb00.zip |
Merge from R9_0-AMD64, most notably:
- AMD64 support to insmod-busybox, minilibc, et al.
- Sync with insmod-modutils 2.4.19 something but everyone should use
dietlibc nowadays
- Factor out compilation and prefix with $(DIET) for dietlibc builds
- 64-bit & varargs fixes
Diffstat (limited to 'mdk-stage1/insmod-modutils/util/config.c')
-rw-r--r-- | mdk-stage1/insmod-modutils/util/config.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/mdk-stage1/insmod-modutils/util/config.c b/mdk-stage1/insmod-modutils/util/config.c index a860920f6..7568d955f 100644 --- a/mdk-stage1/insmod-modutils/util/config.c +++ b/mdk-stage1/insmod-modutils/util/config.c @@ -116,6 +116,8 @@ struct gen_files gen_file[] = { {"isapnpmap", NULL, 0}, {"usbmap", NULL, 0}, {"parportmap", NULL, 0}, + {"ieee1394map", NULL, 0}, + {"pnpbiosmap", NULL, 0}, {"dep", NULL, 0}, }; @@ -491,7 +493,7 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in int state[MAX_LEVEL + 1]; /* nested "if" */ int level = 0; char buf[3000]; - char tmpline[100]; + char tmpline[PATH_MAX]; char **pathp; char *envpath; char *version; @@ -692,6 +694,20 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in if (all && aliaslist[0]) n_aliases = build_list(aliaslist, &aliases, version, 0); + /* + * Build predef postinstalls + */ + if (all && post_install[0]) + for (i=0 ; post_install[i] ; i++ ) + decode_exec(xstrdup(post_install[i]), EXEC_POST_INSTALL); + + /* + * Build predef preremoves + */ + if (all && pre_remove[0]) + for (i=0 ; pre_remove[i] ; i++ ) + decode_exec(xstrdup(pre_remove[i]), EXEC_PRE_REMOVE); + /* Order and priority is now: (MODPATH + modules.conf) || (predefs + modules.conf) */ if ((envpath = getenv("MODPATH")) != NULL && !safemode) { size_t len; @@ -1073,7 +1089,7 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in arg2 = next_word(arg); meta_expand(arg2, &g, NULL, version, ME_ALL); snprintf(env, sizeof(env), "%s=%s", arg, (g.pathc ? g.pathv[0] : "")); - putenv(env); + putenv(xstrdup(env)); one_err = 0; } @@ -1108,7 +1124,7 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in /* * prune */ - else if (all && !assgn && strcmp(parm, "prune") == 0) { + else if (!assgn && strcmp(parm, "prune") == 0) { decode_list(&n_prunelist, &prunelist, arg, adding, version, 0); one_err = 0; } @@ -1349,9 +1365,11 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in return ret; /* else */ + if (depth == 0) { /* Check we have names for generated files */ for (i = 0; !ret && i < gen_file_count; ++i) ret = gen_file_check(gen_file+i, &g, base_dir, version); + } return ret; } @@ -1367,7 +1385,12 @@ int config_read(int all, char *force_ver, char *base_dir, char *conf_file) return -1; } + if (access(MODUTILS_MACROS, R_OK) == 0){ + r = do_read(all, force_ver, base_dir, MODUTILS_MACROS, 0); + r = do_read(all, force_ver, "", conf_file, 1); + } else { r = do_read(all, force_ver, base_dir, conf_file, 0); + } if (quick && !r && !need_update (force_ver, base_dir)) exit (0); |