[pacman-dev] [PATCH 1/2] make -d less strict; add -dd option

Dan McGee dpmcgee at gmail.com
Fri Jan 28 14:48:54 EST 2011


On Fri, Jan 28, 2011 at 2:11 AM, Florian Pritz
<bluewind at server-speed.net> wrote:
> From: Florian Pritz <bluewind at xssn.at>
>
> -d skips checking the version of a dependency.
>
> -dd skips the whole dependency check
Periods are awesome, please use one. :)

I assume this follows the actual implementation of this in the
backend, even though it has a patch 1/2 subject? Maybe resubmitting
just the two -d/-dd patches as a single set would be good to make sure
I know what to apply here.

>
> Signed-off-by: Xavier Chantry <chantry.xavier at gmail.com>
> Signed-off-by: Florian Pritz <bluewind at server-speed.net>
> ---
>  doc/pacman.8.txt                         |    7 ++++---
>  src/pacman/pacman.c                      |    9 ++++++++-
>  test/pacman/tests/sync-nodepversion01.py |    6 ++----
>  test/pacman/tests/sync-nodepversion03.py |    4 ++--
>  test/pacman/tests/sync-nodepversion04.py |    4 +---
>  test/pacman/tests/sync-nodepversion05.py |    4 ++--
>  test/pacman/tests/sync045.py             |    4 ++--
>  test/pacman/tests/upgrade072.py          |    2 +-
>  8 files changed, 22 insertions(+), 18 deletions(-)
>
> diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
> index 2b47a88..4ce8fa2 100644
> --- a/doc/pacman.8.txt
> +++ b/doc/pacman.8.txt
> @@ -152,9 +152,10 @@ Options
>  Transaction Options (apply to '-S', '-R' and '-U')
>  --------------------------------------------------
>  *-d, \--nodeps*::
> -       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.
> +       Skips dependency version checks. Package names are still checked Normally,
Missing period.

> +       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 all dependency checks.
No double-space.

