make -d less strict; add -dd option
From: Florian Pritz <bluewind@xssn.at>
-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> --- 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, + 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. 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; + } 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 |
make -d less strict; add -dd option
On Fri, Jan 28, 2011 at 2:11 AM, Florian Pritz
<bluewind@server-speed.net> wrote: > From: Florian Pritz <bluewind@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@gmail.com> > Signed-off-by: Florian Pritz <bluewind@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 > > |
make -d less strict; add -dd option
On 28.01.2011 20:48, Dan McGee wrote:
> On Fri, Jan 28, 2011 at 2:11 AM, Florian Pritz > <bluewind@server-speed.net> wrote: >> From: Florian Pritz <bluewind@xssn.at> >> >> -d skips checking the version of a dependency. >> >> -dd skips the whole dependency check > Periods are awesome, please use one. :) Fixed. > 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. Oh sorry I broke that when using format-patch. :( I didn't want to resubmit all 5 patches so I just exported 3 and 4 (old numbers). This one is the fixed 3 and "[PATCH 2/2] makepkg: add soprovides support" is the fixed 4. >> - 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. Both fixed >> *-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. I haven't checked that yet, but if it's not needed I'll take it out. -- Florian Pritz -- {flo,bluewind}@server-speed.net |
make -d less strict; add -dd option
On Fri, Jan 28, 2011 at 1:59 PM, Florian Pritz
<bluewind@server-speed.net> wrote: > On 28.01.2011 20:48, Dan McGee wrote: >> On Fri, Jan 28, 2011 at 2:11 AM, Florian Pritz >> <bluewind@server-speed.net> wrote: >>> From: Florian Pritz <bluewind@xssn.at> >>> >>> -d skips checking the version of a dependency. >>> >>> -dd skips the whole dependency check >> Periods are awesome, please use one. :) > > Fixed. > >> 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. > > Oh sorry I broke that when using format-patch. :( > > I didn't want to resubmit all 5 patches so I just exported 3 and 4 (old > numbers). This one is the fixed 3 and "[PATCH 2/2] makepkg: add > soprovides support" is the fixed 4. > >>> - * * * 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. > > Both fixed > >>> **-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. > > I haven't checked that yet, but if it's not needed I'll take it out. Test this yet? -Dan |
| All times are GMT. The time now is 12:15 PM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.