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

Reply via email to