diff options
Diffstat (limited to 'sys-kernel/debian-sources-lts')
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> |