#! /bin/bash
-# $Id: vyum-worker,v 1.5 2005/04/08 19:18:06 ensc Exp $
+# $Id: vyum-worker 2527 2007-04-11 18:14:47Z dhozac $
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
${YUM:=$_YUM}
}
-yum=${YUM:-yum}
-conf=yum.conf
-case $(yum --version) in
- (2.[0123]*)
- python -c 'import yum,sys; sys.exit(not hasattr(yum.config.yumconf, "getRootedPath"))' &>/dev/null || {
- warning "\
+function check(){
+ python -c "$1" &>/dev/null || {
+ warning "\
You are using a version of yum which is insecure and broken in chroot
related operations; either apply the patches shipped in the 'contrib/'
directory of util-vserver, or ask the author of yum to apply them
work when the vserver is running and local DOS attacks are possible.
Execution will continue in 5 seconds..."
- sleep 5
- conf=yum-hack.conf
- }
+ sleep 5
+ conf=yum-hack.conf
+ }
+}
+
+yum=${YUM:-yum}
+conf=yum.conf
+case $($yum --version|tail -n 1) in
+ (2.[012345]*)
+ check 'import yum,sys; sys.exit(not hasattr(yum.config.yumconf, "getRootedPath"))'
+ ;;
+ (2.[6789]*|3.0*)
+ check 'import yum,sys; sys.exit(not hasattr(yum.config.YumConf, "getRootedPath"))'
+ ;;
+ (*)
+ warning "\
+You are using a version of yum which current status is unknown to vyum.
+
+Just to be sure, 'vyum' will use dirty hacks which might not work when
+the vserver is running and local DOS attacks are possible.
+
+Execution will continue in 5 seconds..."
+ sleep 5
+ conf=yum-hack.conf
;;
esac