aboutsummaryrefslogtreecommitdiff
blob: 9e9c46b4ba264dea9fe67fcdd9bdaa0cb2b76c19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#
# custom_kernel_gui.py: gui kernel configuration.
#
# Copyright (C) 2011 wiktor w brodlo
# Copyright (C) 2011 Gentoo Foundation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

import string
import gtk
import gtk.glade
import gtk.gdk
import gobject
import pango
import sys
import gui
import re
import subprocess

from iw_gui import *

from constants import *
import gettext
_ = lambda x: gettext.ldgettext("anaconda", x)

class KernelWindow(InstallWindow):
	def getNext(self):
		box = self.xml.get_widget("kernel_viewport")
		terminal = VirtualTerminal()
		box.add(terminal)
		
		out = subprocess.check_output(["emerge", "-p", "gentoo-sources"])
		kernel_line = out.split("\n")[4].split()
		for x in kernel_line:
			m = re.search("sys-kernel/gentoo-sources-.*", kernel_line)
			if m != None:
				kernel = m.group(0)
		
		version = kernel.partition("gentoo-sources-")[2]
		(version_kernel, version_r, version_rn) = version.partition("-r")
		version_r = version_r+version_rn
		
		# Ensure the same version is emerged.
		terminal.run_command("emerge =gentoo-sources-"+version)
		terminal.run_command("cd /usr/src/linux-"+version_kernel+"-gentoo"+version_r)
		terminal.run_command("make nconfig")
		self.anaconda.kernel = version_kernel+"-gentoo"+version_r
		return None

	def getScreen(self, anaconda):
		self.anaconda = anaconda
		self.intf = anaconda.intf
		
		# Skip if we're doing a genkernel
		if self.anaconda.genkernel:
			return None
		
		(self.xml, self.align) = gui.getGladeWidget("custom_kernel.glade", "custom_kernel_align")
		
		return self.align