summaryrefslogtreecommitdiff
path: root/sys-kernel/debian-sources-lts
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/debian-sources-lts')
-rw-r--r--sys-kernel/debian-sources-lts/Manifest4
-rw-r--r--sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41-r1.ebuild161
-rw-r--r--sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41.ebuild156
-rw-r--r--sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43-r1.ebuild161
-rw-r--r--sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43.ebuild156
-rw-r--r--sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.46.ebuild162
-rwxr-xr-xsys-kernel/debian-sources-lts/files/config-extract216
-rw-r--r--sys-kernel/debian-sources-lts/files/debian-sources-2.6.32.30-bridgemac.patch15
-rw-r--r--sys-kernel/debian-sources-lts/files/debian-sources-2.6.38.3-bridgemac.patch15
-rw-r--r--sys-kernel/debian-sources-lts/metadata.xml6
10 files changed, 1052 insertions, 0 deletions
diff --git a/sys-kernel/debian-sources-lts/Manifest b/sys-kernel/debian-sources-lts/Manifest
new file mode 100644
index 00000000..c5e32f78
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/Manifest
@@ -0,0 +1,4 @@
+DIST linux-2.6_2.6.32-41.diff.gz 15924342 SHA256 4c22fc57902393b12b12fcc3c8ed04d7a99eb4fe311131fb1f647d48a9d85c19
+DIST linux-2.6_2.6.32-43.diff.gz 16261810 SHA256 57f8a8021e590c1c0cb65afccd3f6e78716314db3ac78fae8ddaebb2ebf36801
+DIST linux-2.6_2.6.32-46.diff.gz 16321966 SHA256 8e6220b01f30ee9acb3ae8a6a7825f054ddbe447914cd0a6d60cfb29b7553467 SHA512 047407593c281c2b9920acc6fa173c414d582823e66601894648050828d14c6fa3a07b99c48b53fcd16d6a1fa128f705246f1fa0c3d6715fa3e2a5fa7a7d083a WHIRLPOOL 68e480843569cd802d9c6d3390136f1aad149142527b1cedff8c9cd56ca764a8a83e2f8b88569ef9dbfc8569bbf18062abc6490a31a7ff352f567a2345cabc0c
+DIST linux-2.6_2.6.32.orig.tar.gz 82167227 SHA256 e9858964b9d836293e1fe3736658ab1ba20c5897b504ddb09dd4b64ec05a043d
diff --git a/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41-r1.ebuild b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41-r1.ebuild
new file mode 100644
index 00000000..db111499
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41-r1.ebuild
@@ -0,0 +1,161 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+
+inherit mount-boot
+
+SLOT=$PVR
+CKV=2.6.32
+KV_FULL=${PN}-${PVR}
+KERNEL_ARCHIVE="linux-2.6_2.6.32.orig.tar.gz"
+RESTRICT="binchecks strip"
+# based on : http://packages.ubuntu.com/maverick/linux-image-2.6.35-22-server
+LICENSE="GPL-2"
+KEYWORDS="*"
+IUSE="openvz binary"
+DEPEND="binary? ( >=sys-kernel/genkernel-3.4.12.6-r4 )"
+RDEPEND="binary? ( || ( >=sys-fs/udev-160 >=virtual/udev-171 ) )"
+DESCRIPTION="Debian Sources (and optional binary kernel)"
+HOMEPAGE="http://www.debian.org"
+MAINPATCH="linux-2.6_2.6.32-41.diff.gz"
+SRC_URI="http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${KERNEL_ARCHIVE}
+ http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${MAINPATCH}"
+S="$WORKDIR/linux-${CKV}"
+
+apply() {
+ p=$1; shift
+ case "${p##*.}" in
+ gz)
+ ca="gzip -dc"
+ ;;
+ bz2)
+ ca="bzip2 -dc"
+ ;;
+ xz)
+ ca="xz -dc"
+ ;;
+ *)
+ ca="cat"
+ ;;
+ esac
+ [ ! -e $p ] && die "patch $p not found"
+ echo "Applying patch $p"; $ca $p | patch $* || die "patch $p failed"
+}
+
+pkg_setup() {
+ unset ARCH; unset LDFLAGS #will interfere with Makefile if set
+}
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${KERNEL_ARCHIVE}
+}
+
+src_prepare() {
+ cd ${WORKDIR}
+ apply $DISTDIR/$MAINPATCH -p1
+
+ # debian-specific stuff....
+
+ mv linux-* ${S##*/} || die
+ mv debian ${S##*/}/ || die
+ cd ${S}
+ sed -i \
+ -e 's/^sys.path.append.*$/sys.path.append(".\/debian\/lib\/python")/' \
+ -e 's/^_default_home =.*$/_default_home = ".\/debian\/patches"/' \
+ debian/bin/patch.apply || die
+ python2 debian/bin/patch.apply $KV_DEB || die
+ if use openvz
+ then
+ python2 debian/bin/patch.apply -a $ARCH -f openvz || die
+ fi
+
+ # end of debian-specific stuff...
+
+ sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die
+ sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile || die
+ rm -f .config >/dev/null
+ cp -a debian ${T} || die "couldn't back up debian dir (will be wiped by mrproper)"
+ make -s mrproper || die "make mrproper failed"
+ cp -a ${T}/debian . || die "couldn't restore debian directory"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+ #mv "${TEMP}/configs" "${S}" || die
+ cd ${S}
+ local opts
+ use openvz && opts="openvz"
+ local myarch="amd64"
+ [ "$ARCH" = "x86" ] && myarch="i386"
+ cp ${FILESDIR}/config-extract . || die
+ chmod +x config-extract || die
+ ./config-extract ${myarch} ${opts} || die
+ cp .config ${T}/config || die
+ make -s mrproper || die "make mrproper failed"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+}
+
+src_compile() {
+ ! use binary && return
+ install -d ${WORKDIR}/out/{lib,boot}
+ install -d ${T}/{cache,twork}
+ install -d $WORKDIR/build $WORKDIR/out/lib/firmware
+ genkernel \
+ --no-save-config \
+ --kernel-config="$T/config" \
+ --kernname="${PN}" \
+ --build-src="$S" \
+ --build-dst=${WORKDIR}/build \
+ --makeopts="${MAKEOPTS}" \
+ --firmware-dst=${WORKDIR}/out/lib/firmware \
+ --cachedir="${T}/cache" \
+ --tempdir="${T}/twork" \
+ --logfile="${WORKDIR}/genkernel.log" \
+ --bootdir="${WORKDIR}/out/boot" \
+ --lvm \
+ --luks \
+ --iscsi \
+ --module-prefix="${WORKDIR}/out" \
+ all || die "genkernel failed"
+}
+
+src_install() {
+ # copy sources into place:
+ dodir /usr/src
+ cp -a ${S} ${D}/usr/src/linux-${P} || die
+ cd ${D}/usr/src/linux-${P}
+ # prepare for real-world use and 3rd-party module building:
+ make mrproper || die
+ cp ${T}/config .config || die
+ cp -a ${T}/debian debian || die
+ yes "" | make oldconfig || die
+ # if we didn't use genkernel, we're done. The kernel source tree is left in
+ # an unconfigured state - you can't compile 3rd-party modules against it yet.
+ use binary || return
+ make prepare || die
+ make scripts || die
+ # OK, now the source tree is configured to allow 3rd-party modules to be
+ # built against it, since we want that to work since we have a binary kernel
+ # built.
+ cp -a ${WORKDIR}/out/* ${D}/ || die "couldn't copy output files into place"
+ # module symlink fixup:
+ rm -f ${D}/lib/modules/*/source || die
+ rm -f ${D}/lib/modules/*/build || die
+ cd ${D}/lib/modules
+ # module strip:
+ find -iname *.ko -exec strip --strip-debug {} \;
+ # back to the symlink fixup:
+ local moddir="$(ls -d [23]*)"
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/source || die
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/build || die
+
+ # Fixes FL-14
+ cp "${WORKDIR}/build/System.map" "${D}/usr/src/linux-${P}/" || die
+ cp "${WORKDIR}/build/Module.symvers" "${D}/usr/src/linux-${P}/" || die
+
+}
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}usr/src/linux ]
+ then
+ ln -s linux-${P} ${ROOT}usr/src/linux
+ fi
+}
diff --git a/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41.ebuild b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41.ebuild
new file mode 100644
index 00000000..2b9f5974
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.41.ebuild
@@ -0,0 +1,156 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+
+inherit mount-boot
+
+SLOT=$PVR
+CKV=2.6.32
+KV_FULL=${PN}-${PVR}
+KERNEL_ARCHIVE="linux-2.6_2.6.32.orig.tar.gz"
+RESTRICT="binchecks strip"
+# based on : http://packages.ubuntu.com/maverick/linux-image-2.6.35-22-server
+LICENSE="GPL-2"
+KEYWORDS="*"
+IUSE="openvz binary"
+DEPEND="binary? ( >=sys-kernel/genkernel-3.4.12.6-r4 )"
+RDEPEND="binary? ( || ( >=sys-fs/udev-160 >=virtual/udev-171 ) )"
+DESCRIPTION="Debian Sources (and optional binary kernel)"
+HOMEPAGE="http://www.debian.org"
+MAINPATCH="linux-2.6_2.6.32-41.diff.gz"
+SRC_URI="http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${KERNEL_ARCHIVE}
+ http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${MAINPATCH}"
+S="$WORKDIR/linux-${CKV}"
+
+apply() {
+ p=$1; shift
+ case "${p##*.}" in
+ gz)
+ ca="gzip -dc"
+ ;;
+ bz2)
+ ca="bzip2 -dc"
+ ;;
+ xz)
+ ca="xz -dc"
+ ;;
+ *)
+ ca="cat"
+ ;;
+ esac
+ [ ! -e $p ] && die "patch $p not found"
+ echo "Applying patch $p"; $ca $p | patch $* || die "patch $p failed"
+}
+
+pkg_setup() {
+ unset ARCH; unset LDFLAGS #will interfere with Makefile if set
+}
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${KERNEL_ARCHIVE}
+}
+
+src_prepare() {
+ cd ${WORKDIR}
+ apply $DISTDIR/$MAINPATCH -p1
+
+ # debian-specific stuff....
+
+ mv linux-* ${S##*/} || die
+ mv debian ${S##*/}/ || die
+ cd ${S}
+ sed -i \
+ -e 's/^sys.path.append.*$/sys.path.append(".\/debian\/lib\/python")/' \
+ -e 's/^_default_home =.*$/_default_home = ".\/debian\/patches"/' \
+ debian/bin/patch.apply || die
+ python2 debian/bin/patch.apply $KV_DEB || die
+ if use openvz
+ then
+ python2 debian/bin/patch.apply -a $ARCH -f openvz || die
+ fi
+
+ # end of debian-specific stuff...
+
+ sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die
+ sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile || die
+ rm -f .config >/dev/null
+ cp -a debian ${T} || die "couldn't back up debian dir (will be wiped by mrproper)"
+ make -s mrproper || die "make mrproper failed"
+ cp -a ${T}/debian . || die "couldn't restore debian directory"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+ #mv "${TEMP}/configs" "${S}" || die
+ cd ${S}
+ local opts
+ use openvz && opts="openvz"
+ local myarch="amd64"
+ [ "$ARCH" = "x86" ] && myarch="i386"
+ cp ${FILESDIR}/config-extract . || die
+ chmod +x config-extract || die
+ ./config-extract ${myarch} ${opts} || die
+ cp .config ${T}/config || die
+ make -s mrproper || die "make mrproper failed"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+}
+
+src_compile() {
+ ! use binary && return
+ install -d ${WORKDIR}/out/{lib,boot}
+ install -d ${T}/{cache,twork}
+ install -d $WORKDIR/build $WORKDIR/out/lib/firmware
+ genkernel \
+ --no-save-config \
+ --kernel-config="$T/config" \
+ --kernname="${PN}" \
+ --build-src="$S" \
+ --build-dst=${WORKDIR}/build \
+ --makeopts="${MAKEOPTS}" \
+ --firmware-dst=${WORKDIR}/out/lib/firmware \
+ --cachedir="${T}/cache" \
+ --tempdir="${T}/twork" \
+ --logfile="${WORKDIR}/genkernel.log" \
+ --bootdir="${WORKDIR}/out/boot" \
+ --lvm \
+ --luks \
+ --iscsi \
+ --module-prefix="${WORKDIR}/out" \
+ all || die "genkernel failed"
+}
+
+src_install() {
+ # copy sources into place:
+ dodir /usr/src
+ cp -a ${S} ${D}/usr/src/linux-${P} || die
+ cd ${D}/usr/src/linux-${P}
+ # prepare for real-world use and 3rd-party module building:
+ make mrproper || die
+ cp ${T}/config .config || die
+ cp -a ${T}/debian debian || die
+ yes "" | make oldconfig || die
+ # if we didn't use genkernel, we're done. The kernel source tree is left in
+ # an unconfigured state - you can't compile 3rd-party modules against it yet.
+ use binary || return
+ make prepare || die
+ make scripts || die
+ # OK, now the source tree is configured to allow 3rd-party modules to be
+ # built against it, since we want that to work since we have a binary kernel
+ # built.
+ cp -a ${WORKDIR}/out/* ${D}/ || die "couldn't copy output files into place"
+ # module symlink fixup:
+ rm -f ${D}/lib/modules/*/source || die
+ rm -f ${D}/lib/modules/*/build || die
+ cd ${D}/lib/modules
+ # module strip:
+ find -iname *.ko -exec strip --strip-debug {} \;
+ # back to the symlink fixup:
+ local moddir="$(ls -d [23]*)"
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/source || die
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/build || die
+}
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}usr/src/linux ]
+ then
+ ln -s linux-${P} ${ROOT}usr/src/linux
+ fi
+}
diff --git a/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43-r1.ebuild b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43-r1.ebuild
new file mode 100644
index 00000000..36225eef
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43-r1.ebuild
@@ -0,0 +1,161 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+
+inherit mount-boot
+
+SLOT=$PVR
+CKV=2.6.32
+KV_FULL=${PN}-${PVR}
+KERNEL_ARCHIVE="linux-2.6_2.6.32.orig.tar.gz"
+RESTRICT="binchecks strip"
+# based on : http://packages.ubuntu.com/maverick/linux-image-2.6.35-22-server
+LICENSE="GPL-2"
+KEYWORDS="*"
+IUSE="openvz binary"
+DEPEND="binary? ( >=sys-kernel/genkernel-3.4.12.6-r4 )"
+RDEPEND="binary? ( || ( >=sys-fs/udev-160 >=virtual/udev-171 ) )"
+DESCRIPTION="Debian Sources (and optional binary kernel)"
+HOMEPAGE="http://www.debian.org"
+MAINPATCH="linux-2.6_2.6.32-43.diff.gz"
+SRC_URI="http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${KERNEL_ARCHIVE}
+ http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${MAINPATCH}"
+S="$WORKDIR/linux-${CKV}"
+
+apply() {
+ p=$1; shift
+ case "${p##*.}" in
+ gz)
+ ca="gzip -dc"
+ ;;
+ bz2)
+ ca="bzip2 -dc"
+ ;;
+ xz)
+ ca="xz -dc"
+ ;;
+ *)
+ ca="cat"
+ ;;
+ esac
+ [ ! -e $p ] && die "patch $p not found"
+ echo "Applying patch $p"; $ca $p | patch $* || die "patch $p failed"
+}
+
+pkg_setup() {
+ unset ARCH; unset LDFLAGS #will interfere with Makefile if set
+}
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${KERNEL_ARCHIVE}
+}
+
+src_prepare() {
+ cd ${WORKDIR}
+ apply $DISTDIR/$MAINPATCH -p1
+
+ # debian-specific stuff....
+
+ mv linux-* ${S##*/} || die
+ mv debian ${S##*/}/ || die
+ cd ${S}
+ sed -i \
+ -e 's/^sys.path.append.*$/sys.path.append(".\/debian\/lib\/python")/' \
+ -e 's/^_default_home =.*$/_default_home = ".\/debian\/patches"/' \
+ debian/bin/patch.apply || die
+ python2 debian/bin/patch.apply $KV_DEB || die
+ if use openvz
+ then
+ python2 debian/bin/patch.apply -a $ARCH -f openvz || die
+ fi
+
+ # end of debian-specific stuff...
+
+ sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die
+ sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile || die
+ rm -f .config >/dev/null
+ cp -a debian ${T} || die "couldn't back up debian dir (will be wiped by mrproper)"
+ make -s mrproper || die "make mrproper failed"
+ cp -a ${T}/debian . || die "couldn't restore debian directory"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+ #mv "${TEMP}/configs" "${S}" || die
+ cd ${S}
+ local opts
+ use openvz && opts="openvz"
+ local myarch="amd64"
+ [ "$ARCH" = "x86" ] && myarch="i386"
+ cp ${FILESDIR}/config-extract . || die
+ chmod +x config-extract || die
+ ./config-extract ${myarch} ${opts} || die
+ cp .config ${T}/config || die
+ make -s mrproper || die "make mrproper failed"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+}
+
+src_compile() {
+ ! use binary && return
+ install -d ${WORKDIR}/out/{lib,boot}
+ install -d ${T}/{cache,twork}
+ install -d $WORKDIR/build $WORKDIR/out/lib/firmware
+ genkernel \
+ --no-save-config \
+ --kernel-config="$T/config" \
+ --kernname="${PN}" \
+ --build-src="$S" \
+ --build-dst=${WORKDIR}/build \
+ --makeopts="${MAKEOPTS}" \
+ --firmware-dst=${WORKDIR}/out/lib/firmware \
+ --cachedir="${T}/cache" \
+ --tempdir="${T}/twork" \
+ --logfile="${WORKDIR}/genkernel.log" \
+ --bootdir="${WORKDIR}/out/boot" \
+ --lvm \
+ --luks \
+ --iscsi \
+ --module-prefix="${WORKDIR}/out" \
+ all || die "genkernel failed"
+}
+
+src_install() {
+ # copy sources into place:
+ dodir /usr/src
+ cp -a ${S} ${D}/usr/src/linux-${P} || die
+ cd ${D}/usr/src/linux-${P}
+ # prepare for real-world use and 3rd-party module building:
+ make mrproper || die
+ cp ${T}/config .config || die
+ cp -a ${T}/debian debian || die
+ yes "" | make oldconfig || die
+ # if we didn't use genkernel, we're done. The kernel source tree is left in
+ # an unconfigured state - you can't compile 3rd-party modules against it yet.
+ use binary || return
+ make prepare || die
+ make scripts || die
+ # OK, now the source tree is configured to allow 3rd-party modules to be
+ # built against it, since we want that to work since we have a binary kernel
+ # built.
+ cp -a ${WORKDIR}/out/* ${D}/ || die "couldn't copy output files into place"
+ # module symlink fixup:
+ rm -f ${D}/lib/modules/*/source || die
+ rm -f ${D}/lib/modules/*/build || die
+ cd ${D}/lib/modules
+ # module strip:
+ find -iname *.ko -exec strip --strip-debug {} \;
+ # back to the symlink fixup:
+ local moddir="$(ls -d [23]*)"
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/source || die
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/build || die
+
+ # Fixes FL-14
+ cp "${WORKDIR}/build/System.map" "${D}/usr/src/linux-${P}/" || die
+ cp "${WORKDIR}/build/Module.symvers" "${D}/usr/src/linux-${P}/" || die
+
+}
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}usr/src/linux ]
+ then
+ ln -s linux-${P} ${ROOT}usr/src/linux
+ fi
+}
diff --git a/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43.ebuild b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43.ebuild
new file mode 100644
index 00000000..ee437a14
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.43.ebuild
@@ -0,0 +1,156 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+
+inherit mount-boot
+
+SLOT=$PVR
+CKV=2.6.32
+KV_FULL=${PN}-${PVR}
+KERNEL_ARCHIVE="linux-2.6_2.6.32.orig.tar.gz"
+RESTRICT="binchecks strip"
+# based on : http://packages.ubuntu.com/maverick/linux-image-2.6.35-22-server
+LICENSE="GPL-2"
+KEYWORDS="*"
+IUSE="openvz binary"
+DEPEND="binary? ( >=sys-kernel/genkernel-3.4.12.6-r4 )"
+RDEPEND="binary? ( || ( >=sys-fs/udev-160 >=virtual/udev-171 ) )"
+DESCRIPTION="Debian Sources (and optional binary kernel)"
+HOMEPAGE="http://www.debian.org"
+MAINPATCH="linux-2.6_2.6.32-43.diff.gz"
+SRC_URI="http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${KERNEL_ARCHIVE}
+ http://ftp.bg.debian.org/debian/pool/main/l/linux-2.6/${MAINPATCH}"
+S="$WORKDIR/linux-${CKV}"
+
+apply() {
+ p=$1; shift
+ case "${p##*.}" in
+ gz)
+ ca="gzip -dc"
+ ;;
+ bz2)
+ ca="bzip2 -dc"
+ ;;
+ xz)
+ ca="xz -dc"
+ ;;
+ *)
+ ca="cat"
+ ;;
+ esac
+ [ ! -e $p ] && die "patch $p not found"
+ echo "Applying patch $p"; $ca $p | patch $* || die "patch $p failed"
+}
+
+pkg_setup() {
+ unset ARCH; unset LDFLAGS #will interfere with Makefile if set
+}
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${KERNEL_ARCHIVE}
+}
+
+src_prepare() {
+ cd ${WORKDIR}
+ apply $DISTDIR/$MAINPATCH -p1
+
+ # debian-specific stuff....
+
+ mv linux-* ${S##*/} || die
+ mv debian ${S##*/}/ || die
+ cd ${S}
+ sed -i \
+ -e 's/^sys.path.append.*$/sys.path.append(".\/debian\/lib\/python")/' \
+ -e 's/^_default_home =.*$/_default_home = ".\/debian\/patches"/' \
+ debian/bin/patch.apply || die
+ python2 debian/bin/patch.apply $KV_DEB || die
+ if use openvz
+ then
+ python2 debian/bin/patch.apply -a $ARCH -f openvz || die
+ fi
+
+ # end of debian-specific stuff...
+
+ sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die
+ sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile || die
+ rm -f .config >/dev/null
+ cp -a debian ${T} || die "couldn't back up debian dir (will be wiped by mrproper)"
+ make -s mrproper || die "make mrproper failed"
+ cp -a ${T}/debian . || die "couldn't restore debian directory"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+ #mv "${TEMP}/configs" "${S}" || die
+ cd ${S}
+ local opts
+ use openvz && opts="openvz"
+ local myarch="amd64"
+ [ "$ARCH" = "x86" ] && myarch="i386"
+ cp ${FILESDIR}/config-extract . || die
+ chmod +x config-extract || die
+ ./config-extract ${myarch} ${opts} || die
+ cp .config ${T}/config || die
+ make -s mrproper || die "make mrproper failed"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+}
+
+src_compile() {
+ ! use binary && return
+ install -d ${WORKDIR}/out/{lib,boot}
+ install -d ${T}/{cache,twork}
+ install -d $WORKDIR/build $WORKDIR/out/lib/firmware
+ genkernel \
+ --no-save-config \
+ --kernel-config="$T/config" \
+ --kernname="${PN}" \
+ --build-src="$S" \
+ --build-dst=${WORKDIR}/build \
+ --makeopts="${MAKEOPTS}" \
+ --firmware-dst=${WORKDIR}/out/lib/firmware \
+ --cachedir="${T}/cache" \
+ --tempdir="${T}/twork" \
+ --logfile="${WORKDIR}/genkernel.log" \
+ --bootdir="${WORKDIR}/out/boot" \
+ --lvm \
+ --luks \
+ --iscsi \
+ --module-prefix="${WORKDIR}/out" \
+ all || die "genkernel failed"
+}
+
+src_install() {
+ # copy sources into place:
+ dodir /usr/src
+ cp -a ${S} ${D}/usr/src/linux-${P} || die
+ cd ${D}/usr/src/linux-${P}
+ # prepare for real-world use and 3rd-party module building:
+ make mrproper || die
+ cp ${T}/config .config || die
+ cp -a ${T}/debian debian || die
+ yes "" | make oldconfig || die
+ # if we didn't use genkernel, we're done. The kernel source tree is left in
+ # an unconfigured state - you can't compile 3rd-party modules against it yet.
+ use binary || return
+ make prepare || die
+ make scripts || die
+ # OK, now the source tree is configured to allow 3rd-party modules to be
+ # built against it, since we want that to work since we have a binary kernel
+ # built.
+ cp -a ${WORKDIR}/out/* ${D}/ || die "couldn't copy output files into place"
+ # module symlink fixup:
+ rm -f ${D}/lib/modules/*/source || die
+ rm -f ${D}/lib/modules/*/build || die
+ cd ${D}/lib/modules
+ # module strip:
+ find -iname *.ko -exec strip --strip-debug {} \;
+ # back to the symlink fixup:
+ local moddir="$(ls -d [23]*)"
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/source || die
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/build || die
+}
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}usr/src/linux ]
+ then
+ ln -s linux-${P} ${ROOT}usr/src/linux
+ fi
+}
diff --git a/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.46.ebuild b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.46.ebuild
new file mode 100644
index 00000000..94e1100a
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/debian-sources-lts-2.6.32.46.ebuild
@@ -0,0 +1,162 @@
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+
+inherit mount-boot
+
+SLOT=$PVR
+CKV=2.6.32
+KV_FULL=${PN}-${PVR}
+KERNEL_ARCHIVE="linux-2.6_2.6.32.orig.tar.gz"
+RESTRICT="binchecks strip"
+# based on : http://packages.ubuntu.com/maverick/linux-image-2.6.35-22-server
+LICENSE="GPL-2"
+KEYWORDS="*"
+IUSE="openvz binary"
+DEPEND="binary? ( >=sys-kernel/genkernel-3.4.12.6-r4 )"
+RDEPEND="binary? ( || ( >=sys-fs/udev-160 >=virtual/udev-171 ) )"
+DESCRIPTION="Debian Sources (and optional binary kernel)"
+HOMEPAGE="http://www.debian.org"
+MAINPATCH="linux-2.6_2.6.32-46.diff.gz"
+SRC_URI="http://ftp.osuosl.org/pub/funtoo/distfiles/${KERNEL_ARCHIVE}
+ http://ftp.osuosl.org/pub/funtoo/distfiles/${MAINPATCH}"
+RESTRICT="mirror"
+S="$WORKDIR/linux-${CKV}"
+
+apply() {
+ p=$1; shift
+ case "${p##*.}" in
+ gz)
+ ca="gzip -dc"
+ ;;
+ bz2)
+ ca="bzip2 -dc"
+ ;;
+ xz)
+ ca="xz -dc"
+ ;;
+ *)
+ ca="cat"
+ ;;
+ esac
+ [ ! -e $p ] && die "patch $p not found"
+ echo "Applying patch $p"; $ca $p | patch $* || die "patch $p failed"
+}
+
+pkg_setup() {
+ unset ARCH; unset LDFLAGS #will interfere with Makefile if set
+}
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack ${KERNEL_ARCHIVE}
+}
+
+src_prepare() {
+ cd ${WORKDIR}
+ apply $DISTDIR/$MAINPATCH -p1
+
+ # debian-specific stuff....
+
+ mv linux-* ${S##*/} || die
+ mv debian ${S##*/}/ || die
+ cd ${S}
+ sed -i \
+ -e 's/^sys.path.append.*$/sys.path.append(".\/debian\/lib\/python")/' \
+ -e 's/^_default_home =.*$/_default_home = ".\/debian\/patches"/' \
+ debian/bin/patch.apply || die
+ python2 debian/bin/patch.apply $KV_DEB || die
+ if use openvz
+ then
+ python2 debian/bin/patch.apply -a $ARCH -f openvz || die
+ fi
+
+ # end of debian-specific stuff...
+
+ sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die
+ sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile || die
+ rm -f .config >/dev/null
+ cp -a debian ${T} || die "couldn't back up debian dir (will be wiped by mrproper)"
+ make -s mrproper || die "make mrproper failed"
+ cp -a ${T}/debian . || die "couldn't restore debian directory"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+ #mv "${TEMP}/configs" "${S}" || die
+ cd ${S}
+ local opts
+ use openvz && opts="openvz"
+ local myarch="amd64"
+ [ "$ARCH" = "x86" ] && myarch="i386"
+ cp ${FILESDIR}/config-extract . || die
+ chmod +x config-extract || die
+ ./config-extract ${myarch} ${opts} || die
+ cp .config ${T}/config || die
+ make -s mrproper || die "make mrproper failed"
+ make -s include/linux/version.h || die "make include/linux/version.h failed"
+}
+
+src_compile() {
+ ! use binary && return
+ install -d ${WORKDIR}/out/{lib,boot}
+ install -d ${T}/{cache,twork}
+ install -d $WORKDIR/build $WORKDIR/out/lib/firmware
+ genkernel \
+ --no-save-config \
+ --kernel-config="$T/config" \
+ --kernname="${PN}" \
+ --build-src="$S" \
+ --build-dst=${WORKDIR}/build \
+ --makeopts="${MAKEOPTS}" \
+ --firmware-dst=${WORKDIR}/out/lib/firmware \
+ --cachedir="${T}/cache" \
+ --tempdir="${T}/twork" \
+ --logfile="${WORKDIR}/genkernel.log" \
+ --bootdir="${WORKDIR}/out/boot" \
+ --lvm \
+ --luks \
+ --iscsi \
+ --module-prefix="${WORKDIR}/out" \
+ all || die "genkernel failed"
+}
+
+src_install() {
+ # copy sources into place:
+ dodir /usr/src
+ cp -a ${S} ${D}/usr/src/linux-${P} || die
+ cd ${D}/usr/src/linux-${P}
+ # prepare for real-world use and 3rd-party module building:
+ make mrproper || die
+ cp ${T}/config .config || die
+ cp -a ${T}/debian debian || die
+ yes "" | make oldconfig || die
+ # if we didn't use genkernel, we're done. The kernel source tree is left in
+ # an unconfigured state - you can't compile 3rd-party modules against it yet.
+ use binary || return
+ make prepare || die
+ make scripts || die
+ # OK, now the source tree is configured to allow 3rd-party modules to be
+ # built against it, since we want that to work since we have a binary kernel
+ # built.
+ cp -a ${WORKDIR}/out/* ${D}/ || die "couldn't copy output files into place"
+ # module symlink fixup:
+ rm -f ${D}/lib/modules/*/source || die
+ rm -f ${D}/lib/modules/*/build || die
+ cd ${D}/lib/modules
+ # module strip:
+ find -iname *.ko -exec strip --strip-debug {} \;
+ # back to the symlink fixup:
+ local moddir="$(ls -d [23]*)"
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/source || die
+ ln -s /usr/src/linux-${P} ${D}/lib/modules/${moddir}/build || die
+
+ # Fixes FL-14
+ cp "${WORKDIR}/build/System.map" "${D}/usr/src/linux-${P}/" || die
+ cp "${WORKDIR}/build/Module.symvers" "${D}/usr/src/linux-${P}/" || die
+
+}
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}usr/src/linux ]
+ then
+ ln -s linux-${P} ${ROOT}usr/src/linux
+ fi
+}
diff --git a/sys-kernel/debian-sources-lts/files/config-extract b/sys-kernel/debian-sources-lts/files/config-extract
new file mode 100755
index 00000000..fe15f548
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/files/config-extract
@@ -0,0 +1,216 @@
+#!/usr/bin/python2
+
+import os,sys,re
+import getopt
+
+re_head = re.compile('^binary-arch_(.*)_real::')
+re_flav = re.compile('binary-arch-flavour')
+re_item = re.compile("[A-Z_]*='[^']*'")
+
+try:
+ f=open("debian/rules.gen","r")
+except:
+ print "Unable to open debian/rules.gen; can't continue."
+ sys.exit(1)
+lines=f.readlines()
+f.close()
+
+line=0
+
+configlist = []
+configdict = {}
+
+# scan Debian rules.gen file and gather all variable data into a more useable format:
+
+while line < len(lines):
+ head_match = re_head.match(lines[line])
+ if not head_match:
+ line += 1
+ continue
+ config_name = head_match.group(1)
+ line += 1
+ if not re_flav.findall(lines[line]):
+ continue
+ lsplit = re_item.findall(lines[line])
+ groovydict = {}
+ for item in lsplit:
+ kv = item.split("=",1)
+ if len(kv) < 2:
+ continue
+ groovydict[kv[0]] = kv[1][1:-1]
+ configlist.append(config_name)
+ configdict[config_name] = groovydict
+ line += 1
+
+# We will organize the arch, featureset and flavors into cascading lists so
+# that we can present a nice clean chart of what's available to the user:
+
+archdict = {}
+
+for config in configlist:
+ cs = config.split("_")
+ if not cs[0] in archdict:
+ archdict[cs[0]] = { }
+ if cs[1] == "none":
+ cs[1] = None
+ if cs[1] not in archdict[cs[0]]:
+ archdict[cs[0]][cs[1]] = []
+ archdict[cs[0]][cs[1]].append(cs[2])
+
+arches = archdict.keys()
+arches.sort()
+
+features = [ None ]
+for arch in arches:
+ for flav in archdict[arch]:
+ if flav not in features:
+ features.append(flav)
+
+PROG="config-extract"
+def usage():
+ print """This work is free software.
+
+Copyright 2011 Funtoo Technologies. You can redistribute and/or modify it under
+the terms of the GNU General Public License version 3 as published by the Free
+Software Foundation. Alternatively you may (at your option) use any other
+license that has been publicly approved for use with this program by Funtoo
+Technologies (or its successors, if any.)
+
+usage: %s [options] arch [featureset] [subarch]
+
+ -h --help print this usage and exit
+ -l --list list all available kernel configurations
+ -o --outfile specify kernel config outfile --
+ defaults to .config in current directory
+ [featureset] defaults to "none" if not specified
+ [subarch] defaults to the only one available; otherwise required
+
+This program was written by Daniel Robbins for Funtoo Linux, for the purpose of
+easily and conveniently extracting Debian kernel configurations. To see a nice
+list of all available kernel configurations, use the --list option.
+
+Debian's kernel configs are specified internally in arch_featureset_flavor
+format, such as: "amd64_openvz_amd64". The featureset typically describes an
+optional kernel configuration such as "xen" or "openvz", while the flavor in
+Debian terminology typically refers to the sub-architecture of the CPU.
+
+When using this command, you must specify an arch. A featureset of "none" is
+assumed unless you specify one, and by default this program will pick the only
+available subarch if there is only one to choose from. If not, you will need to
+pick one (and the program will remind you to do this.)
+
+The kernel configuration will be written to ".config" in the current directory,
+or the location you specified using the -o/--outfile option.
+""" % PROG
+ sys.exit(2)
+
+try:
+ opts, args = getopt.getopt(sys.argv[1:], "o:hl", ["help", "list","outfile="])
+except getopt.GetoptError, err:
+ print str(err)
+ usage()
+
+mode="run"
+outfile=None
+for o,a in opts:
+ if o in ("-h", "--help"):
+ usage()
+ elif o in ("-l", "--list"):
+ mode="list"
+ elif o in ("-o", "--outfile"):
+ outfile = a
+ else:
+ assert False, "Unhandled option"
+if mode == "run":
+ if len(args) < 1 or len(args) > 3:
+ if len(args) == 0:
+ print "Please specify an arch - one of: "+", ".join(arches)
+ sys.exit(2)
+ else:
+ print "Too many arguments."
+ usage()
+ arch = args[0]
+ if outfile == None:
+ outfile = os.path.join(os.getcwd(),".config")
+ featureset = None
+ subarch = None
+ if len(args) == 3:
+ featureset = args[1]
+ subarch = args[2]
+ elif len(args) == 2:
+ featureset = args[1]
+
+# print out optimized list of available kernel configurations:
+
+if mode=="list":
+ print
+ for flav in features:
+ label = flav
+ if label == None:
+ label = "standard"
+ print "====== %s featureset ======" % label
+ print
+ for arch in arches:
+ if flav in archdict[arch]:
+ if len(archdict[arch][flav]) == 1:
+ print arch.rjust(12)
+ else:
+ flavlist = archdict[arch][flav]
+ flavlist.sort()
+ variants = ", ".join(flavlist)
+ print arch.rjust(12) + ":", variants
+ print
+ sys.exit(0)
+
+# featureset defaults to None.
+
+if featureset not in archdict[arch]:
+ print "Error: There is no '%s' featureset kernel config for arch '%s'. Exiting." % ( featureset, arch )
+ sys.exit(2)
+
+# If a subarch is not specified (None), then we will auto-pick the subarch if only one is available.
+# Debian often has an "amd64" subarch for the "amd64" arch, rather than "none" as I might expect:
+
+if subarch == None:
+ if len(archdict[arch][featureset]) == 1:
+ subarch = archdict[arch][featureset][0]
+ else:
+ print "Error: there is more than one 'sub-architecture' for this arch."
+ print "Please specify one of the following subarches as a secondary argument:"
+ print ", ".join(archdict[arch][featureset])
+ sys.exit(2)
+else:
+ if subarch not in archdict[arch][featureset]:
+ print "Error: specified sub-architecture '%s' is not available for this arch. Exiting." % subarch
+ sys.exit(2)
+
+# We've done all our arg processing, now let's construct the master_key that we will use to look up the
+# proper settings to pass to Debian's debian/bin/kconfig.py command:
+
+master_key=arch
+if featureset == None:
+ master_key += "_none"
+else:
+ master_key += "_%s" % featureset
+if subarch == None:
+ master_key += "_none"
+else:
+ master_key += "_%s" % subarch
+if master_key not in configdict:
+ print "Master key lookup failed; can't continue. Please report this bug."
+ sys.exit(1)
+if "KCONFIG" not in configdict[master_key]:
+ print "Unable to find KCONFIG option; can't continue. Please report this bug."
+ sys.exit(1)
+cmd = "python2 debian/bin/kconfig.py '%s' %s" % ( outfile, configdict[master_key]["KCONFIG"] )
+if "KCONFIG_OPTIONS" in configdict[master_key]:
+ cmd += " %s" % configdict[master_key]["KCONFIG_OPTIONS"]
+os.environ["PYTHONPATH"] = "debian/lib/python"
+retval = os.system(cmd)
+if retval == 0:
+ print "Wrote %s kernel configuration to %s." % ( master_key, outfile )
+ sys.exit(0)
+else:
+ print "There was an error extracting the Debian kernel config."
+ sys.exit(1)
+
diff --git a/sys-kernel/debian-sources-lts/files/debian-sources-2.6.32.30-bridgemac.patch b/sys-kernel/debian-sources-lts/files/debian-sources-2.6.32.30-bridgemac.patch
new file mode 100644
index 00000000..b092c15a
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/files/debian-sources-2.6.32.30-bridgemac.patch
@@ -0,0 +1,15 @@
+diff -urN linux/net/bridge/br_stp_if.c drobtmp/net/bridge/br_stp_if.c
+--- linux/net/bridge/br_stp_if.c 2009-06-20 01:46:25.000000000 -0600
++++ drobtmp/net/bridge/br_stp_if.c 2009-06-27 16:47:57.000000000 -0600
+@@ -163,10 +163,7 @@
+ struct net_bridge_port *p;
+
+ list_for_each_entry(p, &br->port_list, list) {
+- if (addr == br_mac_zero ||
+- memcmp(p->dev->dev_addr, addr, ETH_ALEN) < 0)
+- addr = p->dev->dev_addr;
+-
++ addr = p->dev->dev_addr;
+ }
+
+ if (compare_ether_addr(br->bridge_id.addr, addr))
diff --git a/sys-kernel/debian-sources-lts/files/debian-sources-2.6.38.3-bridgemac.patch b/sys-kernel/debian-sources-lts/files/debian-sources-2.6.38.3-bridgemac.patch
new file mode 100644
index 00000000..b092c15a
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/files/debian-sources-2.6.38.3-bridgemac.patch
@@ -0,0 +1,15 @@
+diff -urN linux/net/bridge/br_stp_if.c drobtmp/net/bridge/br_stp_if.c
+--- linux/net/bridge/br_stp_if.c 2009-06-20 01:46:25.000000000 -0600
++++ drobtmp/net/bridge/br_stp_if.c 2009-06-27 16:47:57.000000000 -0600
+@@ -163,10 +163,7 @@
+ struct net_bridge_port *p;
+
+ list_for_each_entry(p, &br->port_list, list) {
+- if (addr == br_mac_zero ||
+- memcmp(p->dev->dev_addr, addr, ETH_ALEN) < 0)
+- addr = p->dev->dev_addr;
+-
++ addr = p->dev->dev_addr;
+ }
+
+ if (compare_ether_addr(br->bridge_id.addr, addr))
diff --git a/sys-kernel/debian-sources-lts/metadata.xml b/sys-kernel/debian-sources-lts/metadata.xml
new file mode 100644
index 00000000..bd7d6111
--- /dev/null
+++ b/sys-kernel/debian-sources-lts/metadata.xml
@@ -0,0 +1,6 @@
+<pkgmetadata>
+<herd>funtoo</herd>
+<maintainer>
+ <email>funtoo-dev@googlegroups.com</email>
+</maintainer>
+</pkgmetadata>