# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: package/*/vserver/pkg_linux_pre.conf # Copyright (C) 2004 - 2023 The T2 SDE Project # Copyright (C) 1998 - 2003 ROCK Linux Project # # This Copyright note is generated by scripts/Create-CopyPatch, # 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 version 2. # --- T2-COPYRIGHT-NOTE-END --- pkg_ctx_confdir=$base/package/*/vserver # tempdir pkg_ctx_tempdir=`mktemp -d` #hook_add postpatch 6 "rm -rf $pkg_ctx_tempdir" # detect /best fit/ linux patch pkg_ctx_lxver=$ver. pkg_ctx_patch= while [ "$pkg_ctx_lxver" != "${pkg_ctx_lxver%.*}" -a -z "$pkg_ctx_patch" ]; do pkg_ctx_lxver=${pkg_ctx_lxver%.*} pkg_ctx_patch=`match_source_file -p " patch-${pkg_ctx_lxver}[^ ]*-vs[^ q].*.diff" vserver | head -n1` done [ -z "$pkg_ctx_patch" ] && abort "no vserver patch found for linux $ver" # find supplementary fixes pkg_ctx_fixes_pattern="`basename ${pkg_ctx_patch%.diff} .diff`[.].*[.]diff" pkg_ctx_fixes="`match_source_file -p " ${pkg_ctx_fixes_pattern}" vserver`" # prepare vserver patch pkg_ctx_ver=$(echo $pkg_ctx_patch | sed -n -e 's,.*-vs\(.*\).diff.*,\1,p') # remove extraversion from patch and inject in lx_extraversion by hand [[ ${pkg_ctx_patch} == *.bz2 ]] && x=bzcat || x=cat $x ${pkg_ctx_patch} | gawk" BEGIN { FS=\"[ /\t]\" removethis=0 } /^--- / { if (\$3 == \"Makefile\") removethis=1 else removethis=0 } /.*/ { if (removethis != 1) print } " > $pkg_ctx_tempdir/vserver-${pkg_ctx_ver}.patch lx_extraversion="$lx_extraversion-vs${pkg_ctx_ver}" echo_status "Including Security Contexts (vserver-$pkg_ctx_ver) patch" var_append patchfiles ' ' $pkg_ctx_tempdir/vserver-$pkg_ctx_ver.patch [ -n "${pkg_ctx_fixes}" ] && var_append patchfiles ' ' ${pkg_ctx_fixes} if [ "$SDECFG_PKG_VSERVER_QUOTA" = "1" ]; then pkg_ctx_lxver=$ver. pkg_vquota_patch= if [[ $ver == 2.4.* ]]; then # prepare vquota patch while [ "$pkg_ctx_lxver" != "${pkg_ctx_lxver%.*}" -a -z "$pkg_quota_patch" ]; do pkg_ctx_lxver=${pkg_ctx_lxver%.*} pkg_vquota_patch=`match_source_file -p " patch-${pkg_ctx_lxver}[^ ]*-q.*.diff" vserver | head -n 1` done fi if [ -n "$pkg_vquota_patch" ]; then pkg_vquota_ver=$(echo $pkg_vquota_patch | sed -n -e 's,.*-q\(.*\).diff.bz2,\1,p') [[ ${pkg_vquota_patch} == *.bz2 ]] && x=bzcat || x=cat $x $pkg_vquota_patch \ > $pkg_ctx_tempdir/vquota-$pkg_vquota_ver.patch echo_status "Including Per Context Quota/Disk Limits support (vquota-$pkg_vquota_ver) patch..." var_append patchfiles ' ' $pkg_ctx_tempdir/vquota-$pkg_vquota_ver.patch var_append confscripts ' ' $pkg_ctx_confdir/kernel-vquota.conf.sh else echo_status "No Per Context Quota/Disk Limits support available for Linux ${pkg_ctx_lxver}" fi fi