From e32bcd254007eea87cb2fd61bd1b06e0f68cd8a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Sun, 20 Nov 2016 02:21:54 +0100 Subject: [PATCH 1/5] sys-kernel/gentoo-kernel: use kernel 4.8.8 with patch version 9 --- sys-kernel/gentoo-kernel/Manifest | 16 ++++++++-------- .../files/{config-3.17.1 => config-4.8.8} | 0 ...-3.17.1.ebuild => gentoo-kernel-4.8.8.ebuild} | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) rename sys-kernel/gentoo-kernel/files/{config-3.17.1 => config-4.8.8} (100%) rename sys-kernel/gentoo-kernel/{gentoo-kernel-3.17.1.ebuild => gentoo-kernel-4.8.8.ebuild} (99%) diff --git a/sys-kernel/gentoo-kernel/Manifest b/sys-kernel/gentoo-kernel/Manifest index 517959a..af7e4a5 100644 --- a/sys-kernel/gentoo-kernel/Manifest +++ b/sys-kernel/gentoo-kernel/Manifest @@ -1,11 +1,11 @@ AUX config 99547 SHA256 b13379d09f5e5ba65d68afa5ebad98e280df59e345097fc6e2098cece54ee20a SHA512 ddc052fcc18b4eb80087b2e4eb58f544898d10318556c118535f842817e61b85c44572597c62632ee87371eb83bfb391d91e86aef719e90c60e8802bcfbfbaed WHIRLPOOL 214677b82a566cfe6ad6e5858172da7ef3a41496978232e7c4e9940e919c37891cb1f9cf92413c46fc8352dac9a0827378e2d52e2a2ab483105fd033fb0042f0 -AUX config-3.17.1 152331 SHA256 12f11e7ea1a1ac67f52514a3d63a02e12f1dd6a9fe0494c898296fce98769ea4 SHA512 43c1ee4a9e37b209f3f97fefb60197988827b3b1c1b51ae5dc8319f72497eecea9699f7af401aa36afab8ebabcdc20c0952e83ef3d60ccb5ceed5b90a0d18299 WHIRLPOOL 76f3678aa00b723405a453087bdcbade0187decd25740a402621d70db6963390b0eae1583ac360e5e3a13bb3bfdf0a9c4ea24f2c6e80cfddd2a65fa3108749f7 +AUX config-4.8.8 152331 SHA256 12f11e7ea1a1ac67f52514a3d63a02e12f1dd6a9fe0494c898296fce98769ea4 SHA512 43c1ee4a9e37b209f3f97fefb60197988827b3b1c1b51ae5dc8319f72497eecea9699f7af401aa36afab8ebabcdc20c0952e83ef3d60ccb5ceed5b90a0d18299 WHIRLPOOL 76f3678aa00b723405a453087bdcbade0187decd25740a402621d70db6963390b0eae1583ac360e5e3a13bb3bfdf0a9c4ea24f2c6e80cfddd2a65fa3108749f7 AUX group-source-files.pl 1756 SHA256 9d2f760f63404a0a3d5791d408b498fca242b9b05f8b174879667a044b6ecb42 SHA512 482af8cb55e9c780dd6d81d139aa705e8b44a15a1fa5bbb7693a97aacb1a7ae57d7b057fa3bda27e140b08526c144a21d093a45b811ec3e1f268cdbf82b3d895 WHIRLPOOL e5d7a5787d7fdc7dfeeeb80536a3159b64a1eeb0de280e55f7bd47b89accfc84468f5d0b611c058b22e2f805b61f686f55aec9cad10a283d115e0f19663b9397 AUX user-config.py 7731 SHA256 2671e6a7bed7616be29dba2e111d64ec3dc3139df8c3ee5e0b863bb061c5eb99 SHA512 17672206284afe4e2d2af0fdb96f355e4b7849c20b04799399aad910cfb9ac402bae44af782e92e7f847eefe90a67cb8ac3f35a6e395371f112abfbd9a03b2bb WHIRLPOOL 519853c8dab7548d7886ea2aa774c3b24e0b11723396edfb12dcbaceb222c94a71a0fa7d4bd5e1f45d2f871db550413be80ac895ef4a023240e613d36bd9bba9 -DIST deblob-3.17 127288 SHA256 93abf2894baf4d937ff2889fd1bdd04f1093bdb1321c79d8275e40f483e57ad1 SHA512 cb82b7cf59765991f74a1f5829cc6fb036a2e3466337b508884bcc5b27d7fef35db2e653cead705a37c7935c0bfb6bfeb1cdac7293de41994ee9c17ddca2ef39 WHIRLPOOL 0697a7bd39f270393814ffcbc746da6883e41fb32354223cdde8757b126d762bff55e69541c4d9ea0cc75093e19b73c4b6b09d98d9983e07b64fc4794615f2c8 -DIST deblob-check-3.17 638139 SHA256 6ddbf2201595f0ba80166f44163621a4b14f508934c7dcc6c4f39573531aff71 SHA512 f9c60b21af2ee50db85a85329c0a5e3ecc5195ca6d9cc7d6bf499fcdb2eddf1454d99e30b91ce6062f484069ac2096da445643bdea8358c5ff1a79292a5947d6 WHIRLPOOL a0a15be3a48fabc56a782b0f6a92cb88520479d9f837e1de8b4bd2990b751e25f5a130542208f1c18b8f89c5a29edde846adb425834a640b6e188eee38bd98e4 -DIST genpatches-3.17-2.base.tar.xz 17028 SHA256 e62e615c8a45258645ce39c481013ebcedf1b6d87629abb660ff9dff6116a287 SHA512 a71018ddaacf02ddc9a85ce6fe06445e159736333dcf5586acfea1513dcd2853c5e28c0cb9fbd87a8ca3d6891ae8c0d45a98238d4fcb339f145c5bc77b61e485 WHIRLPOOL f8bb13ffc69e64b3ed0c0de1f9795fcc6adaaf56133d8e8494c1ca2c052cc322fd6aafad59c6b94f92793fce38d393e039a0d9c750a6e4a80f247f90f09138b5 -DIST genpatches-3.17-2.experimental.tar.xz 3552 SHA256 f5d0de59e05adc4fbc871de1f4c3bd588744848a2626a2e993cb511dca9c350a SHA512 0473b7b36241d86f02090f0ef877f71241fbad98584a8deb9f94bb0eab845b9aea23e1be49caa6b36b5de6d57a025417f0138dfe6f97072d9be91e660947a818 WHIRLPOOL 1fae644455882d80f988acc4bc99568a9b2979045b2b70758f71e5effa79a346e5e7fad85e584e3e065267eac2f480e2991c8bf2476d2a2e6f028403517a7cc8 -DIST genpatches-3.17-2.extras.tar.xz 16164 SHA256 911f3b578907d5edb7a215a0e4e04daa7f453f796e3a35d662d6ffcfd4921912 SHA512 1d109ca1e40b513d0f7a0c9085e4ca69eeb342221327c373c33c072752ab234fc6c9032fce005bdc6219367947e0a95116ae6c68d1ea31c1ad097f233d8a33b1 WHIRLPOOL e02df791f7fec72591eb7f3cf605ea9db4ff9908268546ab1c6fa6f55bff85b8c766246d68df7af3dad6b03a576d4439f52808b63f9e00b409767911a9e3e994 -DIST linux-3.17.tar.xz 80333152 SHA256 f5153ec93c5fcd41b247950e6a9bcbc63fa87beafd112c133a622439a0f76251 SHA512 29c99764e371f7005dbbe2bbe4458b4deeae5297da7e5b719b0f29f6f018629338b608369162ae6bd76bec4d8719cf491257ac57fdd5277cce8941b7f90246a0 WHIRLPOOL 4b0ba9d997f28a317991287160c91c4e4f2245d7e08c7cb9691f67c3838bddb3ab8048b01e841e6659eceb94a269b6bde32f4ca521d999593d0e9473c8559b46 -EBUILD gentoo-kernel-3.17.1.ebuild 7235 SHA256 04c051027d12bc8700d93ff974e6306c40866ffc64822cbf2dcea7ebb0804d39 SHA512 06bad7784ad2a1bb02691e30fbb7c4d5f083fbd7dc642db29530932b55b5a195a2b83c5936b6970f0abb93b2237141913f1314f94a2c21e30bef49c1c6d38967 WHIRLPOOL ab57dd7cf85efe908603219f6b9e1c7e172b64c7a1047dc46e7566d03d044f291a86642b8d6d056eb31e89cc26181bd8f880b41ebcbc8574faeb31b90dcbe6f9 +DIST deblob-4.8 143624 SHA256 c74fe2ae951a3f22788783b42d06ded033bbb7bc0e29455e1b31305051e428d0 SHA512 87ccee6a079e2416e1a05ac2d05453ad635e92846c265741937d72c09170660ecca23be1c964843943f724e40f9be8f5bb56c0187823449fe67d12bd22d7e1b5 WHIRLPOOL 0d48da5f34e94dc8cd99c05bb9d7b779141ad62501e9312b3f667087ef9454f11b1787291b84df89710e4c53d42d4f3da02111ef8b3c843192813bf1806da814 +DIST deblob-check-4.8 712610 SHA256 21a28a2dc26991bafdc9143b77d614e3df7a126d9f16ea99e89e6afa1b24ab50 SHA512 caa39ffc45a0e2f0c8be345f0e1733584cc12c098d51fff65aa9d065b7701a500a581b91c2ee1797fc4b1e76c8a74253add1ccd11bd180abeaedf64a100a5bff WHIRLPOOL d0925f88b37c0d32b66010c4d0cc01f749a19f5fb3c582d38b91557981dbf0d144e4cbfd3dd383d0fc3f50a222a39e5c5f56971928a07faac63b8f0f9a785c52 +DIST genpatches-4.8-9.base.tar.xz 171712 SHA256 17a33696a461e900a59eb2ecc8aeb6461681889b71bd12d89756f183b9aa85ff SHA512 bbdfae61748f45009ba3658ed325b1e977a37c238204a654409f5f67718e98146ce40e5ca0ef5c97571f79b300b7ea98a6e45790407250b4d858bcc3f34752f2 WHIRLPOOL eae93dec27e1eb9b6c834ce5a95e7bbeaefb013451e0d3cd87025321e50ba96e86713590dd908f9c397c7a51d5a57f5c695db8c27a9c73366138ce0384d772a3 +DIST genpatches-4.8-9.experimental.tar.xz 91964 SHA256 c5a4a43bacac7dccb3da756c4422f786815688eeba637fc17d515af99f7f1668 SHA512 b9c1c62599bd9e42a4be60dbbf66d07f1c53135e272b6d7ac18d102fee57ba92f73d16fb5d31e80830389b44736ed50c72fe1d27c8c40e3f5cc90367f49c4ddb WHIRLPOOL c96147a7ed5a7f4b0a48faae8cec3a322057fc8173aeb379339140fea6039fcf397ffd878018ff1f815a793f2f8fddb2e1cf8af630b04819dfe1b3a5edeb537f +DIST genpatches-4.8-9.extras.tar.xz 17240 SHA256 234f0e14d33db0e6f6030a0ab178cc66262362995ff4283862bc7158653bcb04 SHA512 8ff161bdd3984ec06731ff3da8136ad6a2034e0bf9ab10bf47d6715aaf5cb3495d005c35155c65ff621ce91b8f906019881f3a361b425ba8a6efb9ff45aa16a2 WHIRLPOOL bf4d2f3eadbec945f56d576c7c95169379a44c803cb1c848de1247c506f7acce57f915dd9356844c7412e71c032d02274207a7519ad10ca6adf6d1307cb0c86b +DIST linux-4.8.tar.xz 91966856 SHA256 3e9150065f193d3d94bcf46a1fe9f033c7ef7122ab71d75a7fb5a2f0c9a7e11a SHA512 a48a065f21e1c7c4de4cf8ca47b8b8d9a70f86b64e7cfa6e01be490f78895745b9c8790734b1d22182cf1f930fb87eaaa84e62ec8cc1f64ac4be9b949e7c0358 WHIRLPOOL 3888c8c07db0c069f827245d4d7306087f78f7d03e8240eb1fcd13622cd5dbe1c17cd8ed7dc11513f77f3efd5dbd84e2b48e82bdb9b9bfd2242fd62ae32812d5 +EBUILD gentoo-kernel-4.8.8.ebuild 7235 SHA256 f650dc5782b65a25e140bdd0a71ae21d4fa65e4b6a70378a3ba0b3395ccbab16 SHA512 3398db954269f613743697e5421cca3fc6d6785948bfb203c8a330783e5b2124b2c2fc72e813294da81d8b0f55d755b94c6b65b00f0b8c3a453a81ea204fa15b WHIRLPOOL e5452394323ae914027c40a2d3cf7fc2e0ba8d6a231bae4dbdaa74adc1990b31b05e64c38ccb56cecbfc4ac383bb0d795b5a6532d595ff2e64f1a29efa6ac3f9 diff --git a/sys-kernel/gentoo-kernel/files/config-3.17.1 b/sys-kernel/gentoo-kernel/files/config-4.8.8 similarity index 100% rename from sys-kernel/gentoo-kernel/files/config-3.17.1 rename to sys-kernel/gentoo-kernel/files/config-4.8.8 diff --git a/sys-kernel/gentoo-kernel/gentoo-kernel-3.17.1.ebuild b/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild similarity index 99% rename from sys-kernel/gentoo-kernel/gentoo-kernel-3.17.1.ebuild rename to sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild index 3fd6293..e7a2a17 100644 --- a/sys-kernel/gentoo-kernel/gentoo-kernel-3.17.1.ebuild +++ b/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild @@ -5,7 +5,7 @@ EAPI="5" ETYPE="sources" K_WANT_GENPATCHES="base extras experimental" -K_GENPATCHES_VER="2" +K_GENPATCHES_VER="9" K_DEBLOB_AVAILABLE="1" inherit kernel-2 mount-boot detect_version From ecceccdcfa5165940fef8357cdb57d91040b82f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Sun, 20 Nov 2016 03:34:45 +0100 Subject: [PATCH 2/5] sys-kernel/gentoo-kernel: disable menuconfig explicitly Override `MENUCONFIG="yes"` in `/etc/genkernel.conf`. --- sys-kernel/gentoo-kernel/Manifest | 2 +- sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sys-kernel/gentoo-kernel/Manifest b/sys-kernel/gentoo-kernel/Manifest index af7e4a5..c9571be 100644 --- a/sys-kernel/gentoo-kernel/Manifest +++ b/sys-kernel/gentoo-kernel/Manifest @@ -8,4 +8,4 @@ DIST genpatches-4.8-9.base.tar.xz 171712 SHA256 17a33696a461e900a59eb2ecc8aeb646 DIST genpatches-4.8-9.experimental.tar.xz 91964 SHA256 c5a4a43bacac7dccb3da756c4422f786815688eeba637fc17d515af99f7f1668 SHA512 b9c1c62599bd9e42a4be60dbbf66d07f1c53135e272b6d7ac18d102fee57ba92f73d16fb5d31e80830389b44736ed50c72fe1d27c8c40e3f5cc90367f49c4ddb WHIRLPOOL c96147a7ed5a7f4b0a48faae8cec3a322057fc8173aeb379339140fea6039fcf397ffd878018ff1f815a793f2f8fddb2e1cf8af630b04819dfe1b3a5edeb537f DIST genpatches-4.8-9.extras.tar.xz 17240 SHA256 234f0e14d33db0e6f6030a0ab178cc66262362995ff4283862bc7158653bcb04 SHA512 8ff161bdd3984ec06731ff3da8136ad6a2034e0bf9ab10bf47d6715aaf5cb3495d005c35155c65ff621ce91b8f906019881f3a361b425ba8a6efb9ff45aa16a2 WHIRLPOOL bf4d2f3eadbec945f56d576c7c95169379a44c803cb1c848de1247c506f7acce57f915dd9356844c7412e71c032d02274207a7519ad10ca6adf6d1307cb0c86b DIST linux-4.8.tar.xz 91966856 SHA256 3e9150065f193d3d94bcf46a1fe9f033c7ef7122ab71d75a7fb5a2f0c9a7e11a SHA512 a48a065f21e1c7c4de4cf8ca47b8b8d9a70f86b64e7cfa6e01be490f78895745b9c8790734b1d22182cf1f930fb87eaaa84e62ec8cc1f64ac4be9b949e7c0358 WHIRLPOOL 3888c8c07db0c069f827245d4d7306087f78f7d03e8240eb1fcd13622cd5dbe1c17cd8ed7dc11513f77f3efd5dbd84e2b48e82bdb9b9bfd2242fd62ae32812d5 -EBUILD gentoo-kernel-4.8.8.ebuild 7235 SHA256 f650dc5782b65a25e140bdd0a71ae21d4fa65e4b6a70378a3ba0b3395ccbab16 SHA512 3398db954269f613743697e5421cca3fc6d6785948bfb203c8a330783e5b2124b2c2fc72e813294da81d8b0f55d755b94c6b65b00f0b8c3a453a81ea204fa15b WHIRLPOOL e5452394323ae914027c40a2d3cf7fc2e0ba8d6a231bae4dbdaa74adc1990b31b05e64c38ccb56cecbfc4ac383bb0d795b5a6532d595ff2e64f1a29efa6ac3f9 +EBUILD gentoo-kernel-4.8.8.ebuild 7255 SHA256 2890d5e88ce2d0c357818ebfedf4dab9973c432a922e70143084ebb8f0b96b27 SHA512 c060b58599eb97d230aa524702335c1d7637ee0f88be3d1abccb35c7d2903b15d6244e9e6784cd8716853aad7bf2ce20a1972d3a2714ee2f0ecab70ef96d7eda WHIRLPOOL 34670de789e2b9a20c4f3a426ef1dc9666c63f02ea8d79c83b762760f0613f423002a9841dcfb7fdd7b39863fa3a40f157b76ed4ff9a08334835628935eeaf00 diff --git a/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild b/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild index e7a2a17..bab6167 100644 --- a/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild +++ b/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild @@ -143,6 +143,7 @@ src_compile() { install -d "${T}"/{cache,twork} install -d "${WORKDIR}"/build "${WORKDIR}"/out/lib/firmware genkernel \ + --no-menuconfig \ --no-save-config \ --no-clean \ --kernel-config="${T}"/cfg/.config \ From 67273290fa56281fa927c77b0e6b5da3d7df49c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Sun, 20 Nov 2016 10:25:08 +0100 Subject: [PATCH 3/5] repo: use thin-manifests I'm going to add a live ebuild and I want to use it without manifests. --- metadata/layout.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/layout.conf b/metadata/layout.conf index ff4e2f8..ca9fee1 100644 --- a/metadata/layout.conf +++ b/metadata/layout.conf @@ -1,2 +1,2 @@ masters = gentoo - +thin-manifests = true From 796669266ca8f9c34852cc288765b95d371ddbd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Mon, 31 Oct 2016 22:12:57 +0100 Subject: [PATCH 4/5] sys-kernel/kernel-tools: add live ebuild --- sys-kernel/kernel-tools/kernel-tools-9999.ebuild | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 sys-kernel/kernel-tools/kernel-tools-9999.ebuild diff --git a/sys-kernel/kernel-tools/kernel-tools-9999.ebuild b/sys-kernel/kernel-tools/kernel-tools-9999.ebuild new file mode 100644 index 0000000..92dbf54 --- /dev/null +++ b/sys-kernel/kernel-tools/kernel-tools-9999.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libnl/libnl-3.2.9999.ebuild,v 1.1 2013/10/23 10:58:30 jer Exp $ + +EAPI=6 +PYTHON_COMPAT=( python{3_3,3_4} ) +GITHUB_USER=pavlix + +inherit git-r3 distutils-r1 + +EGIT_REPO_URI="https://github.com/pavlix/kernel-tools.git" + +DESCRIPTION="Tool for reproducible non-interactive kernel configuration" +LICENSE="GPL-2" +SLOT="0" From ec4c07857454187ccd3496091e6b391e9bd9bb16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20=C5=A0imerda?= Date: Sun, 20 Nov 2016 10:30:10 +0100 Subject: [PATCH 5/5] sys-kernel/gentoo-kernel: use user-config.py from kernel-tools --- sys-kernel/gentoo-kernel/files/user-config.py | 232 ------------------ .../gentoo-kernel/gentoo-kernel-4.8.8.ebuild | 6 +- 2 files changed, 2 insertions(+), 236 deletions(-) delete mode 100755 sys-kernel/gentoo-kernel/files/user-config.py diff --git a/sys-kernel/gentoo-kernel/files/user-config.py b/sys-kernel/gentoo-kernel/files/user-config.py deleted file mode 100755 index 8b87cb4..0000000 --- a/sys-kernel/gentoo-kernel/files/user-config.py +++ /dev/null @@ -1,232 +0,0 @@ -#!/usr/bin/env python2 - -import sys -import re - -class KernelConfig: - - def __init__(self): - self.options = dict() - self.old_options = dict() - - def parse(self, cfg): - for line in cfg: - line = line.strip() - - if not line: - #print "skip empty line" - continue; - - if re.search("^#.*$", line): - m = re.match("^# CONFIG_([^ ]+) is not set$", line) - - if m: - self.options[m.group(1)] = ("simple", "n") - continue - # print "CONFIG " + m.group(1) + " is not set" - else: - # print "skip comment: " + line - continue - continue - - m = re.match("^CONFIG_([^=]+)=([ym])$", line) - if m: - self.options[m.group(1)] = ("simple", m.group(2)) - #print "CONFIG " + m.group(1) + " is set to " + m.group(2) - continue - - m = re.match("^CONFIG_([^=]+)=([-]?[0-9]+)$", line) - if m: - self.options[m.group(1)] = ("number", m.group(2)) - #print "CONFIG " + m.group(1) + " is set to " + m.group(2) - continue - - m = re.match("^CONFIG_([^=]+)=(0x[0-9a-f]+)$", line) - if m: - self.options[m.group(1)] = ("number", m.group(2)) - #print "CONFIG " + m.group(1) + " is set to " + m.group(2) - continue - - m = re.match("^CONFIG_([^=]+)=\"(.*)\"$", line) - if m: - self.options[m.group(1)] = ("string", m.group(2)) - #print "CONFIG " + m.group(1) + " is set to " + m.group(2) - continue - - print "unmatched line: " + line - - def parse_file(self, filename): - cfg = open(filename, 'r') - self.parse(cfg) - cfg.close() - - def value_to_string(self, value): - if value[0] == "simple": - return value[1] - - if value[0] == "number": - return value[1] - - if value[0] == "string": - return "\"" + value[1] + "\"" - - def config_to_string(self, opt, value): - option = "CONFIG_" + opt - valstr = self.value_to_string(value) - - if value == ("simple", "n"): - return "# " + option + " is not set" - else: - return option + "=" + valstr - - def store(self, cfg): - for opt, value in sorted(self.options.items()): - cfg.write(self.config_to_string(opt, value) + "\n") - - def store_file(self, filename): - cfg = open(filename, 'w') - self.store(cfg) - cfg.close() - - def store_diff(self, cfg): - for opt, value in sorted(self.options.items()): - optstr = "CONFIG_" + opt - newval = self.value_to_string(value) - oldval = self.value_to_string(self.old_options[opt]) - cfg.write(optstr + "=" + newval + " (changed from: " + oldval + ")\n") - - def store_diff_file(self, filename): - cfg = open(filename, 'w') - self.store_diff(cfg) - cfg.close() - - def trim_by_dist_config(self, dist): - trimmed = KernelConfig() - - # everything that user sets which is not in dist, or - # differs from dist, will be included in trimmed config - for opt, value in self.options.iteritems(): - if opt not in dist.options: - trimmed.options[opt] = value - continue - if value != dist.options[opt]: - trimmed.options[opt] = value - - # everything that dist sets and is missing in user config, - # will be explicitly disabled in trimmed config - for opt in dist.options.iterkeys(): - if opt not in self.options: - trimmed.options[opt] = ("simple", "n") - - return trimmed - - def combine_with_dist_config(self, dist): - combined = KernelConfig() - combined.options = self.options.copy() - - for opt, value in dist.options.iteritems(): - if opt not in combined.options: - combined.options[opt] = value - - return combined - - def compare_user_with_combined(self, comb, dist): - was_disabled = KernelConfig() - is_missing = KernelConfig() - was_changed = KernelConfig() - new_option = KernelConfig() - dist_was_disabled = KernelConfig() - dist_new_option = KernelConfig() - dist_is_missing = KernelConfig() - dist_was_changed = KernelConfig() - - for opt, value in self.options.iteritems(): - if value == ("simple", "n"): - if opt not in comb.options: - continue - if value != comb.options[opt]: - was_disabled.options[opt] = comb.options[opt] - continue - if opt not in comb.options: - is_missing.options[opt] = value - continue - if value != comb.options[opt]: - was_changed.options[opt] = comb.options[opt] - was_changed.old_options[opt] = value - - for opt, value in comb.options.iteritems(): - if opt not in self.options: - if value == ("simple", "n"): - continue - if opt not in dist.options: - new_option.options[opt] = value - else: - dist_new_option.options[opt] = value - - for opt, value in dist.options.iteritems(): - if opt in self.options: - continue - if opt not in comb.options: - if value != ("simple", "n"): - dist_is_missing.options[opt] = value - continue - if value != comb.options[opt]: - if value == ("simple", "n"): - dist_was_disabled[opt] = comb.options[opt] - else: - dist_was_changed.options[opt] = comb.options[opt] - dist_was_changed.old_options[opt] = value - - return (was_disabled, is_missing, was_changed, new_option, dist_new_option, dist_is_missing, dist_was_changed, dist_was_disabled) - -action = sys.argv[1]; - -if action == "--trim": - - user_config = KernelConfig() - dist_config = KernelConfig() - - user_config.parse_file(sys.argv[2]) - dist_config.parse_file(sys.argv[3]) - - trim_config = user_config.trim_by_dist_config(dist_config) - trim_config.store_file(sys.argv[4]) - -elif action == "--combine": - - user_config = KernelConfig() - dist_config = KernelConfig() - - user_config.parse_file(sys.argv[2]) - dist_config.parse_file(sys.argv[3]) - - comb_config = user_config.combine_with_dist_config(dist_config) - comb_config.store_file(sys.argv[4]) - -elif action == "--diff": - - diff_path = sys.argv[5] + "/" - - user_config = KernelConfig() - dist_config = KernelConfig() - comb_config = KernelConfig() - - user_config.parse_file(sys.argv[2]) - dist_config.parse_file(sys.argv[3]) - comb_config.parse_file(sys.argv[4]) - - (was_disabled, is_missing, was_changed, new_option, dist_new_option, dist_is_missing, dist_was_changed, dist_was_disabled) = \ - user_config.compare_user_with_combined(comb_config, dist_config) - - was_disabled.store_file(diff_path + "was_disabled") - is_missing.store_file(diff_path + "is_missing") - was_changed.store_diff_file(diff_path + "was_changed") - new_option.store_file(diff_path + "new_options") - dist_was_disabled.store_file(diff_path + "dist_was_disabled") - dist_was_changed.store_diff_file(diff_path + "dist_was_changed") - dist_is_missing.store_file(diff_path + "dist_is_missing") - dist_new_option.store_file(diff_path + "dist_new_options") - -else: - sys.stderr.write("unknown action: " + action + "\n") - diff --git a/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild b/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild index bab6167..9ce23d0 100644 --- a/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild +++ b/sys-kernel/gentoo-kernel/gentoo-kernel-4.8.8.ebuild @@ -125,13 +125,11 @@ src_prepare() { if [[ -f ${USER_CONFIG} ]]; then einfo "Using saved user config from ${USER_CONFIG}" cd "${T}"/cfg || die - cp ${FILESDIR}/user-config.py . || die - chmod +x user-config.py || die - ./user-config.py --combine ${USER_CONFIG} ${DISTRO_CONFIG} .config || die + user-config.py --combine ${USER_CONFIG} ${DISTRO_CONFIG} .config || die cd "${S}" || die make O="${T}"/cfg/ olddefconfig || die cd "${T}"/cfg || die - ./user-config.py --diff ${USER_CONFIG} ${DISTRO_CONFIG} .config . || die + user-config.py --diff ${USER_CONFIG} ${DISTRO_CONFIG} .config . || die process_diffs else cp ${DISTRO_CONFIG} "${T}"/cfg/.config