[pacman-dev] Some comments on Bryan patches (bugs)

Xavier shiningxc at gmail.com
Sun Mar 8 10:00:54 EDT 2009


On Sun, Mar 8, 2009 at 2:42 PM, Nagy Gabor <ngaba at bibl.u-szeged.hu> wrote:
>
>> A question: is the behavior of first searching the target-list for
>> packages to satisfy dependencies a documented and expected behavior of
>> pacman?
>
> Not documented, but expected :). Moreover, see my comment above about
> the current asymmetric behavior, that is quite odd imho.
>

I completely agree.

> -- new suggestions :) [optional] --
>
> 3. Now it can happen, that a missing dependency is added to the *data
> list many times. For example, if there is a popular unresolvable package
> in our repo, let's say gtk2, and we have 10 packages in the target list
> depend on that, then we get "gtk2 requires foo" error 10 times (if user
> doesn't want to remove unresolvable packages). So we may want to check
> *data list before adding a new missing dependency to avoid duplication.
>

+1

> 4. One more comment (I've just realised this during writing the previous
> one). I never liked our unresolvable dependencies errors:
> User does "pacman -S foo1 foo2 foo3" and he may get "error: bar requires
> baz", and he says "What?". Now, after your patch we can easily say, what
> package "induced" that error (pkg param of resolvedeps). We have a field
> causingpkg in pmdepmissing_t, we may want to use that for this purpose.
> (With -R that field has an other meaning, so this may be not a good
> idea.) Or we can print this info via PM_TRANS_CONV_REMOVE_PKGS.
>

+1

I just found a funny test case on my first try. Funny because besides
the same missing dependency message being printed many times, there is
also a "provider package was selected" printed multiple times, which
makes the whole thing worse.
If I understood you correctly, all these missing dependency messages
look the same because we are missing one information : the
"causingpkg", which is a target package that has an unresolvable
dependency, correct?
So with that additional info, all these missing dependency messages
would be different.
It seems fine to me to reuse the causingpkg field for that, because
that name is quite general. We would just need to document well what
it means in -R case, and what it means in -S/-U case.

> sudo LANG=C pacman -S kde --ignore libxinerama
kde package not found, searching for group...
:: group kde (including ignored packages):
    kdeaccessibility  kdeadmin  kdeartwork  kdebase  kdebase-runtime
kdebase-workspace  kdeedu  kdegames  kdegraphics
    kdelibs  kdemultimedia  kdenetwork  kdepim  kdepimlibs
kdeplasma-addons  kdesdk  kdetoys  kdeutils  kdewebdev
:: Install whole content? [Y/n]
resolving dependencies...
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: cannot resolve "libxinerama", a dependency of "qt"
warning: provider package was selected (freeglut provides glut)
warning: cannot resolve "libxinerama", a dependency of "qt"
:: the following package(s) cannot be upgraded due to unresolvable dependencies:
      kdeaccessibility  kdeadmin  kdeartwork  kdebase  kdebase-runtime
 kdebase-workspace  kdeedu  kdegames
      kdegraphics  kdelibs  kdemultimedia  kdenetwork  kdepim
kdepimlibs  kdeplasma-addons  kdesdk  kdetoys  kdeutils
      kdewebdev

Do you want to skip the above package(s) for this upgrade? [Y/n]
looking for inter-conflicts...
 local database is up to date


More information about the pacman-dev mailing list