From 7224c1253228e5c29c78cb3f0f26ce34770f2356 Mon Sep 17 00:00:00 2001 From: BlackNoxis Date: Sat, 15 Feb 2014 23:24:26 +0200 Subject: Added ebuilds for kogaion desktop --- sys-kernel/debian-sources/Manifest | 16 ++ .../debian-sources/debian-sources-3.10.11.ebuild | 145 ++++++++++++++ .../debian-sources/debian-sources-3.12.3.ebuild | 145 ++++++++++++++ sys-kernel/debian-sources/files/config-extract | 219 +++++++++++++++++++++ .../debian-sources-3.10.11-xfs-libcrc32c-fix.patch | 21 ++ .../debian-sources-3.12.3-xfs-libcrc32c-fix.patch | 21 ++ sys-kernel/debian-sources/metadata.xml | 10 + 7 files changed, 577 insertions(+) create mode 100644 sys-kernel/debian-sources/Manifest create mode 100644 sys-kernel/debian-sources/debian-sources-3.10.11.ebuild create mode 100644 sys-kernel/debian-sources/debian-sources-3.12.3.ebuild create mode 100755 sys-kernel/debian-sources/files/config-extract create mode 100644 sys-kernel/debian-sources/files/debian-sources-3.10.11-xfs-libcrc32c-fix.patch create mode 100644 sys-kernel/debian-sources/files/debian-sources-3.12.3-xfs-libcrc32c-fix.patch create mode 100644 sys-kernel/debian-sources/metadata.xml (limited to 'sys-kernel/debian-sources') diff --git a/sys-kernel/debian-sources/Manifest b/sys-kernel/debian-sources/Manifest new file mode 100644 index 00000000..97775aec --- /dev/null +++ b/sys-kernel/debian-sources/Manifest @@ -0,0 +1,16 @@ +DIST linux_3.10.11-1.debian.tar.xz 750708 SHA256 5597033846bd3f992712f20e261062e1ac2320897594578bfab731702495ee52 SHA512 14afb60757457e3070766cbe97200987a9b9dc9d7a5d32077886753599cdeaf6a35d8ae3a6f9a39371633c11e8cc20942cbf4be6ac5f40ea49241df9cc3060a7 WHIRLPOOL d571f4ee852af76b79b7db2349227522e86f59ba4562f43c00a5a1cfe5067eca9e857a441cc695095968ebf74cb612ef9da9db4ee3f2bd54a5c6a08a70da123b +DIST linux_3.10.11.orig.tar.xz 73944292 SHA256 c6337250fb9eaa258eefc37ee9f66d3c4fcf8db1e3b29e3c557e33f5df6a05c7 SHA512 e214a14f9ca70bdece4abb6ff82ee9b5e66694b8415d43d74455e6c31dbe4f39583ae0c7e14fc569bfb777131e34b5e2e35f819314b500f72cae80b67f3e6451 WHIRLPOOL 2bca020fade4ef2ebac5b96de957fbe5e69463dfc33c87b9f96259843125a9e2b9d1a3d2483e5450680ce400b1d2bea094dd7ac8ccf3964e31714bb2cfbb06e2 +DIST linux_3.11.10-1.debian.tar.xz 2688056 SHA256 9669805bb50cef3f89854b81f74de371391db798d700c3ea461b63132bc3e586 SHA512 42092c21d73e8f8d82688ec0ae1029324ebdb5e7814de23393986f3d917d9134bf043ee0ab96bb5d517ae1fc63165b80179f1afd14eecdab1ce4fb8e86ad0d51 WHIRLPOOL 23ddf48f55cb3dcef82bcae6ca35cd4bf4f1edf17bc9e31fdfb6730bce49b77d716c138973ec427455f2f2094d8011d383165d3a737052bbde1d1f43f5682843 +DIST linux_3.11.10.orig.tar.xz 75892436 SHA256 23f3392aa9d97e514e892b91691dba67d2cef9a064d49c0e4f90a12b9e3a8331 SHA512 5cb32460ab1d331c267723c2693659c66c030aac218bcefdcefde54a8af4eaa24b795fac067b9bf7fd17409fcbb7783787ef5389054ce44d0c327017ee7cfb87 WHIRLPOOL 2fe53bdeaae503b3d40ea4bb7b9f18f9ade47f99d72b6d4cedc74dc6431d649b999a7ae388daf88b6de8d8816d60d9f9de8a81460779aadd16463e47c511c426 +DIST linux_3.12.3-1~exp1.debian.tar.xz 770364 SHA256 34fdb9d6d368665a3fe468058c794058624d14db545ceefc8bf092bd11191609 SHA512 52c1a5563ef89b90249b27692b2a6c84fa2e4fd711c3563376a830bbafba280a22fef237b5eaedc01ccd87625a3a40450cd355497df5f946e9564d657a400077 WHIRLPOOL 624f91fe66f25090ab2976a075f9f26edc692fede685a07bf4d01c76b5134c29862602940b6062b22cc27f61a76b0372aa6b5a535607395da05f635596ea3c37 +DIST linux_3.12.3.orig.tar.xz 77289676 SHA256 52991a7699ace36517e9bca4442db0b1ad736f169d24186deaf4b133cb17816d SHA512 760c8de39431b1b34e76d887bd8747807fdbff0cdf65fb28847625151be2abc632ee3a0b30caefce1f3723ea4756fa51dbffb93590f5a47865e4cc5e93139e8e WHIRLPOOL a3aadb0210b72749c7a4d23d47eb62fc371d173812eb043b638c43af26c81da9ee6d0afa6a76678f892cc5376cbf007b5794afafa9560b2fb85890763146a13d +DIST linux_3.2.29-1.debian.tar.xz 955952 SHA256 b421f738632fd0b85c6686313daea7e8cebd4d218af4f92a4e6327449d51f4d6 +DIST linux_3.2.29.orig.tar.xz 65725120 SHA256 e9fdd2a7f774188974f5e74a68a112e563763e0c83db7a8411d5d3bb4bee1213 +DIST linux_3.2.35-2.debian.tar.xz 2483540 SHA256 8ae153d652cb0a870128d202fe6cd93d89f2c70996217355ca5681b62cce37fb SHA512 b2e6e0fcbac4e2b4a0cfc958535c13f22a20387b557995e7e036b79f6d29061fbe79eddfc5de1e3abe200b4c765637b19773ab8e5c61f3842c449a3dc3a49f85 WHIRLPOOL 8b30cadfcdaad17fc73d9fb567c3f68abac0f9b4ae778ed500bd601edda654c3ba6dd498f6b7df77ab4ae55f5c2b8475134b39cef7ee818872dd19b915f6dd0d +DIST linux_3.2.35.orig.tar.xz 65831540 SHA256 ea4c76c3820f9d7a07c7beb9f631a07d04613908c5f670afa200d677fd5f8538 SHA512 f2f931dc1169af7b19d4b9e88935297ee72b173b4fc946a8932f8599bb43164c23f7de4da2468319fa5991de7347b93c1b4a5a727c5d0b98db68e535cc1cedbe WHIRLPOOL 9c4e901c93e89bdbc4da45391a830f90839164cd3a565a7e836d121a5fe879b1611e7993a7061037caa5639c00fd0de98963934615cefb897895171668aa0641 +DIST linux_3.2.39-1.debian.tar.xz 3188844 SHA256 5332b4729956b341230cbbaff06fda0c51347e68a054c791e35a10898143ff13 SHA512 6c4aaba734da7193b33e5c2e49d4a771296f870e40570cbad79e253c6f85f551d29cb556f05851e18f8e474af23165de4bc921ef56037872597283d703e467e3 WHIRLPOOL 330d65b6bccf0de85bc9bc38c98a94bb5c41d9266cbc5abc48c23d9eb5e077dac25a480fc51c1e41187a7e5382d9194a167bcb8a7accc5f232d7ba5b1b16daf7 +DIST linux_3.2.39.orig.tar.xz 65857136 SHA256 663eb090fc2d7d5a3d0dc613a662baf44c5e0057a9e99b404299ee25546e7a91 SHA512 fae785b28689f1fac6741806136939a1d00a23fda07e7106259db14755a89bb35979c5f9792d48a969db547b9a0058bf824a9d1012059fbe57b128d5d2179fcf WHIRLPOOL 22fa44fc16b537d2140e7ef7bdff60b9d828129d8c3370b1260b576e1b40eb8052d41867a0bc229e8116a7fdb09c54bdcdbf49d07300cad9f793d4ede3377a33 +DIST linux_3.2.41-2+deb7u2.debian.tar.xz 3190452 SHA256 29400c7b48e78c18dcc05c19bbbbf42d229d6eaed6efd4baeb1eb4f168f17f30 SHA512 dc3b61a0bd843f53362532cef9aba4f50ee65141f77569d30838baf9cbf4ab154acb5dea018355c759dc0ec88db41c4cc03ae0831b28e7d8e0399f71f997a5bd WHIRLPOOL 22acf212881f4df1338f7b1bf4f5e3f4411ad19370b21cd6ea172b0ef25e84e632ad954992bb35da568ee384b4d3a9dfa3c56afdb7e4e2c8926a002d023cbcc6 +DIST linux_3.2.41.orig.tar.xz 65857856 SHA256 a74577ed87d53af9d880c1a11c0be50d44edbcaeb8b0db54f3d1dafbd3dcc386 SHA512 2c5c78d6ad5080e587ed03dcab328b7c7ae3b9b0fd2776196b4ba1519e445a3996cb70a0293ecedacc5713b61ca76935d19af37fc3d5a956cd21bc0d08e877e4 WHIRLPOOL 5a9b2e67d87e8b662a093de1148953b2818047112a9d9588286aa508393538dbc018314c2302069f06a8b3cf2046abd93b67db6d3cf7de339ca77ffbbb330abe +DIST linux_3.2.51-1.debian.tar.xz 3260368 SHA256 6a2d6f80b886fce43df8092e3ba0f423190872a763c75b058f93133d9cbad8a0 SHA512 6966728af759fd86a4613ec1b8c33771243ab2d83aa66848137d91971820012f83a3b7084c2eaaee85ed790bb8b384794d283fe00d4ae54efb65cb0204f2386f WHIRLPOOL 4731a63f02d4895edc51c4c693772ffd3361ec5236d3d3a1b3c8453e3708ace33e0ca0a3bd424705f264458c0c1ff6f0ed4ddf57d12b6d75c1d9ca3fc0a32d8c +DIST linux_3.2.51.orig.tar.xz 65876468 SHA256 a6f1aa8a0d5addc805e35d94457280975c5162990fb2f2a82de061d55932a3a3 SHA512 1141957380ecdf21358fee45f34e161be1b5822cdd625cab82413e588d0adaedb58bcbbec914b6ee2624a63cb470cc88d3f0cb6ee78f21178ad6c6fce49a0ada WHIRLPOOL e376767227757235954e238a94261482b4daa52823166ebf32c43504ad24d62ce9430b50418ff1f70bac1c0c247786d5f6f8c79f0b283c3a81369a918a78d0f7 diff --git a/sys-kernel/debian-sources/debian-sources-3.10.11.ebuild b/sys-kernel/debian-sources/debian-sources-3.10.11.ebuild new file mode 100644 index 00000000..02039505 --- /dev/null +++ b/sys-kernel/debian-sources/debian-sources-3.10.11.ebuild @@ -0,0 +1,145 @@ +# Distributed under the terms of the GNU General Public License v2 + +EAPI=3 + +inherit eutils mount-boot + +SLOT=$PVR +CKV=3.10.11 +KV_FULL=${PN}-${PVR} +EXTRAVERSION=-1 +KERNEL_ARCHIVE="linux_${PV}.orig.tar.xz" +PATCH_ARCHIVE="linux_${PV}${EXTRAVERSION}.debian.tar.xz" +RESTRICT="binchecks strip mirror" +# based on : http://packages.ubuntu.com/maverick/linux-image-2.6.35-22-server +LICENSE="GPL-2" +KEYWORDS="*" +IUSE="binary rt" +DEPEND="binary? ( >=sys-kernel/genkernel-3.4.40.7 )" +RDEPEND="binary? ( || ( >=sys-fs/udev-160 >=virtual/udev-171 ) )" +DESCRIPTION="Debian Sources (and optional binary kernel)" +HOMEPAGE="http://www.debian.org" +SRC_URI="http://ftp.osuosl.org/pub/funtoo/distfiles/${KERNEL_ARCHIVE} http://ftp.osuosl.org/pub/funtoo/distfiles/${PATCH_ARCHIVE}" +S="$WORKDIR/linux-${CKV}" + +get_patch_list() { + [[ -z "${1}" ]] && die "No patch series file specified" + local patch_series="${1}" + while read line ; do + if [[ "${line:0:1}" != "#" ]] ; then + echo "${line}" + fi + done < "${patch_series}" +} + +pkg_setup() { + export REAL_ARCH="$ARCH" + unset ARCH; unset LDFLAGS #will interfere with Makefile if set +} + +src_prepare() { + + cd ${S} + for debpatch in $( get_patch_list "${WORKDIR}/debian/patches/series" ); do + epatch -p1 "${WORKDIR}/debian/patches/${debpatch}" + done + + if use rt ; then + for rtpatch in $( get_patch_list "${WORKDIR}/debian/patches/series-rt" ) ; do + epatch -p1 "${WORKDIR}/debian/patches/${rtpatch}" + done + 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 "${WORKDIR}"/debian "${T}" + make -s mrproper || die "make mrproper failed" + #make -s include/linux/version.h || die "make include/linux/version.h failed" + cd ${S} + + cp -aR "${WORKDIR}"/debian "${S}"/debian + # xfs fix for 3.10.11, see FL-823: + epatch ${FILESDIR}/debian-sources-3.10.11-xfs-libcrc32c-fix.patch + + local opts + use rt && opts="rt" || opts="standard" + local myarch="amd64" + [ "$REAL_ARCH" = "x86" ] && myarch="i386" && opts="$opts 686-pae" + 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 \ + --mdadm \ + --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/debian-sources-3.12.3.ebuild b/sys-kernel/debian-sources/debian-sources-3.12.3.ebuild new file mode 100644 index 00000000..86dae42e --- /dev/null +++ b/sys-kernel/debian-sources/debian-sources-3.12.3.ebuild @@ -0,0 +1,145 @@ +# Distributed under the terms of the GNU General Public License v2 + +EAPI=3 + +inherit eutils mount-boot + +SLOT=$PVR +CKV=3.12.3 +KV_FULL=${PN}-${PVR} +EXTRAVERSION=-1~exp1 +KERNEL_ARCHIVE="linux_${PV}.orig.tar.xz" +PATCH_ARCHIVE="linux_${PV}${EXTRAVERSION}.debian.tar.xz" +RESTRICT="binchecks strip mirror" +# based on : http://packages.ubuntu.com/maverick/linux-image-2.6.35-22-server +LICENSE="GPL-2" +KEYWORDS="*" +IUSE="binary rt" +DEPEND="binary? ( >=sys-kernel/genkernel-3.4.40.7 )" +RDEPEND="binary? ( || ( >=sys-fs/udev-160 >=virtual/udev-171 ) )" +DESCRIPTION="Debian Sources (and optional binary kernel)" +HOMEPAGE="http://www.debian.org" +SRC_URI="http://ftp.osuosl.org/pub/funtoo/distfiles/${KERNEL_ARCHIVE} http://ftp.osuosl.org/pub/funtoo/distfiles/${PATCH_ARCHIVE}" +S="$WORKDIR/linux-${CKV}" + +get_patch_list() { + [[ -z "${1}" ]] && die "No patch series file specified" + local patch_series="${1}" + while read line ; do + if [[ "${line:0:1}" != "#" ]] ; then + echo "${line}" + fi + done < "${patch_series}" +} + +pkg_setup() { + export REAL_ARCH="$ARCH" + unset ARCH; unset LDFLAGS #will interfere with Makefile if set +} + +src_prepare() { + + cd ${S} + for debpatch in $( get_patch_list "${WORKDIR}/debian/patches/series" ); do + epatch -p1 "${WORKDIR}/debian/patches/${debpatch}" + done + + if use rt ; then + for rtpatch in $( get_patch_list "${WORKDIR}/debian/patches/series-rt" ) ; do + epatch -p1 "${WORKDIR}/debian/patches/${rtpatch}" + done + 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 "${WORKDIR}"/debian "${T}" + make -s mrproper || die "make mrproper failed" + #make -s include/linux/version.h || die "make include/linux/version.h failed" + cd ${S} + cp -aR "${WORKDIR}"/debian "${S}"/debian + + ## XFS LIBCRC kernel config fixes, FL-823 + epatch ${FILESDIR}/debian-sources-3.12.3-xfs-libcrc32c-fix.patch + + local opts + use rt && opts="rt" || opts="standard" + local myarch="amd64" + [ "$REAL_ARCH" = "x86" ] && myarch="i386" && opts="$opts 686-pae" + 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 \ + --mdadm \ + --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/files/config-extract b/sys-kernel/debian-sources/files/config-extract new file mode 100755 index 00000000..4860a645 --- /dev/null +++ b/sys-kernel/debian-sources/files/config-extract @@ -0,0 +1,219 @@ +#!/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 "standard" 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 "standard" 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] + if featureset == "standard": + featureset = None + +# 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 ) + print archdict[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 [arch] [featureset] [subarch], with one of these subarches:" + 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/files/debian-sources-3.10.11-xfs-libcrc32c-fix.patch b/sys-kernel/debian-sources/files/debian-sources-3.10.11-xfs-libcrc32c-fix.patch new file mode 100644 index 00000000..a20fecdc --- /dev/null +++ b/sys-kernel/debian-sources/files/debian-sources-3.10.11-xfs-libcrc32c-fix.patch @@ -0,0 +1,21 @@ +diff -urN linux-debian-sources-3.10.11/debian/config/config linux-debian-sources-3.10.11-fixed/debian/config/config +--- linux-debian-sources-3.10.11/debian/config/config 2013-08-17 13:57:25.000000000 -0600 ++++ linux-debian-sources-3.10.11-fixed/debian/config/config 2013-12-10 15:58:46.512296124 -0700 +@@ -4183,7 +4183,7 @@ + ## + ## file: fs/xfs/Kconfig + ## +-CONFIG_XFS_FS=m ++CONFIG_XFS_FS=y + CONFIG_XFS_QUOTA=y + CONFIG_XFS_POSIX_ACL=y + CONFIG_XFS_RT=y +@@ -4360,7 +4360,7 @@ + CONFIG_CRC_ITU_T=m + CONFIG_CRC32=y + CONFIG_CRC7=m +-CONFIG_LIBCRC32C=m ++CONFIG_LIBCRC32C=y + + ## + ## file: lib/Kconfig.debug diff --git a/sys-kernel/debian-sources/files/debian-sources-3.12.3-xfs-libcrc32c-fix.patch b/sys-kernel/debian-sources/files/debian-sources-3.12.3-xfs-libcrc32c-fix.patch new file mode 100644 index 00000000..ca0ee89c --- /dev/null +++ b/sys-kernel/debian-sources/files/debian-sources-3.12.3-xfs-libcrc32c-fix.patch @@ -0,0 +1,21 @@ +diff -Nuar -Nuar debian/config/config debian-fixed/config/config +--- debian/config/config 2013-12-05 01:48:42.000000000 +0000 ++++ debian-fixed/config/config 2013-12-14 07:39:56.017237225 +0000 +@@ -4425,7 +4425,7 @@ + ## + ## file: fs/xfs/Kconfig + ## +-CONFIG_XFS_FS=m ++CONFIG_XFS_FS=y + CONFIG_XFS_QUOTA=y + CONFIG_XFS_POSIX_ACL=y + CONFIG_XFS_RT=y +@@ -4614,7 +4614,7 @@ + CONFIG_CRC32=y + # CONFIG_CRC32_SELFTEST is not set + CONFIG_CRC7=m +-CONFIG_LIBCRC32C=m ++CONFIG_LIBCRC32C=y + # CONFIG_DDR is not set + + ## diff --git a/sys-kernel/debian-sources/metadata.xml b/sys-kernel/debian-sources/metadata.xml new file mode 100644 index 00000000..403aaa88 --- /dev/null +++ b/sys-kernel/debian-sources/metadata.xml @@ -0,0 +1,10 @@ + + funtoo + + funtoo-dev@googlegroups.com + + + Builds and installs kernel automatically + Applies the CONFIG_PREEMPT_RT patch series + + -- cgit v1.2.3