diff options
author | Antonio Hernández Blas <hba.nihilismus@gmail.com> | 2011-05-10 11:02:51 -0500 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2011-05-10 11:02:51 -0500 |
commit | a2ecab12c1ff62b13b456198191d8e315e4e88e3 (patch) | |
tree | c258b6f435ce60b2c0f1af62b6f5aa1f40aefb22 /system/tp_smapi/tp_smapi.SlackBuild | |
parent | 854968f642c9363b03bc429d9479849d5a5b1f18 (diff) | |
download | slackbuilds-a2ecab12c1ff62b13b456198191d8e315e4e88e3.tar.gz |
system/tp_smapi: Added (SMAPI BIOS access for ThinkPad Laptops)
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'system/tp_smapi/tp_smapi.SlackBuild')
-rw-r--r-- | system/tp_smapi/tp_smapi.SlackBuild | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/system/tp_smapi/tp_smapi.SlackBuild b/system/tp_smapi/tp_smapi.SlackBuild new file mode 100644 index 0000000000..3e982c13fa --- /dev/null +++ b/system/tp_smapi/tp_smapi.SlackBuild @@ -0,0 +1,126 @@ +#!/bin/sh + +# Slackware build script for tp_smapi + +# Copyright (c) 2008-2011, Antonio Hernández Blas <hba.nihilismus@gmail.com> +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1.- Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=tp_smapi +VERSION=0.40 +BUILD=${BUILD:-4} +TAG=${TAG:-_SBo} + +KERNEL=${KERNEL:-"$(uname -r)"} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tgz +cd $PRGNAM-$VERSION +chown -R root:root . +chmod -R u+w,go+r-w,a-s . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Thanks to debian, gentoo and arch guys for this patches :) +# Fix tp_smapi build in kernel version >= 2.6.37 +# http://sourceforge.net/tracker/index.php?func=detail&aid=3153602&group_id=1212&atid=101212 +patch -p1 < $CWD/patches/tp_smapi-0.40-2.6.37.patch + +# Adds axis inversion handling for x200 and x200s +# https://aur.archlinux.org/packages.php?ID=3985 +# This patch *does not* come from upstream, so use it at your own risk. +# patch -p1 < $CWD/patches/tp_smapi-0.40-x200-x200s-support.patch + +( case "$ARCH" in + i?86) ARCH=x86 ;; + esac + echo "ARCH=$ARCH" + make HDAPS=1 KVER=$KERNEL +) || exit 1 + +mkdir -p $PKG/lib/modules/${KERNEL}/extra +install -m 0664 hdaps.ko \ + $PKG/lib/modules/${KERNEL}/extra/ + +mkdir -p $PKG/lib/modules/${KERNEL}/kernel/drivers/firmware +install -m 0664 thinkpad_ec.ko tp_smapi.ko \ + $PKG/lib/modules/${KERNEL}/kernel/drivers/firmware + +# Make sure the tp_smapi module is loaded before the hdaps module +# Make sure the thinkpad_ec module will load +# We're not going to install these with a .new extension, because we don't +# want them to be present if the package is removed. +mkdir -p $PKG/etc/modprobe.d +cat $CWD/modprobe.tp_smapi.conf > $PKG/etc/modprobe.d/tp_smapi.conf +cat $CWD/modprobe.thinkpad_ec.conf > $PKG/etc/modprobe.d/thinkpad_ec.conf + +# Make hdaps kernel module from this package be prefered over hdaps in kernel-module package. +mkdir -p $PKG/etc/depmod.d +echo "override hdaps ${KERNEL} extra" > $PKG/etc/depmod.d/hdaps.conf + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Fixup permissions on kernel modules +find $PKG/lib/modules -type f -exec chmod 0644 {} \; + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a CHANGES README TODO $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION\_$(echo ${KERNEL} | tr '-' '_')-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} |