This is an automated email from the git hooks/post-receive script. guillem pushed a commit to branch main in repository dpkg.
View the commit online: https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=c9cfffcebe181a61d2981b79aa82d4af39523520 commit c9cfffcebe181a61d2981b79aa82d4af39523520 (HEAD -> main) Author: Guillem Jover <[email protected]> AuthorDate: Thu Sep 1 03:35:01 2022 +0200 test: Add functional tests for --root, --instdir and --admindir options These makes sure these interact with each other as expected, and take the defaults and the DPKG_ROOT and DPKG_ADMINDIR environment variables into account. --- dselect/main.cc | 2 + src/Makefile.am | 1 + src/at/atlocal.in | 2 + src/at/chdir.at | 491 ++++++++++++++++++++++++++++++++++++++++++++++++ src/at/local.at | 2 + src/at/testsuite.at | 4 + src/divert/main.c | 3 + src/main/main.c | 2 + src/query/main.c | 3 + src/split/main.c | 4 + src/statoverride/main.c | 3 + src/trigger/main.c | 3 + 12 files changed, 520 insertions(+) diff --git a/dselect/main.cc b/dselect/main.cc index 32010235b..451ec0a31 100644 --- a/dselect/main.cc +++ b/dselect/main.cc @@ -539,6 +539,8 @@ main(int, const char *const *argv) dpkg_options_load(DSELECT, cmdinfos); dpkg_options_parse(&argv, cmdinfos, printforhelp); + debug(dbg_general, "root=%s admindir=%s", dpkg_fsys_get_dir(), dpkg_db_get_dir()); + if (*argv) { const char *a; while ((a = *argv++) != nullptr) { diff --git a/src/Makefile.am b/src/Makefile.am index 324a23527..95cc94353 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -160,6 +160,7 @@ TESTSUITE_AT += $(srcdir)/at/deb-content.at TESTSUITE_AT += $(srcdir)/at/deb-split.at TESTSUITE_AT += $(srcdir)/at/realpath.at TESTSUITE_AT += $(srcdir)/at/divert.at +TESTSUITE_AT += $(srcdir)/at/chdir.at EXTRA_DIST += $(TESTSUITE_AT) TESTSUITE = $(srcdir)/at/testsuite diff --git a/src/at/atlocal.in b/src/at/atlocal.in index 9e5451db7..3d8b66ffe 100644 --- a/src/at/atlocal.in +++ b/src/at/atlocal.in @@ -18,6 +18,8 @@ export TZ SOURCE_DATE_EPOCH=0 export SOURCE_DATE_EPOCH +prefix="@prefix@" +eval "export DEFAULT_ADMINDIR='@admindir@'" export DPKG_DATADIR="@abs_top_srcdir@/src" # Cleanup variables that might affect the tests. diff --git a/src/at/chdir.at b/src/at/chdir.at new file mode 100644 index 000000000..ec9299f85 --- /dev/null +++ b/src/at/chdir.at @@ -0,0 +1,491 @@ +# +# Test commands with --root, --instdir and --admindir. +# + +m4_foreach_w([CMD], [dpkg dpkg-divert dpkg-statoverride], [ + m4_define([CMD_PRINT_DIRS], [DPKG_DEBUG=1 CMD --version]) + + AT_SETUP([CMD chdir opts]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=$DEFAULT_ADMINDIR +]) + AT_CHECK( + [CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS], + [], [ignore], + [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS], + [], [ignore], + [D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS], + [], [ignore], + [D000001: root=/rootdir_env admindir=/admindir_env +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env+opt admindir]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_env +]) + AT_CHECK( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env+opt root]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_env admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/rootdir_env$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env+opt root+admindir]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_env admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_env +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --instdir=/instdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt --instdir=/instdir_opt], + [], [ignore], + [D000001: root=/instdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --instdir=/instdir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP +]) + +# +# Test commands with only --root and --admindir. +# + +m4_foreach_w([CMD], [dpkg-split dpkg-query dpkg-trigger], [ + m4_define([CMD_PRINT_DIRS], [DPKG_DEBUG=1 CMD --version]) + + AT_SETUP([CMD chdir opts]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt +]) + + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + + AT_CHECK_UNQUOTED( + [CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS], + [], [ignore], + [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_env +]) + + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS], + [], [ignore], + [D000001: root=/rootdir_env admindir=/rootdir_env$DEFAULT_ADMINDIR +]) + + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS], + [], [ignore], + [D000001: root=/rootdir_env admindir=/admindir_env +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env+opt admindir]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=$DEFAULT_ROOTDIR admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env+opt root]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_env admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP + + AT_SETUP([CMD chdir env+opt root+admindir]) + AT_KEYWORDS([CMD command-line chdir]) + + DPKG_ROOT= + DPKG_ADMINDIR= + + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_env admindir=/admindir_opt +]) + AT_CHECK( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --root=/rootdir_opt --admindir=/admindir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/admindir_opt +]) + AT_CHECK_UNQUOTED( + [DPKG_ROOT=/rootdir_env DPKG_ADMINDIR=/admindir_env \ + CMD_PRINT_DIRS --admindir=/admindir_opt --root=/rootdir_opt], + [], [ignore], + [D000001: root=/rootdir_opt admindir=/rootdir_opt$DEFAULT_ADMINDIR +]) + + AT_CLEANUP +]) diff --git a/src/at/local.at b/src/at/local.at index 04dffe714..89f08dabe 100644 --- a/src/at/local.at +++ b/src/at/local.at @@ -1,7 +1,9 @@ # Dpkg helper macros m4_pattern_forbid([^DPKG_]) +m4_pattern_allow([^DPKG_DEBUG$]) m4_pattern_allow([^DPKG_ROOT$]) +m4_pattern_allow([^DPKG_ADMINDIR$]) m4_pattern_allow([^DPKG_DATADIR$]) # diff --git a/src/at/testsuite.at b/src/at/testsuite.at index 5798690d5..86e2d37c0 100644 --- a/src/at/testsuite.at +++ b/src/at/testsuite.at @@ -18,3 +18,7 @@ m4_include([realpath.at]) AT_TESTED([dpkg-divert]) AT_BANNER([Diversions]) m4_include([divert.at]) + +AT_TESTED([dpkg]) +AT_BANNER([Change directory options]) +m4_include([chdir.at]) diff --git a/src/divert/main.c b/src/divert/main.c index ddfd18d28..865796d3a 100644 --- a/src/divert/main.c +++ b/src/divert/main.c @@ -40,6 +40,7 @@ #include <dpkg/i18n.h> #include <dpkg/dpkg.h> #include <dpkg/dpkg-db.h> +#include <dpkg/debug.h> #include <dpkg/arch.h> #include <dpkg/file.h> #include <dpkg/glob.h> @@ -865,6 +866,8 @@ main(int argc, const char * const *argv) dpkg_program_init("dpkg-divert"); dpkg_options_parse(&argv, cmdinfos, printforhelp); + debug(dbg_general, "root=%s admindir=%s", dpkg_fsys_get_dir(), dpkg_db_get_dir()); + env_pkgname = getenv("DPKG_MAINTSCRIPT_PACKAGE"); if (opt_pkgname_match_any && env_pkgname) set_package(NULL, env_pkgname); diff --git a/src/main/main.c b/src/main/main.c index c3f9e50c5..6f0633e6f 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -736,6 +736,8 @@ int main(int argc, const char *const *argv) { dpkg_options_load(DPKG, cmdinfos); dpkg_options_parse(&argv, cmdinfos, printforhelp); + debug(dbg_general, "root=%s admindir=%s", dpkg_fsys_get_dir(), dpkg_db_get_dir()); + /* When running as root, make sure our primary group is also root, so * that files created by maintainer scripts have correct ownership. */ if (!in_force(FORCE_NON_ROOT) && getuid() == 0 && getgid() != 0) diff --git a/src/query/main.c b/src/query/main.c index 8c34518a2..6695b6b6e 100644 --- a/src/query/main.c +++ b/src/query/main.c @@ -44,6 +44,7 @@ #include <dpkg/i18n.h> #include <dpkg/dpkg.h> #include <dpkg/dpkg-db.h> +#include <dpkg/debug.h> #include <dpkg/pkg-array.h> #include <dpkg/pkg-spec.h> #include <dpkg/pkg-format.h> @@ -867,6 +868,8 @@ int main(int argc, const char *const *argv) { dpkg_program_init("dpkg-query"); dpkg_options_parse(&argv, cmdinfos, printforhelp); + debug(dbg_general, "root=%s admindir=%s", dpkg_fsys_get_dir(), dpkg_db_get_dir()); + if (!cipaction) badusage(_("need an action option")); ret = cipaction->action(argv); diff --git a/src/split/main.c b/src/split/main.c index 68c0791bc..eba2333c3 100644 --- a/src/split/main.c +++ b/src/split/main.c @@ -37,6 +37,8 @@ #include <dpkg/i18n.h> #include <dpkg/dpkg.h> #include <dpkg/dpkg-db.h> +#include <dpkg/debug.h> +#include <dpkg/fsys.h> #include <dpkg/options.h> #include "dpkg-split.h" @@ -165,6 +167,8 @@ int main(int argc, const char *const *argv) { dpkg_program_init(SPLITTER); dpkg_options_parse(&argv, cmdinfos, printforhelp); + debug(dbg_general, "root=%s admindir=%s", dpkg_fsys_get_dir(), dpkg_db_get_dir()); + if (opt_depotdir == NULL) opt_depotdir = dpkg_db_get_path(PARTSDIR); diff --git a/src/statoverride/main.c b/src/statoverride/main.c index 801da2064..66fe8c34e 100644 --- a/src/statoverride/main.c +++ b/src/statoverride/main.c @@ -40,6 +40,7 @@ #include <dpkg/i18n.h> #include <dpkg/dpkg.h> #include <dpkg/dpkg-db.h> +#include <dpkg/debug.h> #include <dpkg/string.h> #include <dpkg/path.h> #include <dpkg/dir.h> @@ -406,6 +407,8 @@ main(int argc, const char *const *argv) set_force_default(FORCE_STATCMD_MASK); dpkg_options_parse(&argv, cmdinfos, printforhelp); + debug(dbg_general, "root=%s admindir=%s", dpkg_fsys_get_dir(), dpkg_db_get_dir()); + if (!cipaction) badusage(_("need an action option")); diff --git a/src/trigger/main.c b/src/trigger/main.c index 3321b7040..0cc25a48a 100644 --- a/src/trigger/main.c +++ b/src/trigger/main.c @@ -36,6 +36,7 @@ #include <dpkg/i18n.h> #include <dpkg/dpkg.h> #include <dpkg/dpkg-db.h> +#include <dpkg/debug.h> #include <dpkg/options.h> #include <dpkg/trigdeferred.h> #include <dpkg/triglib.h> @@ -255,6 +256,8 @@ main(int argc, const char *const *argv) dpkg_program_init("dpkg-trigger"); dpkg_options_parse(&argv, cmdinfos, printforhelp); + debug(dbg_general, "root=%s admindir=%s", dpkg_fsys_get_dir(), dpkg_db_get_dir()); + if (!cipaction) setaction(&cmdinfo_trigger, NULL); -- Dpkg.Org's dpkg

