Optdepends bugs
From ArchWiki
Contents |
Introduction
If we ever want to do anything useful with optdepends (see User:Allan/Pacman_OptDepends), we need to enforce a strict optdepends syntax.
There was one suggested syntax in the man page, but sadly it was not enforced. The future makepkg version will make sure this syntax is respected :
optdepends=('fakeroot: for makepkg usage as normal user')
That is, a single and valid package name, immediately followed by a colon and a description. The colon and the description are optional.
Examples of invalid optdepends
'tcl, python and/or ruby: to use corresponding binding'
Only one package name can be specified on each line
'xorg-fonts-75dpi : X bitmap fonts needed for the interface'
No space or anything else between the package name and the colon.
'ruby-htmlentities (AUR): for one provider named Deastore'
The (AUR) information should either be removed or moved to the description.
'xpdf - for pdf'
It should be a colon, not a dash.
Checking script
#!/bin/bash source /etc/makepkg.conf pkglist=$(pacman -Slq) for repo in core extra community; do echo ==$repo== find /var/abs/$repo -name PKGBUILD | sort | while read pkgbuild do source $pkgbuild i=0 declare -a errors=() for opt in "${optdepends[@]}"; do pkg=${opt%%:*} desc=${opt#*:} if ! (echo "$pkglist" | grep -q "^${pkg}$"); then if ! pacman -Spd "$pkg" --noconfirm &>/dev/null; then if [ $(slurpy -i "$pkg" 2>/dev/null | wc -l) -gt 1 ]; then continue fi errors[$i]="'$opt'" (( i++ )) fi fi done if [ $i -gt 0 ]; then echo "* $pkgname :" (grep -o "Maintainer.*" $pkgbuild || grep -o "Contributor.*" $pkgbuild) | sed -e 's/^/ /' for error in "${errors[@]}"; do echo " $error" done fi unset optdepends done done # vim: set ts=2 sw=2 noet:
Bug Reports
for extra : FS#16053 for community : FS#16052
Everything has been fixed ! Only 3 extra packages fixed in svn, waiting for a rebuild : avahi, avidemux, moc --shining 06:32, 8 November 2009 (EST)