FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 08-12-2012, 11:11 AM
Allan McRae
 
Default Display install status of optdependencies

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@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
 
Old 08-12-2012, 01:17 PM
"Arokux B."
 
Default Display install status of optdependencies

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@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@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
>
>
 

Thread Tools




All times are GMT. The time now is 01:18 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org