rmarquis / pacaur

[unmaintained] An AUR helper that minimizes user interaction
https://bbs.archlinux.org/viewtopic.php?pid=1755144#p1755144
ISC License
796 stars 113 forks source link

pacaur -S font-manager asks for an nvidia-libgl provider, even though I have fglrx installed #355

Closed johnhamelink closed 9 years ago

johnhamelink commented 9 years ago

Hi there, I was directed here from the #archlinux on freenode.

I found that when I ran pacaur -Syu, pacaur would show me the following:

:: Package(s) font-manager not found in repositories, trying AUR...
:: resolving dependencies...
:: There are 5 providers available for nvidia-libgl:
   0) bumblebee (community) 
   1) nvidia-304xx-libgl (extra) 
   2) nvidia-340xx-libgl (extra) 
   3) nvidia-libgl (extra) 
   4) nvidia-libgl-llb (herecura-stable) 

Enter a number (default=0): 

I wasn't able to see what was causing this. I ran pacman -Qim | grep Name | sed s/Name\.\*\:\ // and catted the output into out.sh, then used some vim-foo to turn that file into a list of pacaur -m commands, and pressed ctrl+c until I get the above error. The error seemed to fall on the font-manager package, and removing that allowed me to run pacaur -Syu correctly. Attempting to re-install it with pacaur -S font-manager recreates this bug.

According to the fine folks at #archlinux, the font-manager package has no dependency which would cause this prompt to occur, so the issue seems to lie with pacaur.

Running expac -Qs '%n %P' libgl gives me the following by the way:

[john:~] 1 % expac -Qs '%n %P' libgl  
catalyst-total libgl  libatical=15.5  catalyst=15.5  catalyst-utils=15.5  catalyst-hook=15.5  catalyst-libgl=15.5  opencl-catalyst=15.5  libcl  dri  libtxc_dxtn  mesa-libgl  mesa-libgl-git  lib32-libgl  lib32-catalyst-utils=15.5  lib32-catalyst-libgl=15.5  lib32-opencl-catalyst=15.5  lib32-dri  lib32-libtxc_dxtn  lib32-libcl  lib32-mesa-libgl  lib32-mesa-libgl-git
lib32-mesa lib32-libglapi  lib32-osmesa  lib32-libgbm  lib32-libgles  lib32-libegl  lib32-ati-dri  lib32-intel-dri  lib32-nouveau-dri  lib32-mesa-dri
libglade 
rmarquis commented 9 years ago

I cannot reproduce here, but I have mesa-libgl already installed. All dependencies are in the official binary repositories, none of which depend on nvidia-libgl.

I see you're using the external [herecura-stable] repository. This might cause some issue. Could you please post the output of bash -x pacaur -S font-manager?

johnhamelink commented 9 years ago

@rmarquis

Here's the output of bash -x pacaur -S font-manager > ~/out.txt 2>&1

