Pacman

Historical bug tracker for the Pacman package manager.

The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues

This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
Tasklist

FS#1562 - [Patch] Pacman confict handling speed improvements

Attached to Project: Pacman
Opened by Tommi Rantala (ttrantal) - Saturday, 02 October 2004, 08:23 GMT
Last edited by Judd Vinet (judd) - Monday, 04 October 2004, 00:34 GMT
Task Type Feature Request
Category
Status Closed
Assigned To Judd Vinet (judd)
Architecture not specified
Severity Low
Priority Normal
Reported Version 0.7 Wombat
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

The conflict handling in current Pacman implementation is not very good performance-wise.

Here's another patch that speeds things up a bit. :) Patches are for 2.9 but I had no trouble applying them to 2.9.2.

'pacman' is 2.9.2, the other one is this + list handling performance patches.

Try to add an already installed package:
========================================

# pwd
/var/cache/pacman/pkg

# time pacman -A xorg*

loading package data... done.
checking for file conflicts... done.
error: xorg is already installed. (try --upgrade)

real 0m6.317s
user 0m5.703s
sys 0m0.236s


# time /var/abs/base/pacman/src/pacman-2.9/pacman -A xorg*

loading package data... done.
checking for file conflicts... done.
error: xorg is already installed. (try --upgrade)

real 0m0.352s
user 0m0.153s
sys 0m0.181s


Try to add several already installed packages:
==============================================

# time pacman -A w* kde*

loading package data... done.
checking for file conflicts... done.
error: wget is already installed. (try --upgrade)
error: windowmaker is already installed. (try --upgrade)
error: wine is already installed. (try --upgrade)
error: wireless_tools is already installed. (try --upgrade)
error: wxgtk is already installed. (try --upgrade)
error: wxpython is already installed. (try --upgrade)
error: kdelibs is already installed. (try --upgrade)
error: kdemultimedia is already installed. (try --upgrade)
error: kdebase is already installed. (try --upgrade)
error: kdeaddons is already installed. (try --upgrade)
error: kdeartwork is already installed. (try --upgrade)
error: kdegames is already installed. (try --upgrade)
error: kdegraphics is already installed. (try --upgrade)
error: kdenetwork is already installed. (try --upgrade)
error: kdesdk is already installed. (try --upgrade)
error: kdeutils is already installed. (try --upgrade)

real 1m40.585s
user 1m36.179s
sys 0m1.825s


# time /var/abs/base/pacman/src/pacman-2.9/pacman -A w* kde*

loading package data... done.
checking for file conflicts... done.
error: wget is already installed. (try --upgrade)
error: windowmaker is already installed. (try --upgrade)
error: wine is already installed. (try --upgrade)
error: wireless_tools is already installed. (try --upgrade)
error: wxgtk is already installed. (try --upgrade)
error: wxpython is already installed. (try --upgrade)
error: kdelibs is already installed. (try --upgrade)
error: kdemultimedia is already installed. (try --upgrade)
error: kdebase is already installed. (try --upgrade)
error: kdeaddons is already installed. (try --upgrade)
error: kdeartwork is already installed. (try --upgrade)
error: kdegames is already installed. (try --upgrade)
error: kdegraphics is already installed. (try --upgrade)
error: kdenetwork is already installed. (try --upgrade)
error: kdesdk is already installed. (try --upgrade)
error: kdeutils is already installed. (try --upgrade)

real 0m2.034s
user 0m1.144s
sys 0m0.774s



Enable extra checking, commented out in the code:
=================================================

# time /var/abs/base/pacman/src/pacman-2.9/pacman -A libsoup22-2.1.13-1.pkg.tar.gz

loading package data... done.
checking for file conflicts...
error: the following file conflicts were found:
opt/gnome/include/libsoup-2.2/libsoup/soup-address.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-connection.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-headers.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-message-filter.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-message-queue.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-message.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-method.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-misc.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-server-auth.h: exists in "libsoup22" (target) and "libsoup" (installed)
opt/gnome/include/libsoup-2.2/libsoup/soup-server-message.h: exists in "libsoup22" (target) and "libsoup" (installed)

[...]

errors occurred, no packages were upgraded.

real 0m0.399s
user 0m0.266s
sys 0m0.117s


# time pacman -A libsoup22-2.1.13-1.pkg.tar.gz

loading package data... done.
checking for file conflicts...
error: the following file conflicts were found:
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-address.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-connection.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-headers.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-message-filter.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-message-queue.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-message.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-method.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-misc.h: exists in filesystem
libsoup22: /opt/gnome/include/libsoup-2.2/libsoup/soup-server-auth.h: exists in filesystem

[...]

errors occurred, no packages were upgraded.

real 0m0.185s
user 0m0.048s
sys 0m0.132s

   db_c.patch (3.3 KiB)
   strhash.c (3.3 KiB)
   strhash.h (1.7 KiB)
This task depends upon

Closed by  Judd Vinet (judd)
Monday, 04 October 2004, 01:03 GMT
Reason for closing:  Implemented

Loading...