[pacman-dev] [PATCH] Mark already installed optional dependencies

Arokux B. arokux at gmail.com
Tue Apr 17 18:01:22 EDT 2012


Thanks for the answer. I'm looking forward this patch and optdepends
to be merged.

On Sun, Apr 15, 2012 at 4:39 PM, Dave Reisner <d at falconindy.com> wrote:
> On Sun, Apr 15, 2012 at 04:17:52PM +0200, Arokux B. wrote:
>> On Fri, Apr 6, 2012 at 1:49 AM, Arokux B. <arokux at gmail.com> wrote:
>> > This patch adds "[installed]" prefix to already installed optional dependency.
>> >
>> > Signed-off-by: Arokux arokux at gmail.com
>> > ---
>> >  src/pacman/util.c |   43 +++++++++++++++++++++++++++++--------------
>> >  1 file changed, 29 insertions(+), 14 deletions(-)
>> >
>> > diff --git a/src/pacman/util.c b/src/pacman/util.c
>> > index a5242ae..d0a049e 100644
>> > --- a/src/pacman/util.c
>> > +++ b/src/pacman/util.c
>> > @@ -1189,19 +1189,40 @@ static int depend_cmp(const void *d1, const void *d2)
>> >        return ret;
>> >  }
>> >
>> > +alpm_list_t *optdeps_to_strings(alpm_list_t *optdeps)
>> > +{
>> > +       alpm_list_t *i, *optstrings = NULL;
>> > +  alpm_db_t *localdb = alpm_get_localdb(config->handle);
>> > +
>> > +       /* turn optdepends list into a text list */
>> > +       for(i = optdeps; i; i = alpm_list_next(i)) {
>> > +               alpm_depend_t *optdep = i->data;
>> > +               char *optdepstring = alpm_dep_compute_string(optdep);
>> > +
>> > +               if(alpm_find_satisfier(alpm_db_get_pkgcache(localdb), optdepstring)) {
>> > +                       char *optdepstring_in;
>> > +                       pm_asprintf(&optdepstring_in, _("[installed] %s"), optdepstring);
>> > +                       free(optdepstring);
>> > +
>> > +                       optdepstring = optdepstring_in;
>> > +                       optdepstring_in = NULL;
>> > +               }
>> > +
>> > +               optstrings = alpm_list_add(optstrings, optdepstring);
>> > +       }
>> > +
>> > +       return optstrings;
>> > +}
>> > +
>> >  void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg)
>> >  {
>> > -       alpm_list_t *i, *old, *new, *optdeps, *optstrings = NULL;
>> > +       alpm_list_t *old, *new, *optdeps, *optstrings = NULL;
>> >
>> >        old = alpm_pkg_get_optdepends(oldpkg);
>> >        new = alpm_pkg_get_optdepends(newpkg);
>> >        optdeps = alpm_list_diff(new, old, depend_cmp);
>> >
>> > -       /* turn optdepends list into a text list */
>> > -       for(i = optdeps; i; i = alpm_list_next(i)) {
>> > -               alpm_depend_t *optdep = i->data;
>> > -               optstrings = alpm_list_add(optstrings, alpm_dep_compute_string(optdep));
>> > -       }
>> > +       optstrings = optdeps_to_strings(optdeps);
>> >
>> >        if(optstrings) {
>> >                printf(_("New optional dependencies for %s\n"), alpm_pkg_get_name(newpkg));
>> > @@ -1214,15 +1235,9 @@ void display_new_optdepends(alpm_pkg_t *oldpkg,
>> > alpm_pkg_t *newpkg)
>> >
>> >  void display_optdepends(alpm_pkg_t *pkg)
>> >  {
>> > -       alpm_list_t *i, *optdeps, *optstrings = NULL;
>> > +       alpm_list_t *optstrings = NULL;
>> >
>> > -       optdeps = alpm_pkg_get_optdepends(pkg);
>> > -
>> > -       /* turn optdepends list into a text list */
>> > -       for(i = optdeps; i; i = alpm_list_next(i)) {
>> > -               alpm_depend_t *optdep = i->data;
>> > -               optstrings = alpm_list_add(optstrings, alpm_dep_compute_string(optdep));
>> > -       }
>> > +       optstrings = optdeps_to_strings(alpm_pkg_get_optdepends(pkg));
>> >
>> >        if(optstrings) {
>> >                printf(_("Optional dependencies for %s\n"), alpm_pkg_get_name(pkg));
>>
>>
>> Hi guys,
>>
>> the patch I sent 10 days ago hasn't got any attention. I would be
>> interested to know why.
>>
>> Many thanks.
>>
>
> We have a large branch of optdepends work that needs to be merged at
> some point. This sort of this is certainly wanted, it just remains to be
> seen where it'll come from.
>
> http://mailman.archlinux.org/pipermail/pacman-dev/2011-November/014772.html
>
> d
>


More information about the pacman-dev mailing list