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,
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;
{"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},
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;
char *dest;
char *tmp_dir;
int force_defaults;
+ int force_maintainer;
int force_depends;
int force_overwrite;
int force_downgrade;
#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
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;
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 },
if (args->force_defaults) {
conf->force_defaults = 1;
}
+ if (args->force_maintainer) {
+ conf->force_maintainer = 1;
+ }
if (args->force_overwrite) {
conf->force_overwrite = 1;
}
int autoremove;
int force_depends;
int force_defaults;
+ int force_maintainer;
int force_overwrite;
int force_downgrade;
int force_reinstall;
cf_backup = backup_filename_alloc(root_filename);
- if (file_exists(cf_backup)) {
- /* 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);
- }
- }
- unlink(cf_backup);
- free(md5sum);
- }
+ if (file_exists(cf_backup)) {
+ /* 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_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);
+ }
free(cf_backup);
free(root_filename);