aboutsummaryrefslogtreecommitdiff
path: root/sys/apps/microcode_ctl/microcode_ctl.SlackBuild
diff options
context:
space:
mode:
authorluis <luis@370017ae-e619-0410-ac65-c121f96126d4>2006-12-15 19:07:31 +0000
committerluis <luis@370017ae-e619-0410-ac65-c121f96126d4>2006-12-15 19:07:31 +0000
commit33dcc63dc4b58eacf4e57d7bdec1e60e6668df80 (patch)
tree43f9c4ea54f908a466fb9fe5a7c822167ff47463 /sys/apps/microcode_ctl/microcode_ctl.SlackBuild
parentedd2fe21a3f3418948e44fdce0e13ae191bc9060 (diff)
downloadslackbuilds-33dcc63dc4b58eacf4e57d7bdec1e60e6668df80.tar.gz
slackbuilds-33dcc63dc4b58eacf4e57d7bdec1e60e6668df80.tar.bz2
Adicionando pacote sys/apps/microcode_ctl
git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@921 370017ae-e619-0410-ac65-c121f96126d4
Diffstat (limited to 'sys/apps/microcode_ctl/microcode_ctl.SlackBuild')
-rwxr-xr-xsys/apps/microcode_ctl/microcode_ctl.SlackBuild175
1 files changed, 175 insertions, 0 deletions
diff --git a/sys/apps/microcode_ctl/microcode_ctl.SlackBuild b/sys/apps/microcode_ctl/microcode_ctl.SlackBuild
new file mode 100755
index 00000000..f805debf
--- /dev/null
+++ b/sys/apps/microcode_ctl/microcode_ctl.SlackBuild
@@ -0,0 +1,175 @@
+#!/bin/bash
+#
+# SlackBuild for microcode_ctl
+# http://urbanmyth.org/microcode/
+#
+# Author: Luis ( luis at riseup d0t net )
+#
+
+CWD=`pwd`
+
+# Look for slackbuildrc
+if [ -f ~/.slackbuildrc ]; then
+ source ~/.slackbuildrc
+elif [ -f /etc/slackbuildrc ]; then
+ source /etc/slackbuildrc
+fi
+
+# Set variables
+SRC_NAME="microcode_ctl"
+PKG_NAME="microcode_ctl"
+ARCH=${ARCH:=i486}
+VERSION=${VERSION:=1.14}
+BUILD=${BUILD:=1ls}
+SRC_DIR=${SRC_DIR:=$CWD}
+TMP=${TMP:=/tmp}
+PKG=${PKG:=$TMP/package-$PKG_NAME}
+REPOS=${REPOS:=$TMP}
+PREFIX=${PREFIX:=/usr/local}
+PKG_SRC=$SRC_NAME-$VERSION
+
+# Set system libraries' path and optmization flags based on $ARCH
+LIBDIR=$PREFIX/lib
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIR="$PREFIX/lib64"
+fi
+
+# Set error codes (used by createpkg)
+ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33
+ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36
+ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39
+ERROR_PATCH=40; ERROR_VCS=41; ERROR_MKDIR=42
+
+# Clean up any leftovers of previous builds
+rm -rf $PKG_SRC 2> /dev/null
+rm -rf $PKG 2> /dev/null
+
+# Create directories, if necessary
+mkdir -p $SRC_DIR || exit $ERROR_MKDIR
+mkdir -p $PKG || exit $ERROR_MKDIR
+mkdir -p $REPOS || exit $ERROR_MKDIR
+
+# Dowload source, if necessary
+SRC="$PKG_SRC.tar.gz"
+URL="http://urbanmyth.org/microcode/$SRC"
+
+if [ ! -f "$SRC_DIR/$SRC" ]; then
+ wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET
+fi
+
+# Untar, compile and install
+tar --no-same-owner --no-same-permissions -xvf $SRC_DIR/$SRC || exit $ERROR_TAR
+cd $PKG_SRC
+make all || exit $ERROR_MAKE
+if [ ! -c /dev/cpu/microcode ]; then
+ make device || exit $ERROR_MAKE
+fi
+make install DESTDIR=$PKG || exit $ERROR_INSTALL
+
+# Strip binaries
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Compress and link manpages, if any
+if [ -d $PKG/$PREFIX/man ]; then
+ ( cd $PKG/$PREFIX/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info files, if any
+if [ -d $PKG/$PREFIX/info ]; then
+ ( cd $PKG/$PREFIX/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# Install documentation
+DOCS="Changelog README intel-*.txt"
+mkdir -p $PKG/$PREFIX/doc/$PKG_NAME-$VERSION || exit $ERROR_MKDIR
+cp -a $DOCS $PKG/$PREFIX/doc/$PKG_NAME-$VERSION
+
+# Move the initialization script to /etc/rc.d/, renaming it to rc.*
+( cd $PKG/etc/rc.d
+ mv -f init.d/microcode_ctl rc.microcode_ctl.new
+ rmdir init.d/
+)
+
+# Patch the initialization script to be less verbose
+( cd $PKG
+ patch -Np1 < $CWD/microcode_ctl-less_verbose.patch || exit $ERROR_PATCH
+)
+
+# Add package description (slack-desc)
+mkdir -p $PKG/install || exit $ERROR_MKDIR
+cat << EODESC > $PKG/install/slack-desc
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler-------------------------------------------------|
+microcode_ctl: microcode_ctl
+microcode_ctl:
+microcode_ctl: Decodes and sends new microcode to the kernel driver to be
+microcode_ctl: uploaded to Intel IA32 family processors (Pentium Pro, PII,
+microcode_ctl: Celeron, PIII, Xeon, Pentium 4 etc, x86_64). It depends on the
+microcode_ctl: Linux kernel microcode driver.
+microcode_ctl:
+microcode_ctl: The microcode update is volatile and needs to be uploaded on
+microcode_ctl: each system boot.
+microcode_ctl:
+microcode_ctl: For more information, http://urbanmyth.org/microcode/
+EODESC
+
+# Add a post-installation script (doinst.sh)
+cat << EOSCRIPT > $PKG/install/doinst.sh
+config() {
+ NEW="\$1"
+ OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
+ # If there's no config file by that name, mv it over
+ if [ ! -r \$OLD ]; then
+ mv \$NEW \$OLD
+ elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then
+ # Toss the redundant copy
+ rm \$NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config etc/rc.d/rc.microcode_ctl.new
+EOSCRIPT
+
+# Build the package
+cd $PKG
+makepkg -l y -c n $REPOS/$PKG_NAME-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG
+
+# Delete source and build directories, if requested
+if [ "$CLEANUP" == "yes" ]; then
+ rm -rf $CWD/$PKG_SRC $PKG
+fi