[pacman-dev] [PATCH] Display install status of optdependencies
Arokux B.
arokux at gmail.com
Sun Aug 12 09:17:50 EDT 2012
Hi,
I would prefer to see [install] and [pending] in front of the package
name and description, not after it,
i.e.
[installed] tk: gitk and git gui
perl-libwww: git svn
[pending] perl-term-readkey: git svn
perl-mime-tools: git send-email
perl-net-smtp-ssl: git send-email TLS support
maybe even like this:
[installed] tk: gitk and git gui
perl-libwww: git svn
[pending] perl-term-readkey: git svn
perl-mime-tools: git send-email
perl-net-smtp-ssl: git send-email TLS support
Best,
Arokux
On Sun, Aug 12, 2012 at 1:11 PM, Allan McRae <allan at archlinux.org> wrote:
> When a packages (new) optdepends are printed in install (update),
> add a note of their current installation status. Packages currently
> installed are labelled with [installed] and packages to be installed
> in this transaction are labelled [pending].
>
> Signed-off-by: Allan McRae <allan at archlinux.org>
> ---
>
> I went a different way to previous patches that altered this. They
> all did not display installed optdependencies, but I prefer showing
> them by default. Later there may be an option added to install all
> optdepends by default and in that case the output can be removed.
>
>
> Example output:
>
>> sudo ./src/pacman/pacman -S git perl-term-readkey
> Password:
> resolving dependencies...
> looking for inter-conflicts...
>
> Packages (2): git-1.7.11.4-1 perl-term-readkey-2.30.02-2
>
> Total Installed Size: 16.79 MiB
>
> Proceed with installation? [Y/n]
> (2/2) checking package integrity [######################] 100%
> (2/2) loading package files [######################] 100%
> (2/2) checking for file conflicts [######################] 100%
> (1/2) installing git [######################] 100%
> Optional dependencies for git
> tk: gitk and git gui [installed]
> perl-libwww: git svn
> perl-term-readkey: git svn [pending]
> perl-mime-tools: git send-email
> perl-net-smtp-ssl: git send-email TLS support
> perl-authen-sasl: git send-email TLS support
> python2: various helper scripts [installed]
> subversion: git svn [installed]
> cvsps: git cvsimport
> (2/2) installing perl-term-readkey [######################] 100%
>
>
> src/pacman/util.c | 20 ++++++++++++++++++--
> 1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/src/pacman/util.c b/src/pacman/util.c
> index 995308c..4d8727f 100644
> --- a/src/pacman/util.c
> +++ b/src/pacman/util.c
> @@ -1192,6 +1192,22 @@ static int depend_cmp(const void *d1, const void *d2)
> return ret;
> }
>
> +static char *make_optstring(alpm_depend_t *optdep)
> +{
> + char *optstring = alpm_dep_compute_string(optdep);
> + char *status = NULL;
> + if(alpm_db_get_pkg(alpm_get_localdb(config->handle), optdep->name)) {
> + status = _(" [installed]");
> + } else if(alpm_pkg_find(alpm_trans_get_add(config->handle), optdep->name)) {
> + status = _(" [pending]");
> + }
> + if(status) {
> + optstring = realloc(optstring, strlen(optstring) + strlen(status) + 1);
> + strcpy(optstring + strlen(optstring), status);
> + }
> + return optstring;
> +}
> +
> void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg)
> {
> alpm_list_t *i, *old, *new, *optdeps, *optstrings = NULL;
> @@ -1203,7 +1219,7 @@ void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg)
> /* 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 = alpm_list_add(optstrings, make_optstring(optdep));
> }
>
> if(optstrings) {
> @@ -1225,7 +1241,7 @@ void display_optdepends(alpm_pkg_t *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 = alpm_list_add(optstrings, make_optstring(optdep));
> }
>
> if(optstrings) {
> --
> 1.7.11.4
>
>
More information about the pacman-dev
mailing list