diff -Nurp dkms-2.0.19.orig/dkms dkms-2.0.19/dkms --- dkms-2.0.19.orig/dkms 2008-03-25 15:53:31.000000000 +0200 +++ dkms-2.0.19/dkms 2012-03-01 16:16:28.819144465 +0200 @@ -98,6 +98,10 @@ if [ -n "$gz_modules" ]; then [ -z "$delayed_gzip" ] && module_suffix=${module_suffix}.gz fi + grep -q '\.xz:' /lib/modules/$kernel_test/modules.dep 2>/dev/null && xz_modules=1 + if [ -n "$xz_modules" ]; then + [ -z "$delayed_xz" ] && module_suffix=${module_suffix}.xz + fi } function set_kernel_source_dir () @@ -1444,11 +1448,17 @@ if [ -n "$gz_modules" ]; then gzip -9f $dkms_tree/$module/$module_version/${kernelver_array[0]}/${arch_array[0]}/module/${dest_module_name[$count]}$module_suffix fi + if [ -n "$xz_modules" ]; then + xz -6f $dkms_tree/$module/$module_version/${kernelver_array[0]}/${arch_array[0]}/module/${dest_module_name[$count]}$module_suffix + fi count=$(($count+1)) done if [ -n "$gz_modules" ]; then module_suffix=${module_suffix}.gz fi + if [ -n "$xz_modules" ]; then + module_suffix=${module_suffix}.xz + fi # Run the post_build script if [ -n "$post_build" ] && [ -x `echo "$dkms_tree/$module/$module_version/source/$post_build" | sed 's/ .*//'` ]; then echo $"" @@ -2658,7 +2668,7 @@ exit 2 fi - # Figure out what kind of archive it is (tar.gz, tar, tar.bz, etc) + # Figure out what kind of archive it is (tar.gz, tar, tar.bz, tar.xz, etc) local tar_options="" if `gzip -t $archive_location 2>/dev/null`; then tar_options="${tar_options}z" @@ -2666,6 +2676,9 @@ if `bzip2 -t $archive_location 2>/dev/null`; then tar_options="${tar_options}j" fi + if `xz -t $archive_location 2>/dev/null`; then + tar_options="${tar_options}J" + fi # Untar it into $tmp_location local temp_dir_name=`mktemp -d $tmp_location/dkms.XXXXXX` @@ -3564,6 +3577,7 @@ remove_module ;; build) + delayed_xz=1 delayed_gzip=1 build_module ;; diff -Nurp dkms-2.0.19.orig/dkms_find-provides dkms-2.0.19/dkms_find-provides --- dkms-2.0.19.orig/dkms_find-provides 2007-09-01 00:03:32.000000000 +0300 +++ dkms-2.0.19/dkms_find-provides 2012-03-01 16:12:37.547422342 +0200 @@ -63,7 +63,7 @@ TMPDIR=$(mktemp -d /tmp/dkms-findprovide trap "rm -rf $TMPDIR >/dev/null 2>&1" QUIT EXIT HUP INT TERM modlist= -for cand in $(grep -E '(/lib/modules/.+\.ko$|tgz$|tbz$|tar\.(gz|bz2)$)') $*; do +for cand in $(grep -E '(/lib/modules/.+\.ko$|tgz$|tbz$|tar\.(gz|bz2|xz)$)') $*; do if echo $cand | grep -q -E '/lib/modules/.+\.ko$' > /dev/null 2>&1; then modlist="$modlist $cand" fi @@ -75,6 +75,8 @@ for cand in $(grep -E '(/lib/modules/.+\ opts=${opts}z elif bzip2 -t $cand >/dev/null 2>&1; then opts=${opts}j + elif xz -t $cand >/dev/null 2>&1; then + opts=${opts}J fi tar ${opts}f $cand -C $TMPDIR > /dev/null 2>&1 done