make -d less strict; add -dd option

-d skips checking the version of a dependency.

-dd skips the whole dependency check.

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Signed-off-by: Florian Pritz <bluewind@server-speed.net>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Florian Pritz 2010-10-01 16:42:09 +02:00 committed by Dan McGee
parent b6ec9019d7
commit 111e07d0be
8 changed files with 21 additions and 18 deletions

View file

@ -154,9 +154,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,
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.
*-k, \--dbonly*::
Adds/Removes the database entry only, leaves all files in place.

View file

@ -552,7 +552,13 @@ 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_NODEPS;
} 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;

View file

@ -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 = pmpkg("pkg2", "1.0-2")
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

View file

@ -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 = pmpkg("pkg2", "1.0-2")
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")

View file

@ -8,10 +8,8 @@ p2 = pmpkg("pkg2", "1.0-2")
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

View file

@ -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 = pmpkg("pkg2", "1.1-1")
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")

View file

@ -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 @@ self.addpkg2db("local", lp1);
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")

View file

@ -6,7 +6,7 @@ p.files = ["bin/dummy",
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")