|
|
# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: lib/jailing/parse-config # Copyright (C) 2006 The OpenSDE Project # Copyright (C) 2004 - 2006 The T2 SDE Project # Copyright (C) 1998 - 2003 Clifford Wolf # # More information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. A copy of the # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END ---
# Revwrite --with-<option>=<pkg_path> in confopt # to correct <path> when <option> is relative to # a jailed package. # jail_confopt_paths_rewrite() { # This list will grow for y in mysql postgresql openldap apache; do if eval "[ \"\${SDECFG_JAILING_$y}\" = 1 ]" ; then # Correct eventual misconfigured jail # To be removed! if eval "[ ! \"\${SDECFG_JAILDIR_$y}\" ]" ; then eval "export \${SDECFG_JAILDIR_$y}=\ \"${SDECFG_BASEJAIL}/$y\"" fi
eval "y_path=$root/\"\${SDECFG_JAILDIR_$y}/usr\""
var_append LDFLAGS ' ' "-L/${y_path}/lib"
# Set correct optname and y_path # This will grow too case "$y" in postgresql) optname=pgsql ;; openldap) optname=ldap ;; apache) optname=apxs2 y_path=${y_path}/sbin/apxs ;; *) optname=$y ;; esac
# Rewrite confopt=$(eval "echo $confopt" | xargs -n1 | sed " \ s|^--with-${optname}=shared.*$|--with-${optname}=shared,${y_path}|g; \ s|^--with-${optname}=[^,]*$|--with-${optname}=${y_path}|g; \ " | xargs)
# Sometime pkg has internal support for <optname> so # if there's no =... or =shared it means internal # support want to be used. # Only mysql in php is using this ... for now if [ ! "`echo ${has_internal} | grep $optname`" ] ; then confopt=$(echo $confopt | xargs -n1 | sed " \ s|^--with-${optname}$|--with-${optname}=${y_path}|g \ " | xargs) fi fi done export LDFLAGS unset y optname y_path }
jail_samejail() { eval "export SDECFG_JAILING_$1=\"\$SDECFG_JAILING_$2\"" eval "export SDECFG_JAILDIR_$1=\"\$SDECFG_JAILDIR_$2\"" }
if [ "${SDECFG_JAILING}" = 1 ] ; then [ "$pkg" = php ] && jail_samejail php apache [ "$pkg" = subversion ] && jail_samejail subversion apache if eval "[ \"\${SDECFG_JAILING_$pkg}\" = 1 ]" ; then . $base/lib/jailing/jail-functions . $base/lib/jailing/package-functions if eval "[ ! \"\${SDECFG_JAILDIR_$pkg}\" ]" ; then eval "export \${SDECFG_JAILDIR_$pkg}=\"${SDECFG_BASEJAIL}/$pkg\"" fi eval "export jail=\"\${SDECFG_JAILDIR_$pkg}\""
case "$pkg" in # Setting destvar postfix) destvar='install_root' ;; php) destvar='INSTALL_ROOT' ;; *) destvar='DESTDIR' ;; esac
[ -e $base/lib/jailing/$pkg.patch ] && var_append patchfiles ' ' $base/lib/jailing/$pkg.patch for i in `ls $base/lib/jailing/$pkg-*.patch 2>/dev/null` ; do var_append patchfiles ' ' "$i" done
case "$pkg" in # Special package settings apache) postmake='jail_pkg_apache_postmake' ;; postfix) postmake='jail_pkg_postfix_postmake' ;; openldap) postmake='jail_ensure_users ldap' ;; mysql) var_append extraconfopt " " "--with-mysql-user=$pkg" inmake='jail_ensure_users mysql' postmake='jail_pkg_mysql_postmake' ;; php) has_internal='mysql' ;; esac
createprefix='0' createdocs='0' hook_add prepare 7 jail_set_confopt hook_add preconf 1 jail_create hook_add inmake 9 '[ "$destvar" ] && var_append makeinstopt " " "$destvar=$root/$jail"' hook_add postmake 9 jail_copy_needed_libs var_append flistroot " " "$jail"
echo_status "Jailing support activated to directory "'$root/'"$jail" fi hook_add preconf 6 'jail_confopt_paths_rewrite' fi
|