>
>  *-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..363b167 100644
> --- a/src/pacman/pacman.c
> +++ b/src/pacman/pacman.c
> @@ -553,7 +553,14 @@ static int parsearg_query(int opt)
>  static int parsearg_trans(int opt)
>  {
>        switch(opt) {
> -               case 'd': config->flags |= PM_TRANS_FLAG_NODEPS; break;
> +               case 'd':
> +                       if(config->flags & PM_TRANS_FLAG_NODEPVERSION) {
> +                               config->flags ^= PM_TRANS_FLAG_NODEPVERSION;
> +                               config->flags |= PM_TRANS_FLAG_NODEPS;
Why do we need to back the depversion flag out at all? Given that
nodepversion is less strong than nodeps, it doesn't make intuitive
sense to have to do this.

> +                       } else {
> +                               config->flags |= PM_TRANS_FLAG_NODEPVERSION;
> +                       }
> +                       break;
>                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..5829b9e 100644
> --- a/test/pacman/tests/sync-nodepversion01.py
> +++ b/test/pacman/tests/sync-nodepversion01.py
> @@ -1,4 +1,4 @@
> -self.description = "nodepversion: -Sdd works"
> +self.description = "nodepversion: -Sd works"
>
>  p1 = pmpkg("pkg1", "1.0-2")
>  p1.depends = ["provision>1.0-1"]
> @@ -8,11 +8,9 @@
>  p2.provides = ["provision=1.0-1"]
>  self.addpkg2db("sync", p2)
>
> -self.args = "-Sdd %s" % p1.name
> +self.args = "-Sd %s" % p1.name
>
>  self.addrule("PACMAN_RETCODE=0")
>  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-nodepversion03.py b/test/pacman/tests/sync-nodepversion03.py
> index 8ebb1c8..378ff76 100644
> --- a/test/pacman/tests/sync-nodepversion03.py
> +++ b/test/pacman/tests/sync-nodepversion03.py
> @@ -1,4 +1,4 @@
> -self.description = "nodepversion: -Sd works but no deps"
> +self.description = "nodepversion: -Sdd works but no deps"
>
>  p1 = pmpkg("pkg1", "1.0-2")
>  p1.depends = ["provision>=1.0-2"]
> @@ -8,7 +8,7 @@
>  p2.provides = ["provision=1.0-1"]
>  self.addpkg2db("sync", p2)
>
> -self.args = "-Sd %s" % p1.name
> +self.args = "-Sdd %s" % p1.name
>
>  self.addrule("PACMAN_RETCODE=0")
>  self.addrule("PKG_EXIST=pkg1")
> diff --git a/test/pacman/tests/sync-nodepversion04.py b/test/pacman/tests/sync-nodepversion04.py
> index f5a091e..2bf83bb 100644
> --- a/test/pacman/tests/sync-nodepversion04.py
> +++ b/test/pacman/tests/sync-nodepversion04.py
> @@ -8,10 +8,8 @@
>  p2.provides = ["provision=1.0-1"]
>  self.addpkg2db("sync", p2)
>
> -self.args = "-Sdd %s" % p1.name
> +self.args = "-Sd %s" % p1.name
>
>  self.addrule("PACMAN_RETCODE=1")
>  self.addrule("!PKG_EXIST=pkg1")
>  self.addrule("!PKG_EXIST=pkg2")
> -
> -self.expectfailure = True
> diff --git a/test/pacman/tests/sync-nodepversion05.py b/test/pacman/tests/sync-nodepversion05.py
> index f2a45f0..bc048db 100644
> --- a/test/pacman/tests/sync-nodepversion05.py
> +++ b/test/pacman/tests/sync-nodepversion05.py
> @@ -1,4 +1,4 @@
> -self.description = "nodepversion: -Sudd works"
> +self.description = "nodepversion: -Sud works"
>
>  p1 = pmpkg("pkg1", "1.0-1")
>  p1.depends = ["provision=1.0"]
> @@ -12,7 +12,7 @@
>  sp2.provides = ["provision=1.1"]
>  self.addpkg2db("sync", sp2)
>
> -self.args = "-Sudd"
> +self.args = "-Sud"
>
>  self.addrule("PACMAN_RETCODE=0")
>  self.addrule("PKG_VERSION=pkg1|1.0-1")
> diff --git a/test/pacman/tests/sync045.py b/test/pacman/tests/sync045.py
> index 574c0a5..6c31983 100644
> --- a/test/pacman/tests/sync045.py
> +++ b/test/pacman/tests/sync045.py
> @@ -1,4 +1,4 @@
> -self.description = "Install a sync package conflicting with two local ones (-d)"
> +self.description = "Install a sync package conflicting with two local ones (-dd)"
>
>  sp = pmpkg("pkg1")
>  sp.conflicts = ["pkg2", "pkg3"]
> @@ -10,7 +10,7 @@
>  lp2 = pmpkg("pkg3")
>  self.addpkg2db("local", lp2);
>
> -self.args = "-Sd %s --ask=4" % sp.name
> +self.args = "-Sdd %s --ask=4" % sp.name
>
>  self.addrule("PACMAN_RETCODE=0")
>  self.addrule("PKG_EXIST=pkg1")
> diff --git a/test/pacman/tests/upgrade072.py b/test/pacman/tests/upgrade072.py
> index f88e150..116103b 100644
> --- a/test/pacman/tests/upgrade072.py
> +++ b/test/pacman/tests/upgrade072.py
> @@ -6,7 +6,7 @@
>  p.depends = ["dep1"]
>  self.addpkg(p)
>
> -self.args = "-Ud %s" % p.filename()
> +self.args = "-Udd %s" % p.filename()
>
>  self.addrule("PACMAN_RETCODE=0")
>  self.addrule("PKG_EXIST=dummy")
> --
> 1.7.3.5
>
>


More information about the pacman-dev mailing list