git-svn-id: http://svn.calculate.ru/overlay@1206 c91db197-33c1-4113-bf15-f8a5c547ca64

atratsevskiy
ztime 15 years ago
parent 9c1b1535fc
commit 58e9523b6f

@ -0,0 +1,2 @@
DIST etercifs-4.2.1-eter1gentoo.noarch.tar.gz 1617197 RMD160 5f63e59e8f0a6612ef4f08d8b17f766bd21b54b8 SHA1 44c6c3d20c34da6b4641f3a29c59adfe92749703 SHA256 cfce267154be6cc422b4eb45657febad9d1d7a0f59592fee14854bcaac3ca67c
EBUILD etercifs-4.2.1.ebuild 11739 RMD160 6ca6283a4e05b6a85d9c3886e479f80f024dc018 SHA1 3de6a611b4f1335cb495cc83c843b6f7441f7833 SHA256 ed89679290f6f4c56a3e56e830ff163e742c98f5aa286eeaf3c0cd1be13944d9

@ -0,0 +1,337 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-fs/etercifs/etercifs-999.ebuild,v 1.1 2008/11/29 20:39:49 vapier Exp $
# XXX: the tarball here is just the kernel modules split out of the binary
# package that comes from virtualbox-bin
inherit eutils
DESCRIPTION="Kernel Modules for Etersoft CIFS"
HOMEPAGE="http://www.etersoft.ru/"
SRC_URI="http://updates.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.2.1/Gentoo/2007/etercifs-4.2.1-eter1gentoo.noarch.tar.gz"
SRC_PN="kernel-source-etercifs"
SRC_LEGACY_VER="1.50c"
SRC_2_6_1623_VER="1.50"
SRC_2_6_2425_VER="1.52"
SRC_2_6_26_VER="1.53"
SRC_2_6_27_VER="1.54"
SRC_2_6_28_VER="1.55"
FILE_URI="/var/tmp/portage/net-fs/etercifs-4.2.1/work/usr/share/etercifs/sources"
FILE1_URI="$FALE_URI/${P}.tar.bz2 $FALE_URI/${SRC_PN}-legacy-${SRC_LEGACY_VER}.tar.bz2 $FALE_URI/${SRC_PN}-2.6.16-${SRC_2_6_1623_VER}.tar.bz2 $FALE_URI/${SRC_PN}-2.6.23-${SRC_2_6_1623_VER}.tar.bz2 $FALE_URI/${SRC_PN}-2.6.24-${SRC_2_6_2425_VER}.tar.bz2 $FALE_URI/${SRC_PN}-2.6.25-${SRC_2_6_2425_VER}.tar.bz2 $FALE_URI/${SRC_PN}-2.6.26-${SRC_2_6_26_VER}.tar.bz2 $FALE_URI/${SRC_PN}-2.6.27-${SRC_2_6_27_VER}.tar.bz2 $FALE_URI/${SRC_PN}-2.6.28-${SRC_2_6_28_VER}.tar.bz2"
FILE2_URI="/var/tmp/portage/net-fs/etercifs-4.2.1/work/usr/share/etercifs/"
FILE3_URI="/var/tmp/portage/net-fs/etercifs-4.2.1/work/etc/init.d"
FILE4_URI="/var/tmp/portage/net-fs/etercifs-4.2.1/work/"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
src_unpack() {
unpack etercifs-4.2.1-eter1gentoo.noarch.tar.gz
}
src_install() {
mkdir -p ${D}/etc
echo DATADIR=/usr/share/${PN} > ${D}/etc/${PN}.conf
echo SRC_DIR=/usr/src/${P} >> ${D}/etc/${PN}.conf
echo MODULENAME=${PN} >> ${D}/etc/${PN}.conf
echo MODULEVERSION=${PV} >> ${D}/etc/${PN}.conf
mkdir -p ${D}/usr/share/${PN}
install -m755 ${FILE2_URI}buildmodule.sh ${D}/usr/share/${PN}
install -m755 ${FILE2_URI}functions.sh ${D}/usr/share/${PN}
mkdir -p ${D}/etc/init.d
mkdir -p ${D}/etc/conf.d
mkdir -p ${D}/etc/runlevels/boot
install -m755 ${FILE3_URI}/etercifs ${D}/etc/init.d/etercifs
install -m755 ${FILE3_URI}/etercifs.outformat ${D}/etc/init.d/etercifs.outformat
install -m755 ${FILE3_URI}/etercifs ${D}/etc/conf.d/etercifs
install -m755 ${FILE3_URI}/etercifs.outformat ${D}/etc/conf.d/etercifs.outformat
install -m755 ${FILE3_URI}/etercifs ${D}/etc/runlevels/boot/etercifs
ETERCIFS_SRC="usr/share/${PN}/sources"
mkdir -p ${D}/${ETERCIFS_SRC}
cp ${FILE_URI}/${SRC_PN}-2.6.16-${SRC_2_6_1623_VER}.tar.bz2 ${D}/${ETERCIFS_SRC}/${SRC_PN}-2.6.16-${SRC_2_6_1623_VER}.tar.bz2
cp ${FILE_URI}/${SRC_PN}-2.6.23-${SRC_2_6_1623_VER}.tar.bz2 ${D}/${ETERCIFS_SRC}/${SRC_PN}-2.6.23-${SRC_2_6_1623_VER}.tar.bz2
cp ${FILE_URI}/${SRC_PN}-2.6.24-${SRC_2_6_2425_VER}.tar.bz2 ${D}/${ETERCIFS_SRC}/${SRC_PN}-2.6.24-${SRC_2_6_2425_VER}.tar.bz2
cp ${FILE_URI}/${SRC_PN}-2.6.25-${SRC_2_6_2425_VER}.tar.bz2 ${D}/${ETERCIFS_SRC}/${SRC_PN}-2.6.25-${SRC_2_6_2425_VER}.tar.bz2
cp ${FILE_URI}/${SRC_PN}-2.6.26-${SRC_2_6_26_VER}.tar.bz2 ${D}/${ETERCIFS_SRC}/${SRC_PN}-2.6.26-${SRC_2_6_26_VER}.tar.bz2
cp ${FILE_URI}/${SRC_PN}-2.6.27-${SRC_2_6_27_VER}.tar.bz2 ${D}/${ETERCIFS_SRC}/${SRC_PN}-2.6.27-${SRC_2_6_27_VER}.tar.bz2
cp ${FILE_URI}/${SRC_PN}-2.6.28-${SRC_2_6_28_VER}.tar.bz2 ${D}/${ETERCIFS_SRC}/${SRC_PN}-2.6.28-${SRC_2_6_28_VER}.tar.bz2
}
pkg_postinst() {
if [ -f /etc/etercifs.conf ] ; then
. /etc/etercifs.conf
else
fatal "Not found configuration file /etc/etercifs.conf"
fi
MODULEFILENAME=etercifs.ko
[ -n "$TESTBUILD" ] || TESTBUILD=0
[ -n "$DKMSBUILD" ] || DKMSBUILD=0
fatal()
{
echo $@
exit 1
}
exit_handler()
{
local rc=$?
trap - EXIT
[ -z "$tmpdir" ] || rm -rf -- "$tmpdir"
exit $rc
}
detect_etercifs_sources()
{
[ -n "$ETERCIFS_SOURCES_LIST" ] || ETERCIFS_SOURCES_LIST=$DATADIR/sources/kernel-source-etercifs*
[ -n "`ls $ETERCIFS_SOURCES_LIST`" ] || fatal "Etercifs kernel module sources does not installed!"
KERNEL_SOURCE_ETERCIFS_LINK=`ls -1 $ETERCIFS_SOURCES_LIST | grep $KERNEL | sort -r | head -n 1`
[ -f "$KERNEL_SOURCE_ETERCIFS_LINK" ] || fatal "Etercifs kernel module sources for current kernel does not installed!"
KERNEL_SOURCE_ETERCIFS=`readlink -f $KERNEL_SOURCE_ETERCIFS_LINK`
[ "$KERNEL_SOURCE_ETERCIFS" ] || fatal "Etercifs kernel module sources for current kernel does not installed!"
}
create_builddir()
{
if [ -n "$BUILDDIR" ] ; then
tmpdir=$BUILDDIR
else
tmpdir=
tmpdir="$(mktemp -dt "Etercifs.XXXXXXXX")"
fi
tar -xjf $KERNEL_SOURCE_ETERCIFS -C $tmpdir
trap exit_handler HUP PIPE INT QUIT TERM EXIT
FILENAME=`basename $KERNEL_SOURCE_ETERCIFS`
BUILDDIR=$tmpdir/${FILENAME%.tar.bz2}
}
kernel_release()
{
KERNEL=`echo $KERNELVERSION | sed 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/'`
}
# Heuristic
detect_kernel()
{
# Detect kernel version
if [ -f $KERNSRC/.kernelrelease ] ; then
KERNELVERSION=`head -n 1 $KERNSRC/.kernelrelease`
elif [ -f $KERNSRC/include/config/kernel.release ] ; then
KERNELVERSION=`head -n 1 $KERNSRC/include/config/kernel.release`
elif [ -f $KERNSRC/include/linux/version.h ] ; then
KERNELVERSION=`head -n 1 $KERNSRC/include/linux/version.h | grep UTS_RELEASE | cut -d" " -f 3 | sed -e 's|"||g'`
fi
if [ -z "$KERNELVERSION" ] ; then
head -n 5 $KERNSRC/Makefile | sed -e "s| ||g" >get_version
. ./get_version
KERNELVERSION=$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION
# Hack for strange SUSE 10.2
if [ -z "$EXTRAVERSION" ] ; then
KERNELVERSION=`grep KERNELSRC $KERNSRC/Makefile | head -n 1 | sed -e "s|.*linux-||g"`
[ -n "$KERNELVERSION" ] && KERNELVERSION=$KERNELVERSION-`basename $KERNSRC`
fi
fi
kernel_release
}
detect_host_kernel()
{
[ -n "$KERNELVERSION" ] || KERNELVERSION=`uname -r`
kernel_release
if [ -z "$KERNSRC" ]; then
KERNSRC=/lib/modules/$KERNELVERSION/build
fi
}
check_headers()
{
if [ ! -f $KERNSRC/include/linux/version.h ]; then
cat >&2 <<EOF
Error: no kernel headers found at $KERNSRC
Please install package
kernel-headers-modules-XXXX for ALT Linux
kernel-XXXX-devel for FCx / ASP Linux
dkms-etercifs for Mandriva 2009
linux-headers-XXXX for Debian / Ubuntu
kernel-source-XXXX for SuSe
kernel-source-XXXX for Slackware / MOPSLinux
or use KERNSRC variable to set correct location
Exiting...
EOF
exit 1
fi
}
set_gcc()
{
if [ -f $KERNSRC/gcc_version.inc ] ; then
. $KERNSRC/gcc_version.inc
if [ $TESTBUILD -ne 1 ] ; then
echo "Use GCC $GCC_VERSION"
fi
export GCCNAME=gcc-$GCC_VERSION
export USEGCC="CC=$GCCNAME"
else
export GCCNAME=gcc
fi
[ `which make` ] || fatal "GNU make utility have not found. Please install make package."
PATHGCC=`which $GCCNAME`
[ $PATHGCC ] || fatal "GCC compiler have not found. Please install gcc package."
echo $PATHGCC
}
dkms_build_module()
{
detect_etercifs_sources
STATUS=`dkms status -m $MODULENAME -v $MODULEVERSION`
[ "$STATUS" ] || dkms add -m $MODULENAME -v $MODULEVERSION
tar -xjf $KERNEL_SOURCE_ETERCIFS -C $SRC_DIR
FILENAME=`basename $KERNEL_SOURCE_ETERCIFS`
DIRNAME=${FILENAME%.tar.bz2}
mv -f $SRC_DIR/$DIRNAME/* $SRC_DIR
BUILDDIR=$SRC_DIR
change_cifsversion
rm -rf $SRC_DIR/$DIRNAME
dkms uninstall -m $MODULENAME -v $MODULEVERSION --rpm_safe_upgrade
dkms build -m $MODULENAME -v $MODULEVERSION --rpm_safe_upgrade
dkms install -m $MODULENAME -v $MODULEVERSION --rpm_safe_upgrade
}
change_cifsversion()
{
if [ -f $BUILDDIR/cifsfs.h ] ; then
CIFSVERSION=`cat $BUILDDIR/cifsfs.h | grep CIFS_VERSION`
CIFSVERSION=`echo $CIFSVERSION | sed 's|#define CIFS_VERSION||g'`
CIFSVERSION=`echo $CIFSVERSION | sed 's|"||g'`
CIFSVERSION=`echo $CIFSVERSION | sed 's| ||g'`
sed -i "s/$CIFSVERSION/$MODULEVERSION/g" $BUILDDIR/cifsfs.h
echo "Setting etercifs version: OK"
else
echo "Setting etercifs version: FAIL"
fi
}
compile_module()
{
detect_etercifs_sources
create_builddir
check_headers
set_gcc
# SMP build
[ -z "$RPM_BUILD_NCPUS" ] && RPM_BUILD_NCPUS=`/usr/bin/getconf _NPROCESSORS_ONLN`
[ "$RPM_BUILD_NCPUS" -gt 1 ] && MAKESMP="-j$RPM_BUILD_NCPUS" || MAKESMP=""
echo "Checking the kernel configuration..."
if [ -r "$KERNSRC" ]; then
CONF_STRING=`cat $KERNSRC/.config | grep CONFIG_CIFS=`
CONF_LETTER=`echo $CONF_STRING | cut -b 13-13`
case "$CONF_LETTER" in
"m")
echo "OK"
;;
"y")
echo "WARNING: the kernel is configured with cifs supporting, but not as a module!"
;;
*)
echo "WARNING: the kernel is configured without cifs supporting!"
esac
else
echo "WARNING: the .config file in kernel source directory does not exist!"
fi
change_cifsversion
make $USEGCC -C $KERNSRC here=$BUILDDIR SUBDIRS=$BUILDDIR clean
make $USEGCC -C $KERNSRC here=$BUILDDIR SUBDIRS=$BUILDDIR modules $MAKESMP
}
install_module()
{
if [ -z "$INSTALL_MOD_PATH" ]; then
INSTALL_MOD_PATH=/lib/modules/$KERNELVERSION/kernel/fs/cifs
fi
test -r "$BUILDDIR/$MODULEFILENAME" || { echo "can't locate built module $MODULEFILENAME" ; exit 1 ; }
strip --strip-debug --discard-all $BUILDDIR/$MODULEFILENAME
echo "Copying built module to $INSTALL_MOD_PATH"
mkdir -p $INSTALL_MOD_PATH
install -m 644 -o root -g root $BUILDDIR/$MODULEFILENAME $INSTALL_MOD_PATH/ || exit 1
depmod -ae || exit 1
}
check_build_module()
{
if [ -r "$BUILDDIR/$MODULEFILENAME" ] ; then
echo "$KERNELVERSION - OK"
BUILTLIST="$BUILTLIST---DONE"
else
echo "can't locate built module $MODULEFILENAME"
echo "$KERNELVERSION - FAIL"
fi
}
if [ $TESTBUILD -ne 1 ] ; then
if [ $DKMSBUILD -eq 1 ] ; then
detect_host_kernel
echo
echo "Building for $KERNELVERSION Linux kernel with dkms"
dkms_build_module
else
detect_host_kernel
echo
echo "Building for $KERNELVERSION Linux kernel (headers in $KERNSRC)"
compile_module
install_module
fi
else
echo
echo "====================================================================="
echo "Check build etercifs module for all founded kernels"
BUILTLIST=
for LM in `ls /lib/modules` ; do
KERNSRC=`readlink /lib/modules/$LM/build`
if [ $KERNSRC ] ; then
[ -L $KERNSRC ] && continue
[ -f $KERNSRC/.config ] || continue
echo "---------------------------------------------------------------------"
detect_kernel
if [ -z "$KERNELVERSION" ] ; then
echo "Can't detect kernel version in $KERNSRC"
else
echo "Build for $KERNSRC (detected as $KERNELVERSION)"
BUILTLIST="$BUILTLIST $KERNELVERSION"
compile_module
check_build_module
fi
fi
done
echo "====================================================================="
echo "CIFS Linux kernel module built for follow kernels (marked as ---DONE):"
echo "---------------------------------------------------------------------"
for i in $BUILTLIST ; do echo " $i" ; done
echo "====================================================================="
fi
}
Loading…
Cancel
Save