Changed circular dependencies handler to skip only the offended dependencies.

But don't look very stable yet (see comments about alsa-lib and jdk).
Not verified yet it all circular dependencies has been tracked.
This commit is contained in:
Manuel Canales Esparcia 2006-05-24 22:47:56 +00:00
parent 7acf5caa4e
commit 2a3e0f048b
2 changed files with 61 additions and 44 deletions

View file

@ -97,35 +97,10 @@ inline_doc
fi fi
case $1 in case $1 in
1 | 2 ) 1 | 2 | 3 )
DEP_LEVEL=$1 DEP_LEVEL=$1
echo -e "\n\tUsing $DEP_LEVEL as dependencies level.\n" echo -e "\n\tUsing $DEP_LEVEL as dependencies level.\n"
;; ;;
# Prevent circular dependencies when level 3
# cracklib-->python-->tk-->X-->linux-pam-->cracklib
# docbook-utils--> Optional dependencies are runtime only
# libxml2-->libxslt-->libxml2
# cyrus-sasl-->openldap-->cyrus-sasl
# alsa-lib-->doxygen-->graphviz-->jdk-->alsa-lib
# unixodbc-->qt-->unixodbc
# cups-->php-->sendmail-->espgs-->cups
# libexif-->graphviz-->php-->libexif
# esound-->aRts-->esound
# gimp-->imagemagick-->gimp
3 )
case $TARGET in
cracklib | docbook-utils | libxml2 | cyrus-sasl | alsa-lib | \
unixodbc | cups | libexif | esound | gimp )
DEP_LEVEL=2
echo -e "\n\t$TARGET have circular dependencies at level $1"
echo -e "\tUsing $DEP_LEVEL as dependencies level.\n"
;;
* )
DEP_LEVEL=$1
echo -e "\n\tUsing $DEP_LEVEL as dependencies level.\n"
;;
esac
;;
* ) * )
DEP_LEVEL=2 DEP_LEVEL=2
echo -e "\n\t$1 is not a valid dependencies level." echo -e "\n\t$1 is not a valid dependencies level."

View file

@ -173,13 +173,52 @@ inline_doc
#------------------ #------------------
echo -e "\tDEP for $PKG is $DEP" >> depure.txt echo -e "\tDEP for $PKG is $DEP" >> depure.txt
# Prevent circular dependencies when level 3
case $DEP in case $DEP in
# Circular dependencies at level 3 python )
cracklib | docbook-utils | libxml2 | cyrus-sasl | alsa-lib | \ # cracklib-->python-->tk-->X-->linux-pam-->cracklib
unixodbc | cups | libexif | esound | gimp ) [[ "$PKG" = "cracklib" ]] && continue
[[ "$DEP_LV" = "3" ]] && DEP_LV=2 ;;
jadetex | perl-* | lynx | Links | w3m )
# Optional dependencies are runtime only
[[ "$PKG" = "docbook-utils" ]] && continue
;;
libxslt )
# libxml2-->libxslt-->libxml2
[[ "$PKG" = "libxml2" ]] && continue
;;
openldap | postgresql | $KBR5 )
# cyrus-sasl-->several-->cyrus-sasl
[[ "$PKG" = "cyrus-sasl" ]] && continue
;;
doxygen )
# alsa-lib-->doxygen-->graphviz-->jdk-->alsa-lib
# Commented out due that it bomb "jdk 3" Why??
#[[ "$PKG" = "alsa-lib" ]] && continue
# libexif-->doxygen-->graphviz-->php-->libexif
[[ "$PKG" = "libexif" ]] && continue
;;
qt )
# unixodbc-->qt-->unixodbc
[[ "$PKG" = "unixodbc" ]] && continue
;;
espgs )
# sendmail-->espgs-->cups-->php-->sendmail
# We should to use $MAIL_SERVER, when it actually work :-/
[[ "$PKG" = "sendmail" ]] && continue
;;
graphviz )
# libexif-->graphviz-->php-->libexif
[[ "$PKG" = "libexif" ]] && continue
;;
aRts )
# esound-->aRts-->esound
[[ "$PKG" = "esound" ]] && continue
;;
gimp )
# imagemagick-->gimp-->imagemagick
[[ "$PKG" = "imagemagick" ]] && continue
;; ;;
* ) DEP_LV=$DEP_LEVEL ;;
esac esac
#------------------ #------------------
@ -203,6 +242,9 @@ inline_doc
# If not already created, create its dependencies list # If not already created, create its dependencies list
if [[ ! -f dependencies/$DEP.dep ]] ; then if [[ ! -f dependencies/$DEP.dep ]] ; then
case $DEP in case $DEP in
alsa-lib ) ;; # Only one optional dependency and is recursive.
# When placed inside the circular dependencies handler
# some packages may bomb. But I don't know yet why
# Meta-packages at dependency level (ugly *.dep files, but work for now) # Meta-packages at dependency level (ugly *.dep files, but work for now)
alsa ) # When dependency "alsa", use all alsa-* packages alsa ) # When dependency "alsa", use all alsa-* packages
echo -e "alsa-oss\nalsa-firmware\nalsa-tools\nalsa-utils\n \ echo -e "alsa-oss\nalsa-firmware\nalsa-tools\nalsa-utils\n \