+ version=4.2.27
+ LC_COLLATE=C
+ TEXTDOMAIN=pacaur
+ TEXTDOMAINDIR=/usr/share/locale
+ [[ -n '' ]]
+ configdir=/etc/xdg/pacaur
+ userconfigdir=/home/john/.config/pacaur
+ userpacmandir=/home/john/.config/pacman
+ [[ -r '' ]]
+ source /etc/makepkg.conf
++ DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' 'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u' 'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u' 'rsync::/usr/bin/rsync --no-motd -z %u %o' 'scp::/usr/bin/scp -C %u %o')
++ VCSCLIENTS=('bzr::bzr' 'git::git' 'hg::mercurial' 'svn::subversion')
++ CARCH=x86_64
++ CHOST=x86_64-unknown-linux-gnu
++ CPPFLAGS=-D_FORTIFY_SOURCE=2
++ CFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fstack-check'
++ CXXFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fstack-check'
++ LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro
++ DEBUG_CFLAGS='-g -fvar-tracking-assignments'
++ DEBUG_CXXFLAGS='-g -fvar-tracking-assignments'
++ BUILDENV=(!distcc color !ccache check !sign)
++ OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !upx !debug)
++ INTEGRITY_CHECK=(md5)
++ STRIP_BINARIES=--strip-all
++ STRIP_SHARED=--strip-unneeded
++ STRIP_STATIC=--strip-debug
++ MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
++ DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
++ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
++ COMPRESSGZ=(gzip -c -f -n)
++ COMPRESSBZ2=(bzip2 -c -f)
++ COMPRESSXZ=(xz -c -z -)
++ COMPRESSLRZ=(lrzip -q)
++ COMPRESSLZO=(lzop -q)
++ COMPRESSZ=(compress -c -f)
++ PKGEXT=.pkg.tar.xz
++ SRCEXT=.src.tar.gz
+ [[ -r /home/john/.config/pacman/makepkg.conf ]]
+ [[ -r /home/john/.makepkg.conf ]]
+ tmpdir=/tmp/pacaurtmp-john
+ builddir=/tmp/pacaurtmp-john
+ editor=vim
+ editpkgbuild=true
+ editinstall=true
+ fallback=true
+ clean=true
+ cleandevel=true
+ sortbyvotes=true
+ sudoloop=false
+ pacmanbin=pacman
+ source /etc/xdg/pacaur/config
+ [[ -r /home/john/.config/pacaur/config ]]
+ [[ -d /tmp/pacaurtmp-john ]]
+ [[ ! -w /tmp/pacaurtmp-john ]]
+ [[ ! -d /tmp/pacaurtmp-john ]]
+ [[ ! -d /tmp/pacaurtmp-john ]]
+ trap ctrlc INT
+ args=($@)
+ for i in '"${args[@]}"'
+ [[ -S =~ ^-[a-zA-Z0-9] ]]
+ opts+=($i)
+ for i in '"${args[@]}"'
+ [[ font-manager =~ ^-[a-zA-Z0-9] ]]
+ count=0
+ [[ -n -S ]]
+ getopts sidmykufecqrahvVDQRSTUbglnoptw-: OPT
+ pacmanarg+=("-$OPT")
+ case "$OPT" in
+ pacS=1
+ operation=sync
+ coweropts+=("-f")
+ [[ -S =~ w ]]
+ installpkg=true
+ [[ -S =~ g ]]
+ [[ -S =~ l ]]
+ [[ -S =~ p ]]
+ getopts sidmykufecqrahvVDQRSTUbglnoptw-: OPT
+ [[ -z font-manager ]]
+ pkgs+=(${!OPTIND})
+ shift 2
+ OPTIND=1
+ [[ -n '' ]]
++ grep '^Color' /etc/pacman.conf
+ [[ -n '' ]]
++ grep '^Color' /etc/pacman.conf
+ [[ -z '' ]]
+ [[ '' = \a\l\w\a\y\s ]]
+ [[ '' = \a\u\t\o ]]
+ [[ '' != \a\l\w\a\y\s ]]
+ [[ '' != \a\u\t\o ]]
+ makeopts+=("--nocolor")
+ pacmanarg=(${pacmanarg[@]/--/})
+ pacmanarg=(${pacmanarg[@]/-r/})
+ pacmanarg=(${pacmanarg[@]/-a/})
+ [[ sync = sync ]]
+ [[ ! -n '' ]]
+ [[ ! -n '' ]]
+ [[ ! -n '' ]]
+ [[ 1000 -eq 0 ]]
+ [[ -n 1 ]]
+ pacmanarg=(${pacmanarg[@]/-e/})
+ [[ -n 1 ]]
+ [[ -n '' ]]
+ [[ -n 1 ]]
+ [[ -n '' ]]
+ [[ ! -n vim ]]
+ [[ ! -w /tmp/pacaurtmp-john ]]
+ [[ -z font-manager ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ case $operation in
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -z font-manager ]]
+ ClassifyPkgs font-manager
+ [[ true = true ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ ! -n '' ]]
+ [[ ! -n '' ]]
+ unset noaurpkgs
+ for i in '"${pkgs[@]}"'
+ [[ font-manager == aur/* ]]
+ noaurpkgs+=($i)
+ [[ -n font-manager ]]
+ norepopkgs=($(LANG=C $pacmanbin -Sp ${noaurpkgs[@]} 2>&1 >/dev/null | awk -F " " '{print $NF}'))
++ LANG=C
++ pacman -Sp font-manager
++ awk -F ' ' '{print $NF}'
+ for i in '"${norepopkgs[@]}"'
+ [[ !  font-manager  =~ [a-zA-Z0-9.+-]+/font-manager[^a-zA-Z0-9.+-] ]]
+ aurpkgs+=($i)
+ repopkgs=($(LC_COLLATE=C comm -23 <(tr ' ' '\n' <<< ${noaurpkgs[@]} | LC_COLLATE=C sort -u) <(tr ' ' '\n' <<< ${aurpkgs[@]} | LC_COLLATE=C sort -u)))
++ LC_COLLATE=C
++ comm -23 /dev/fd/63 /dev/fd/62
+++ tr ' ' '\n'
+++ LC_COLLATE=C
+++ sort -u
+++ tr ' ' '\n'
+++ LC_COLLATE=C
+++ sort -u
+ [[ -n '' ]]
+ [[ -n font-manager ]]
+ [[ -n '' ]]
+ [[ true = true ]]
+ [[ ! -n '' ]]
+ note w 'Package(s) font-manager not found in repositories, trying AUR...'
+ case "$1" in
+ echo -e ':: Package(s) font-manager not found in repositories, trying AUR...'
:: Package(s) font-manager not found in repositories, trying AUR...
+ Core font-manager
+ getignoredpkgs
+ ignoredpkgs+=($(grep '^IgnorePkg' '/etc/pacman.conf' | cut -d '=' -f 2- | tr -d "'\""))
++ grep '^IgnorePkg' /etc/pacman.conf
++ cut -d = -f 2-
++ tr -d ''\''"'
+ [[ -e /home/john/.config/cower/config ]]
+ ignoredpkgs=(${ignoredpkgs[@]//,/ })
+ [[ -n '' ]]
+ IgnoreChecks
+ [[ -z '' ]]
+ return
+ DepsSolver
+ note i 'resolving dependencies...'
+ case "$1" in
+ echo -e ':: resolving dependencies...'
:: resolving dependencies...
+ (( i=0 ))
+ (( i<1 ))
++ awk -F '>|<|=' '{print $1}'
+ aurpkgs[$i]=font-manager
+ (( i++ ))
+ (( i<1 ))
+ deps+=(${aurpkgs[@]})
+ FindDepsAur font-manager
+ [[ -n '' ]]
+ [[ -z '' ]]
+ depspkgsaur=(${aurpkgs[@]})
+ downloadjson font-manager
+ aururl='https://aur.archlinux.org/rpc.php?type=multiinfo&v=3'
+ urlencodedpkgs=($(sed 's/+/%2b/g;s/@/%40/g' <<< $@))
++ sed 's/+/%2b/g;s/@/%40/g'
++ printf '&arg[]=%s' font-manager
+ urlargs='&arg[]=font-manager'
+ [[ 19 -lt 8125 ]]
+ curl -sfg --compressed -C 0 'https://aur.archlinux.org/rpc.php?type=multiinfo&v=3&arg[]=font-manager' -o /tmp/pacaurtmp-john/rpc.json
+ [[ -z '' ]]
+ errdeps+=($(LC_COLLATE=C comm -3 <(tr ' ' '\n' <<< $(getjsonvar "Name") | sort -u) <(tr ' ' '\n' <<< ${aurpkgs[@]} | sort -u)))
++ LC_COLLATE=C
++ comm -3 /dev/fd/63 /dev/fd/62
+++ tr ' ' '\n'
+++ sort -u
+++ tr ' ' '\n'
+++ sort -u
++++ getjsonvar Name
++++ json_reformat
++++ tr -d '", '
++++ grep -Po 'Name:.*'
++++ sed -r s/Name:/Name#/g
++++ awk -F '#' '{print $2}'
+ [[ -n '' ]]
+ depspkgs=($(getjsonarray "Depends"))
++ getjsonarray Depends
++ json_reformat
++ tr -d ', '
++ sed -e '/^"Depends"/,/]/!d'
++ tr -d '\"'
++ tr '\n' ' '
++ sed 's/] /]\n/g'
++ awk -F : '{print $2}'
++ tr -d '[]"'
++ tr -d '\n'
+ [[ ! -n '' ]]
+ depspkgs+=($(getjsonarray "MakeDepends"))
++ getjsonarray MakeDepends
++ json_reformat
++ tr -d ', '
++ sed -e '/^"MakeDepends"/,/]/!d'
++ tr -d '\"'
++ tr '\n' ' '
++ sed 's/] /]\n/g'
++ awk -F : '{print $2}'
++ tr -d '\n'
++ tr -d '[]"'
+ depspkgs=($($pacmanbin -T ${depspkgs[@]} | sort -u))
++ pacman -T libgee libxml2 sqlite gucharmap file-roller intltool yelp-tools gobject-introspection vala
++ sort -u
+ unset depspkgsaur
+ [[ -n gucharmap vala yelp-tools ]]
+ [[ -n '' ]]
+ depspkgsaur=($(LANG=C $pacmanbin -Sp ${depspkgs[@]} 2>&1 >/dev/null | awk -F " " '{print $NF}'))
++ LANG=C
++ pacman -Sp gucharmap vala yelp-tools
++ awk -F ' ' '{print $NF}'
+ repodeps+=($(LC_COLLATE=C comm -23 <(tr ' ' '\n' <<< ${depspkgs[@]} | LC_COLLATE=C sort -u)  <(tr ' ' '\n' <<< ${depspkgsaur[@]} | LC_COLLATE=C sort -u)))
++ LC_COLLATE=C
++ comm -23 /dev/fd/63 /dev/fd/62
+++ tr ' ' '\n'
+++ LC_COLLATE=C
+++ sort -u
+++ tr ' ' '\n'
+++ LC_COLLATE=C
+++ sort -u
+ unset depspkgs
+ [[ -n '' ]]
+ [[ -n '' ]]
+ downloadjson font-manager
+ aururl='https://aur.archlinux.org/rpc.php?type=multiinfo&v=3'
+ urlencodedpkgs=($(sed 's/+/%2b/g;s/@/%40/g' <<< $@))
++ sed 's/+/%2b/g;s/@/%40/g'
++ printf '&arg[]=%s' font-manager
+ urlargs='&arg[]=font-manager'
+ [[ 19 -lt 8125 ]]
+ curl -sfg --compressed -C 0 'https://aur.archlinux.org/rpc.php?type=multiinfo&v=3&arg[]=font-manager' -o /tmp/pacaurtmp-john/rpc.json
+ depsAname=($(getjsonvar "Name"))
++ getjsonvar Name
++ json_reformat
++ tr -d '", '
++ grep -Po 'Name:.*'
++ sed -r s/Name:/Name#/g
++ awk -F '#' '{print $2}'
+ depsAver=($(getjsonvar "Version"))
++ getjsonvar Version
++ json_reformat
++ tr -d '", '
++ grep -Po 'Version:.*'
++ sed -r s/Version:/Version#/g
++ awk -F '#' '{print $2}'
+ depsAood=($(getjsonvar "OutOfDate"))
++ getjsonvar OutOfDate
++ json_reformat
++ tr -d '", '
++ grep -Po 'OutOfDate:.*'
++ sed -r s/OutOfDate:/OutOfDate#/g
++ awk -F '#' '{print $2}'
+ (( i=0 ))
+ (( i<1 ))
++ expac -Qs %v '^font-manager$'
+ depsQver[$i]=
+ [[ -z '' ]]
+ depsQver[$i]='#'
++ grep -E '\-(cvs|svn|git|hg|bzr|darcs|nightly.*)$'
+ [[ -n '' ]]
+ (( i++ ))
+ (( i<1 ))
+ depsAlastmodified=($(getjsonvar "LastModified"))
++ getjsonvar LastModified
++ json_reformat
++ tr -d '", '
++ sed -r s/LastModified:/LastModified#/g
++ grep -Po 'LastModified:.*'
++ awk -F '#' '{print $2}'
+ (( i=0 ))
+ (( i<1 ))
+ [[ 1436693660 -lt 1401215749 ]]
+ (( i++ ))
+ (( i<1 ))
+ [[ -n '' ]]
+ FindDepsRepo gucharmap vala yelp-tools
+ [[ -z gucharmap vala yelp-tools ]]
+ repodeps=($(tr ' ' '\n' <<< ${repodeps[@]} | sort -u))
++ tr ' ' '\n'
++ sort -u
+ for i in '"${repodeps[@]}"'
+ allrepopkgs+=($(pactree -su "$i"))
++ pactree -su gucharmap
+ for i in '"${repodeps[@]}"'
+ allrepopkgs+=($(pactree -su "$i"))
++ pactree -su vala
+ for i in '"${repodeps[@]}"'
+ allrepopkgs+=($(pactree -su "$i"))
++ pactree -su yelp-tools
+ [[ -n gucharmap dconf glib2 pcre gcc-libs glibc linux-api-headers tzdata filesystem iana-etc readline ncurses bash zlib bzip2 libffi libdbus gtk3 atk cairo libpng libxrender libx11 libxcb xcb-proto libxdmcp xproto libxau kbproto renderproto libxext xextproto fontconfig expat freetype2 harfbuzz graphite pixman mesa libdrm libpciaccess wayland libxxf86vm xf86vidmodeproto libxdamage libxfixes fixesproto damageproto libxshmfence systemd acl attr dbus iptables kbd pam cracklib libtirpc krb5 e2fsprogs libutil-linux libldap libsasl openssl perl gdbm db keyutils pambase kmod xz hwids libcap libgcrypt libgpg-error libsystemd lz4 libidn texinfo findutils gzip less libseccomp util-linux shadow coreutils gmp elfutils libomxil-bellagio libtxc_dxtn llvm-libs libedit nvidia-libgl-llb nvidia-utils-llb xorg-server libepoxy libxfont libfontenc fontsproto xorg-server-common xkeyboard-config xorg-xkbcomp libxkbfile xorg-setxkbmap xorg-fonts-misc xorg-fonts-encodings xorg-fonts-alias xorg-font-utils xorg-bdftopcf xorg-mkfontdir xorg-mkfontscale xorg-font-util libunwind xf86-input-evdev mtdev libevdev lzo libcups gnutls libtasn1 nettle p11-kit libtiff libjpeg-turbo avahi libdaemon libusb libxcursor libxinerama xineramaproto libxrandr randrproto libxi inputproto gdk-pixbuf2 jasper libxcomposite compositeproto pango libthai libdatrie libxft shared-mime-info libxml2 colord lcms2 libgusb polkit js17 nspr sqlite libgudev at-spi2-atk at-spi2-core libxtst recordproto libxkbcommon adwaita-icon-theme hicolor-icon-theme gtk-update-icon-cache librsvg libcroco json-glib rest libsoup glib-networking libproxy ca-certificates ca-certificates-mozilla ca-certificates-utils ca-certificates-cacert gsettings-desktop-schemas vala glib2 pcre gcc-libs glibc linux-api-headers tzdata filesystem iana-etc readline ncurses bash zlib bzip2 libffi yelp-tools yelp-xsl libxslt libxml2 zlib glibc linux-api-headers tzdata filesystem iana-etc readline ncurses gcc-libs bash xz libgcrypt libgpg-error itstool python2 bzip2 gdbm openssl perl db expat sqlite libffi ]]
+ providersrepopkgs=($(LC_COLLATE=C comm -23 <(tr ' ' '\n' <<< ${allrepopkgs[@]} | LC_COLLATE=C sort -u) <(tr ' ' '\n' <<< $(expac -S '%n' "${allrepopkgs[@]}") | LC_COLLATE=C sort -u)))
++ LC_COLLATE=C
++ comm -23 /dev/fd/63 /dev/fd/62
+++ tr ' ' '\n'
+++ LC_COLLATE=C
+++ sort -u
+++ LC_COLLATE=C
+++ sort -u
+++ tr ' ' '\n'
++++ expac -S %n gucharmap dconf glib2 pcre gcc-libs glibc linux-api-headers tzdata filesystem iana-etc readline ncurses bash zlib bzip2 libffi libdbus gtk3 atk cairo libpng libxrender libx11 libxcb xcb-proto libxdmcp xproto libxau kbproto renderproto libxext xextproto fontconfig expat freetype2 harfbuzz graphite pixman mesa libdrm libpciaccess wayland libxxf86vm xf86vidmodeproto libxdamage libxfixes fixesproto damageproto libxshmfence systemd acl attr dbus iptables kbd pam cracklib libtirpc krb5 e2fsprogs libutil-linux libldap libsasl openssl perl gdbm db keyutils pambase kmod xz hwids libcap libgcrypt libgpg-error libsystemd lz4 libidn texinfo findutils gzip less libseccomp util-linux shadow coreutils gmp elfutils libomxil-bellagio libtxc_dxtn llvm-libs libedit nvidia-libgl-llb nvidia-utils-llb xorg-server libepoxy libxfont libfontenc fontsproto xorg-server-common xkeyboard-config xorg-xkbcomp libxkbfile xorg-setxkbmap xorg-fonts-misc xorg-fonts-encodings xorg-fonts-alias xorg-font-utils xorg-bdftopcf xorg-mkfontdir xorg-mkfontscale xorg-font-util libunwind xf86-input-evdev mtdev libevdev lzo libcups gnutls libtasn1 nettle p11-kit libtiff libjpeg-turbo avahi libdaemon libusb libxcursor libxinerama xineramaproto libxrandr randrproto libxi inputproto gdk-pixbuf2 jasper libxcomposite compositeproto pango libthai libdatrie libxft shared-mime-info libxml2 colord lcms2 libgusb polkit js17 nspr sqlite libgudev at-spi2-atk at-spi2-core libxtst recordproto libxkbcommon adwaita-icon-theme hicolor-icon-theme gtk-update-icon-cache librsvg libcroco json-glib rest libsoup glib-networking libproxy ca-certificates ca-certificates-mozilla ca-certificates-utils ca-certificates-cacert gsettings-desktop-schemas vala glib2 pcre gcc-libs glibc linux-api-headers tzdata filesystem iana-etc readline ncurses bash zlib bzip2 libffi yelp-tools yelp-xsl libxslt libxml2 zlib glibc linux-api-headers tzdata filesystem iana-etc readline ncurses gcc-libs bash xz libgcrypt libgpg-error itstool python2 bzip2 gdbm openssl perl db expat sqlite libffi
+ [[ -n '' ]]
+ repodepspkgs=($($pacmanbin -T ${allrepopkgs[@]} | sort -u))
++ sort -u
++ pacman -T gucharmap dconf glib2 pcre gcc-libs glibc linux-api-headers tzdata filesystem iana-etc readline ncurses bash zlib bzip2 libffi libdbus gtk3 atk cairo libpng libxrender libx11 libxcb xcb-proto libxdmcp xproto libxau kbproto renderproto libxext xextproto fontconfig expat freetype2 harfbuzz graphite pixman mesa libdrm libpciaccess wayland libxxf86vm xf86vidmodeproto libxdamage libxfixes fixesproto damageproto libxshmfence systemd acl attr dbus iptables kbd pam cracklib libtirpc krb5 e2fsprogs libutil-linux libldap libsasl openssl perl gdbm db keyutils pambase kmod xz hwids libcap libgcrypt libgpg-error libsystemd lz4 libidn texinfo findutils gzip less libseccomp util-linux shadow coreutils gmp elfutils libomxil-bellagio libtxc_dxtn llvm-libs libedit nvidia-libgl-llb nvidia-utils-llb xorg-server libepoxy libxfont libfontenc fontsproto xorg-server-common xkeyboard-config xorg-xkbcomp libxkbfile xorg-setxkbmap xorg-fonts-misc xorg-fonts-encodings xorg-fonts-alias xorg-font-utils xorg-bdftopcf xorg-mkfontdir xorg-mkfontscale xorg-font-util libunwind xf86-input-evdev mtdev libevdev lzo libcups gnutls libtasn1 nettle p11-kit libtiff libjpeg-turbo avahi libdaemon libusb libxcursor libxinerama xineramaproto libxrandr randrproto libxi inputproto gdk-pixbuf2 jasper libxcomposite compositeproto pango libthai libdatrie libxft shared-mime-info libxml2 colord lcms2 libgusb polkit js17 nspr sqlite libgudev at-spi2-atk at-spi2-core libxtst recordproto libxkbcommon adwaita-icon-theme hicolor-icon-theme gtk-update-icon-cache librsvg libcroco json-glib rest libsoup glib-networking libproxy ca-certificates ca-certificates-mozilla ca-certificates-utils ca-certificates-cacert gsettings-desktop-schemas vala glib2 pcre gcc-libs glibc linux-api-headers tzdata filesystem iana-etc readline ncurses bash zlib bzip2 libffi yelp-tools yelp-xsl libxslt libxml2 zlib glibc linux-api-headers tzdata filesystem iana-etc readline ncurses gcc-libs bash xz libgcrypt libgpg-error itstool python2 bzip2 gdbm openssl perl db expat sqlite libffi
+ IgnoreDepsChecks
+ [[ -z '' ]]
+ return
+ ProviderChecks
+ [[ -z gucharmap itstool libunwind nvidia-libgl-llb nvidia-utils-llb vala yelp-tools ]]
+ allproviders=($(expac -S '%S' "${repodepspkgs[@]}" | sort -u))
++ expac -S %S gucharmap itstool libunwind nvidia-libgl-llb nvidia-utils-llb vala yelp-tools
++ sort -u
+ providersdeps=($($pacmanbin -T ${allproviders[@]} | sort -u))
++ pacman -T libgl nvidia-libgl nvidia-utils
++ sort -u
+ (( i=0 ))
+ (( i<2 ))
+ providers=($(expac -Ss '%n' "^${providersdeps[$i]}$" | sort -u))
++ expac -Ss %n '^nvidia-libgl$'
++ sort -u
+ [[ ! 5 -gt 1 ]]
+ [[ -n '' ]]
+ [[ ! -n '' ]]
+ note i 'There are 5 providers available for nvidia-libgl:'
+ case "$1" in
+ echo -e ':: There are 5 providers available for nvidia-libgl:'
:: There are 5 providers available for nvidia-libgl:
+ expac -S -1 '   %!) %n (%r) ' bumblebee nvidia-304xx-libgl nvidia-340xx-libgl nvidia-libgl nvidia-libgl-llb
   0) bumblebee (community) 
   1) nvidia-304xx-libgl (extra) 
   2) nvidia-340xx-libgl (extra) 
   3) nvidia-libgl (extra) 
   4) nvidia-libgl-llb (herecura-stable) 
+ local nb=-1
+ providersnb=4
+ [[ -1 -lt 0 ]]
+ printf '\n%s ' 'Enter a number (default=0):'

Enter a number (default=0): ++ echo -n 4
++ wc -m
+ read -n 1 nb
++ ctrlc
++ echo

++ [[ -e /tmp/pacaurtmp-john/sudov.lck ]]
++ [[ -e /tmp/pacaurtmp-john/build.lck ]]
++ [[ sync = sync ]]
++ [[ ! -n '' ]]
++ [[ ! -n '' ]]
++ [[ -n '' ]]
++ exit
rmarquis commented 9 years ago

Thank you. I found out the location of the issue in the code, but I'm still clueless about the reason it happens on your system.

I'll need to replicate your exact settings. Could you provide the repository section of your pacman.conf?

johnhamelink commented 9 years ago

No problem, here you go:

[infinality-bundle-multilib]
SigLevel = Never
Server = http://bohoomil.com/repo/multilib/$arch

[infinality-bundle]
SigLevel = Never
Server = http://bohoomil.com/repo/$arch

[infinality-bundle-fonts]
Server = http://bohoomil.com/repo/fonts

[herecura-stable]
# additional apps not found in community
Server = http://repo.herecura.be/herecura-stable/$arch

[xorg114]
Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/xorg114/$arch

[catalyst]
Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/catalyst/$arch

[testing]
Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch

#[testing]
#Include = /etc/pacman.d/mirrorlist

[core]
Include = /etc/pacman.d/mirrorlist

[haskell-core]
Server = http://xsounds.org/~haskell/core/$arch

[extra]
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#Include = /etc/pacman.d/mirrorlist

[community]
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[atlassian]
SigLevel = PackageOptional DatabaseRequired TrustAll
Server = http://downloads.hipchat.com/linux/arch/$arch
rmarquis commented 9 years ago

Thanks, I've now pinpointed exactly what the issue is. It occurs in the calculation of the binary dependencies tree (repository packages). The package cairo is a subdependency of font-manager (font-manager -> gucharmap -> gtk3 -> cairo) and requires libgl, which is provided by catalyst-total. However, the direct dependency given by pactree -s gucharmap is nvidia-libgl-llb as pactree does not support multi providers and only list the default one.

The trick done by pacaur here is to calculate the sub-dependency tree of the default provided package in case the non default provider is already installed, and substract that subtree from the main binary dependency tree. This is where the issue occurs: pacaur seems to fail to find out that a non default provider (catalyst-total which provides libgl) is already installed, because it checks for the provider package (nvidia-libgl-llb and nvidia-utils-llb) and not the provided one (libgl).

Since nvidia-libgl-llb isn't installed on the target system, pacaur fails to remove the substree from the binary dependency list.

Note this issue is actually a cosmetic one: The binary dependencies list is computed only to be displayed in the main prompt, but the all the work is achieved by makepkg when installing packages. In other word, if you select any (wrong) options in the providers prompt, pacaur will still install the correct dependencies through makepkg.

This issue is similar to #219, #225 and follows implementation of #127.

rmarquis commented 9 years ago

And here is the reason of this regression: the linear behavior of pactree has changed with the release of pacman 4.2 in December 2014, since pactree option -u implies -l.

Without the provisions in the list, the providersrepopkgs array is always empty thus the function to correct the binary packages list is never reached.

rmarquis commented 9 years ago

Quick fixed in 35d605234b3b808ce421ba371a96a9d4530390ff and factored in f41d08a3c6c163464ad70d1d80dc325b2abeb962. You can use it with pacaur-git. Feedback welcome!

johnhamelink commented 9 years ago

Yep! Fixed with pacaur-git 4.2.27.36.gf41d08a-1

rmarquis commented 9 years ago

Good! Next stable release will be available in a few days. Thanks for your help and your report.