X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=debian.in%2Fpostinst;h=d1dbc4de4ddefac20d065249ff8d06efc178ace2;hb=2ae34928adb5da51a66170a52678bb4a7d2d212a;hp=a818525b67f953af3779a9a58d511aefc96d0c5c;hpb=a30cb143fe071853bbe524a8eab49b2fcbb99d02;p=cp210x.git diff --git a/debian.in/postinst b/debian.in/postinst index a818525..d1dbc4d 100755 --- a/debian.in/postinst +++ b/debian.in/postinst @@ -2,6 +2,83 @@ set -e -if [ "$1" = "configure" ]; then - modprobe -rq cp2101 || true -fi +NAME=xxPACKAGExx +VERSION=xxDEBVERxx + +case "$1" in + configure) + # Use a distro-specific source file, if present + c_src=/usr/src/$NAME-$VERSION/cp210x.c + c_dist=$(lsb_release -cs) + if [ -f "$c_src.$c_dist" ]; then + mv $c_src.$c_dist $c_src + fi + + # Unload old cp210x modules, if in use + modprobe -rq cp2101 || true + modprobe -rq cp210x || true + + # Determine current arch / kernel + c_arch=`uname -m` + c_kern=`uname -r` + + if [ -e "/var/lib/dkms/$NAME/$VERSION" ]; then + echo "Removing old $NAME-$VERSION DKMS files..." + dkms remove -m $NAME -v $VERSION --all + fi + + echo "Loading new $NAME-$VERSION DKMS files..." + if [ -f "/usr/src/$NAME-$VERSION.dkms.tar.gz" ]; then + dkms ldtarball --archive "/usr/src/$NAME-$VERSION.dkms.tar.gz" + else + dkms add -m $NAME -v $VERSION + fi + + echo "Installing prebuilt kernel module binaries (if any)" + set +e + IFS=' +' + for kern in `dkms status -m $NAME -v $VERSION -a $c_arch | grep ": built" | awk {'print $3'} | sed 's/,$//'`; do + echo "Trying kernel: $kern" + dkms install --force -m $NAME -v $VERSION -k $kern -a $c_arch + done + unset IFS + set -e + + # If none installed, install. + ##if [ `dkms status -m $NAME -v $VERSION -k $c_kern -a $c_arch | grep -c ": installed"` -eq 0 ]; then + dkms_status=`dkms status -m $NAME -v $VERSION -k $c_kern -a $c_arch` + if [ `echo $dkms_status | grep -c ": installed"` -eq 0 ]; then + if [ `echo $c_kern | grep -c "BOOT"` -eq 0 ] && [ -e "/lib/modules/$c_kern/build/include" ]; then + # Only build if we need to. + if [ `echo $dkms_status | grep -c ": built"` -eq 0 ]; then + echo "Building module..." + dkms build -m $NAME -v $VERSION + fi + echo "Installing module..." + dkms install -m $NAME -v $VERSION + elif [ `echo $c_kern | grep -c "BOOT"` -gt 0 ]; then + echo "" + echo "Module build for the currently running kernel was skipped since you" + echo "are running a BOOT variant of the kernel." + else + echo "" + echo "Module build for the currently running kernel was skipped since the" + echo "kernel source for this kernel does not seem to be installed." + fi + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 +