Hi all,
Opkg can be prevented from asking any questions with -force-defaults.
The default for the question whether a modified configuration file
should be replaced with the maintainers version is "no".
The upstream version of Opkg introduced a switch -force-maintainer that
allows to change this behavior. Below you find a backport of this
feature.
Please apply or update the Opkg package, thanks,
Fabian
Index: package/opkg/patches/006-force_maintainer.patch
===================================================================
--- package/opkg/patches/006-force_maintainer.patch (revision 0)
+++ package/opkg/patches/006-force_maintainer.patch (revision 0)
@@ -0,0 +1,128 @@
+diff -ruN opkg-4993.orig/libopkg/args.c opkg-4993.new/libopkg/args.c
+--- opkg-4993.orig/libopkg/args.c 2009-06-19 10:46:38.000000000 +0100
++++ opkg-4993.new/libopkg/args.c 2009-06-19 12:44:18.000000000 +0100
+@@ -31,6 +31,7 @@
+ enum long_args_opt
+ {
+ ARGS_OPT_FORCE_DEFAULTS = 129,
++ ARGS_OPT_FORCE_MAINTAINER,
+ ARGS_OPT_FORCE_DEPENDS,
+ ARGS_OPT_FORCE_OVERWRITE,
+ ARGS_OPT_FORCE_DOWNGRADE,
+@@ -65,6 +66,7 @@
+ ARGS_DEFAULT_CONF_FILE_NAME);
+
+ args->force_defaults = ARGS_DEFAULT_FORCE_DEFAULTS;
++ args->force_maintainer = ARGS_DEFAULT_FORCE_MAINTAINER;
+ args->force_depends = ARGS_DEFAULT_FORCE_DEPENDS;
+ args->force_overwrite = ARGS_DEFAULT_FORCE_OVERWRITE;
+ args->force_downgrade = ARGS_DEFAULT_FORCE_DOWNGRADE;
+@@ -114,6 +116,8 @@
+ {"dest", 1, 0, 'd'},
+ {"force-defaults", 0, 0, ARGS_OPT_FORCE_DEFAULTS},
+ {"force_defaults", 0, 0, ARGS_OPT_FORCE_DEFAULTS},
++ {"force-maintainer", 0, 0, ARGS_OPT_FORCE_MAINTAINER},
++ {"force_maintainer", 0, 0, ARGS_OPT_FORCE_MAINTAINER},
+ {"force-depends", 0, 0, ARGS_OPT_FORCE_DEPENDS},
+ {"force_depends", 0, 0, ARGS_OPT_FORCE_DEPENDS},
+ {"force-overwrite", 0, 0, ARGS_OPT_FORCE_OVERWRITE},
+@@ -197,6 +201,9 @@
+ case ARGS_OPT_FORCE_DEFAULTS:
+ args->force_defaults = 1;
+ break;
++ case ARGS_OPT_FORCE_MAINTAINER:
++ args->force_maintainer = 1;
++ break;
+ case ARGS_OPT_FORCE_DEPENDS:
+ args->force_depends = 1;
+ break;
+@@ -311,6 +318,7 @@
+ printf("\t-force-defaults Use default options for
questions asked by opkg.\n");
+ printf(" (no prompts). Note that this will not
prevent\n");
+ printf(" package installation scripts from
prompting.\n");
++ printf("\t-force-maintainer Replace conffiles with maintainer's
version.\n");
+ printf("\t-force-reinstall Allow opkg to reinstall a package.\n");
+ printf("\t-force-overwrite Allow opkg to overwrite files from
another package during an install.\n");
+ printf("\t-force-downgrade Allow opkg to downgrade packages.\n");
+diff -ruN opkg-4993.orig/libopkg/args.h opkg-4993.new/libopkg/args.h
+--- opkg-4993.orig/libopkg/args.h 2009-06-19 10:46:38.000000000 +0100
++++ opkg-4993.new/libopkg/args.h 2009-06-19 12:46:23.000000000 +0100
+@@ -24,6 +24,7 @@
+ char *dest;
+ char *tmp_dir;
+ int force_defaults;
++ int force_maintainer;
+ int force_depends;
+ int force_overwrite;
+ int force_downgrade;
+@@ -51,6 +52,7 @@
+ #define ARGS_DEFAULT_CONF_FILE_NAME "opkg.conf"
+ #define ARGS_DEFAULT_DEST NULL
+ #define ARGS_DEFAULT_FORCE_DEFAULTS 0
++#define ARGS_DEFAULT_FORCE_MAINTAINER 0
+ #define ARGS_DEFAULT_FORCE_DEPENDS 0
+ #define ARGS_DEFAULT_FORCE_OVERWRITE 0
+ #define ARGS_DEFAULT_FORCE_DOWNGRADE 0
+diff -ruN opkg-4993.orig/libopkg/opkg.c opkg-4993.new/libopkg/opkg.c
+--- opkg-4993.orig/libopkg/opkg.c 2009-06-19 10:46:38.000000000 +0100
++++ opkg-4993.new/libopkg/opkg.c 2009-06-19 12:47:11.000000000 +0100
+@@ -249,6 +249,7 @@
+ a->autoremove = c->autoremove;
+ a->force_depends = c->force_depends;
+ a->force_defaults = c->force_defaults;
++ a->force_maintainer = c->force_maintainer;
+ a->force_overwrite = c->force_overwrite;
+ a->force_downgrade = c->force_downgrade;
+ a->force_reinstall = c->force_reinstall;
+diff -ruN opkg-4993.orig/libopkg/opkg_conf.c opkg-4993.new/libopkg/opkg_conf.c
+--- opkg-4993.orig/libopkg/opkg_conf.c 2009-06-19 10:46:38.000000000 +0100
++++ opkg-4993.new/libopkg/opkg_conf.c 2009-06-19 12:48:32.000000000 +0100
+@@ -51,6 +51,7 @@
+ opkg_option_t tmp[] = {
+ { "cache", OPKG_OPT_TYPE_STRING, &conf->cache},
+ { "force_defaults", OPKG_OPT_TYPE_BOOL, &conf->force_defaults },
++ { "force_maintainer", OPKG_OPT_TYPE_BOOL, &conf->force_maintainer },
+ { "force_depends", OPKG_OPT_TYPE_BOOL, &conf->force_depends },
+ { "force_overwrite", OPKG_OPT_TYPE_BOOL, &conf->force_overwrite },
+ { "force_downgrade", OPKG_OPT_TYPE_BOOL, &conf->force_downgrade },
+@@ -238,6 +239,9 @@
+ if (args->force_defaults) {
+ conf->force_defaults = 1;
+ }
++ if (args->force_maintainer) {
++ conf->force_maintainer = 1;
++ }
+ if (args->force_overwrite) {
+ conf->force_overwrite = 1;
+ }
+diff -ruN opkg-4993.orig/libopkg/opkg_conf.h opkg-4993.new/libopkg/opkg_conf.h
+--- opkg-4993.orig/libopkg/opkg_conf.h 2009-06-19 10:46:38.000000000 +0100
++++ opkg-4993.new/libopkg/opkg_conf.h 2009-06-19 12:49:18.000000000 +0100
+@@ -57,6 +57,7 @@
+ int autoremove;
+ int force_depends;
+ int force_defaults;
++ int force_maintainer;
+ int force_overwrite;
+ int force_downgrade;
+ int force_reinstall;
+diff -ruN opkg-4993.orig/libopkg/opkg_install.c
opkg-4993.new/libopkg/opkg_install.c
+--- opkg-4993.orig/libopkg/opkg_install.c 2009-06-19 10:46:38.000000000
+0100
++++ opkg-4993.new/libopkg/opkg_install.c 2009-06-19 12:51:47.000000000
+0100
+@@ -1574,10 +1574,12 @@
+ /* Let's compute md5 to test if files are changed */
+ md5sum = file_md5sum_alloc(cf_backup);
+ if (strcmp( cf->value,md5sum) != 0 ) {
+- if (conf->force_defaults
+- || user_prefers_old_conffile(cf->name, cf_backup) ) {
+- rename(cf_backup, root_filename);
+- }
++ if (conf->force_maintainer) {
++ opkg_message(conf, OPKG_NOTICE, "Conffile %s using
maintainer's setting.\n", cf_backup);
++ } else if (conf->force_defaults
++ || user_prefers_old_conffile(cf->name, cf_backup) )
{
++ rename(cf_backup, root_filename);
++ }
+ }
+ unlink(cf_backup);
+ free(md5sum);
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel