[pacman-dev] [PATCH 3/5] add -dd option
Dan McGee
dpmcgee at gmail.com
Wed Jan 19 13:29:59 EST 2011
On Wed, Jan 19, 2011 at 11:13 AM, Florian Pritz <bluewind at xssn.at> wrote:
> -dd ignores only the version of a dependency being checked, but not the
> package itself.
>
> Signed-off-by: Florian Pritz <bluewind at xssn.at>
> Signed-off-by: Xavier Chantry <chantry.xavier at gmail.com>
I don't mind this, but it just seems...backwards. Specifying more
flags should make it less-restrictive, not more restrictive, but I
understand the desire to keep backward compatibility. With that said,
does it matter? People that use -d very often are usually screwing
their system or know what they are doing- should we make -d just skip
versions and -dd skip everything?
-Dan
> ---
> doc/pacman.8.txt | 1 +
> src/pacman/pacman.c | 11 ++++++++++-
> test/pacman/tests/sync-nodepversion01.py | 2 --
> test/pacman/tests/sync-nodepversion04.py | 2 --
> 4 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
> index 2b47a88..735bff9 100644
> --- a/doc/pacman.8.txt
> +++ b/doc/pacman.8.txt
> @@ -155,6 +155,7 @@ Transaction Options (apply to '-S', '-R' and '-U')
> Skips all dependency checks. Normally, pacman will always check a
> package's dependency fields to ensure that all dependencies are
> installed and there are no package conflicts in the system.
> + Specify this option twice to skip the version checking only.
>
> *-k, \--dbonly*::
> Adds/Removes the database entry only, leaves all files in place.
> diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
> index c267060..4074b84 100644
> --- a/src/pacman/pacman.c
> +++ b/src/pacman/pacman.c
> @@ -552,8 +552,17 @@ static int parsearg_query(int opt)
> /* options common to -S -R -U */
> static int parsearg_trans(int opt)
> {
> + static int nodeps = 0;
> switch(opt) {
> - case 'd': config->flags |= PM_TRANS_FLAG_NODEPS; break;
> + case 'd':
> + nodeps++;
> + if(nodeps == 1) {
> + config->flags |= PM_TRANS_FLAG_NODEPS;
> + } else if(nodeps == 2) {
> + config->flags ^= PM_TRANS_FLAG_NODEPS;
> + config->flags |= PM_TRANS_FLAG_NODEPVERSION;
> + }
> + break;
You can do this without a static local; look at "case 's'" in parsearg_remove().
> case 'k': config->flags |= PM_TRANS_FLAG_DBONLY; break;
> case OP_NOPROGRESSBAR: config->noprogressbar = 1; break;
> case OP_NOSCRIPTLET: config->flags |= PM_TRANS_FLAG_NOSCRIPTLET; break;
> diff --git a/test/pacman/tests/sync-nodepversion01.py b/test/pacman/tests/sync-nodepversion01.py
> index 3db445f..734ac98 100644
> --- a/test/pacman/tests/sync-nodepversion01.py
> +++ b/test/pacman/tests/sync-nodepversion01.py
> @@ -14,5 +14,3 @@
> self.addrule("PKG_EXIST=pkg1")
> self.addrule("PKG_EXIST=pkg2")
> self.addrule("PKG_DEPENDS=pkg1|provision>1.0-1")
> -
> -self.expectfailure = True
> diff --git a/test/pacman/tests/sync-nodepversion04.py b/test/pacman/tests/sync-nodepversion04.py
> index f5a091e..fdd3481 100644
> --- a/test/pacman/tests/sync-nodepversion04.py
> +++ b/test/pacman/tests/sync-nodepversion04.py
> @@ -13,5 +13,3 @@
> self.addrule("PACMAN_RETCODE=1")
> self.addrule("!PKG_EXIST=pkg1")
> self.addrule("!PKG_EXIST=pkg2")
> -
> -self.expectfailure = True
> --
> 1.7.3.5
>
>
More information about the pacman-dev
mailing list