Update utils

atratsevskiy
parent 7d69a1e462
commit bef97250e6

@ -1,4 +1,6 @@
AUX calculate-console-gui-3.0.0-r1.patch 8509 SHA256 d93d73a5f564f8fc2482699e33ea4b78896c560121ffb7f4139f1135d0be47f1 SHA512 faf45b67d570a74328fe0056e9f1704d18e589280abdf41a096bd8153860019b68e7352e06878d798862dfdc685b64805080ccbc050a2ad01283b6994f532bb0 WHIRLPOOL d14ae959c1bbc5f3f38d788158fb4001ca7bd426aa9d4d3cde4d72a13b2f216917f20645c7c0ec544b1187f91af46ceda41849b78d03e1871bf298c53ad92d43
DIST calculate-console-gui-3.0.0.tar.bz2 326089 SHA256 c4c0e1c6e5c306283c493173746950f6a37fc8413703fa098a911f9e037801a6 SHA512 f054fe8ed1075dd09c5e014e7f8d224d1bbc17546381f143092638b847ef21646f43cf2cb9df88c921a6803d60cf2e789dc670acd3f3131d1e78e19fbfff15f5 WHIRLPOOL 427edc3d3656857dfc5b342b49058d1fef017664bc75f0743641231fc8d8cbcc03234d41d5887c3d381dbeecb16a97205007fd080aa047f4b9d48099a294fd96
EBUILD calculate-console-gui-3.0.0-r1.ebuild 651 SHA256 9c40c3cc5c7a9be1e77268105f3191a720082d5ea1edca7da824af2c1b37906f SHA512 abee3aefcebfc824895df4cf653b109ff5cce6dbdb99f7165b6ee8e118aad912b5b7ab5ba6995ceaf79377f64a2fbdbd514cc728b1d3a0180bedc806e861df38 WHIRLPOOL 52409bd6660e4b28c2eaef4b1e1030a5e563785afd5a9c374ca055225cfd8211440fee7e453fdb4fb741d6fcaa9ad800a546cdc5c081226aecdd12a88e6833c0
EBUILD calculate-console-gui-3.0.0.ebuild 536 SHA256 66b89e6f71022434d4e2e07560c6a8b92f16c574c43406f295cc850889e3fe74 SHA512 7813cc31b38611b02831571be32654e6f16824b4dbed0ec8c6c2330c930a4164f547f006ad26c9117e854d829defad5b0f2f578dad2b5a1b81700b34b492fdb5 WHIRLPOOL 0521c005a8707647230e21833b96ad22345492598d367501598bd5476daba42c6901a2f55895bed493c92afac34522b1980a42c4237bfe445f3304353eb97b65
EBUILD calculate-console-gui-3.0.9999.ebuild 504 SHA256 a4f8c400a6d15177eadf8dbcb935ab71649f51f7bf330dbcdc61623c0b771dcf SHA512 fd71ac4d51ce2aca1403f7a0107d169be05e66b47ec4b20bad8a3339cd6ff7699dd3b5c4758f272429a55ab1493f966e5c02123734cc759cee893c837822e092 WHIRLPOOL cfe909254d89db3010d31f9d6fe6e4c45540d7283f561eb6f6a8bbb0bc0907e5499101ef88d5e8a8f4bc337fb2ae76d8ed0746de5c7a912d6456d2aacbec4ce5
MISC ChangeLog 311 SHA256 7114941c15999cc77b940a169c8cc780476f301625ff6444f6adab83d6e9edcc SHA512 4379e396c9672d9f423ea4e5098b386ecf3c6a7208a04baf818a665145e0b85e181a470f37f66cdb68f078abcd9537c562f9f3e206dedf541c0696763faaf478 WHIRLPOOL b87625cd30aa88ae17a7063950e49fc9e89962c082a117c4447e0f9295c21847240f586549228b56e4764043ad9b40fcbc548388c8a88cb9e55279f4eff95a91

@ -0,0 +1,29 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
inherit distutils eutils
SRC_URI="ftp://ftp.calculate.ru/pub/calculate/calculate3/${PN}/${P}.tar.bz2"
DESCRIPTION="Qt gui console client for WSDL Calculate 3"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
DEPEND="~sys-apps/calculate-core-3.0.0
dev-python/dbus-python
dev-python/imaging
dev-python/pyside[script]"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# changes
epatch "${FILESDIR}/calculate-console-gui-3.0.0-r1.patch"
}

@ -0,0 +1,211 @@
diff --git consolegui/application/MainFrameResult.py consolegui/application/MainFrameResult.py
index 13ec7c1..8f6f21f 100755
--- consolegui/application/MainFrameResult.py
+++ consolegui/application/MainFrameResult.py
@@ -139,8 +139,14 @@ class MainFrameRes(QtGui.QWidget):
len(table.head[0]), self)
if not hasattr (self, 'mytable'):
- self.mytable = SelectedTableWidget(len(table.body[0]), \
- len(table.head[0]), self, readonly = True)
+ if table.body:
+ len_body = len(table.body[0])
+ else: len_body = 1
+ if table.head:
+ len_head = len(table.head[0])
+ else: len_head = 1
+ self.mytable = SelectedTableWidget(len_body, len_head, self,
+ readonly = True)
list_head = table.head[0]
self.mytable.setHorizontalHeaderLabels(list_head)
for line in range(len(table.body[0])):
diff --git consolegui/application/mainframe.py consolegui/application/mainframe.py
index f001ba5..de578c2 100755
--- consolegui/application/mainframe.py
+++ consolegui/application/mainframe.py
@@ -41,7 +41,6 @@ class CallMethod(QtCore.QThread):
def run(self):
self.collect_sig.emit()
time.sleep(0.1)
-
self.call_meth_sig.emit()
class TableValue():
@@ -106,7 +105,7 @@ class MainFrame(QtGui.QWidget):
self.setObjectName('MainFrame')
self.setStyleSheet("QWidget#MainFrame "
"{background-color: #E4E1E0;}")
-# " QWidget { border: 1px solid blue;}")
+ # " QWidget { border: 1px solid blue;}")
# x = 0 - space for image
x = 1
y = 0
@@ -500,6 +499,8 @@ class MainFrame(QtGui.QWidget):
else:
self.view_dict[field.name] = QCheckBox(self)
+ self.view_dict[field.name].setFocusPolicy(QtCore.Qt.NoFocus)
+
if field.element.lower() == 'check_tristate' or self.expert:
self.view_dict[field.name].setTristate()
if field.value == 'on':
@@ -613,6 +614,7 @@ class MainFrame(QtGui.QWidget):
for i in range(0,len(choice)):
radio_but = RadioButton(self)
+ radio_but.setFocusPolicy(QtCore.Qt.NoFocus)
if choice[i] == None:
choice[i] = ''
try:
diff --git consolegui/application/more.py consolegui/application/more.py
index f68979f..17951c8 100755
--- consolegui/application/more.py
+++ consolegui/application/more.py
@@ -655,6 +655,7 @@ class ComboFileWgt(QtGui.QWidget):
class ReadonlyCheckBox(QtGui.QCheckBox):
def __init__(self, parent):
QtGui.QCheckBox.__init__(self, parent)
+ self.setFocusPolicy(QtCore.Qt.NoFocus)
self.disabled = False
def mousePressEvent(self, event):
@@ -680,6 +681,7 @@ class CentralCheckBox (QtGui.QWidget):
self.pCheckB.clicked.connect(self.change_label)
self.change_label()
self.setStyleSheet('padding: 0px; margin-left: 2px;')
+ self.setFocusPolicy(QtCore.Qt.NoFocus)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
def setChecked(self, check = True):
@@ -848,7 +850,21 @@ class MultipleChoiceDialog (QtGui.QWidget):
p_m_wgt = QtGui.QWidget(self)
p_m_layout = QtGui.QVBoxLayout(p_m_wgt)
- # add '+' button
+
+ # add '++' button
+ self.plus_all_Button = QtGui.QPushButton(self)
+ plus_all_icons = ['go-last-view', 'go-last']
+ for icon in plus_all_icons:
+ icon_next = QtGui.QIcon.fromTheme(icon)
+ if not icon_next.isNull():
+ self.plus_all_Button.setIcon(icon_next)
+ break
+ if icon_next.isNull():
+ self.plus_all_Button.setText('->\n->')
+ self.plus_all_Button.clicked.connect(self.plus_all_items)
+ p_m_layout.addWidget(self.plus_all_Button)
+
+ # add '+' button
self.plus_Button = QtGui.QPushButton(self)
plus_icons = ['go-next-view','go-next']
for icon in plus_icons:
@@ -876,6 +892,19 @@ class MultipleChoiceDialog (QtGui.QWidget):
self.layout.addWidget(p_m_wgt, 2, 2, 2, 1)
+ # add '--' button
+ self.minus_all_Button = QtGui.QPushButton(self)
+ minus_all_icons = ['go-first-view', 'go-first']
+ for icon in minus_all_icons:
+ icon_next = QtGui.QIcon.fromTheme(icon)
+ if not icon_next.isNull():
+ self.minus_all_Button.setIcon(icon_next)
+ break
+ if icon_next.isNull():
+ self.minus_all_Button.setText('<-\n<-')
+ self.minus_all_Button.clicked.connect(self.minus_all_items)
+ p_m_layout.addWidget(self.minus_all_Button)
+
#add right list
self.right_ListWidget = ListWidget(self)
self.right_ListWidget.itemDoubleClicked.connect(self.minus_item)
@@ -919,6 +948,14 @@ class MultipleChoiceDialog (QtGui.QWidget):
self.add_LineEdit.setText('')
self.add_LineEdit.setFocus()
+ def plus_all_items(self):
+ # get item in left_ListWidget and set this item in right_ListWidget
+ while True:
+ temp_item = self.left_ListWidget.takeItem(0)
+ if not temp_item:
+ return
+ self.right_ListWidget.addItem(temp_item)
+
def plus_item(self):
# get item in left_ListWidget and set this item in right_ListWidget
temp_item = self.left_ListWidget.takeItem \
@@ -931,6 +968,14 @@ class MultipleChoiceDialog (QtGui.QWidget):
(self.right_ListWidget.currentRow())
self.left_ListWidget.addItem(temp_item)
+ def minus_all_items(self):
+ # get item in left_ListWidget and set this item in right_ListWidget
+ while True:
+ temp_item = self.right_ListWidget.takeItem(0)
+ if not temp_item:
+ return
+ self.left_ListWidget.addItem(temp_item)
+
def ok_pressed(self):
# save all lists and close this widget
self._parent.Selected = []
@@ -961,12 +1006,12 @@ class MultipleChoiceDialog (QtGui.QWidget):
class MultipleButton(QtGui.QPushButton):
def __init__(self, text, parent):
QtGui.QPushButton.__init__(self, text, parent)
- self.setStyleSheet ("text-align: left;")
- self.setContentsMargins(0, 0, 0, 0)
+ self.setStyleSheet("text-align: left; padding: 3px;")
+ self.setFocusPolicy(QtCore.Qt.NoFocus)
def mousePressEvent(self, button = None):
self.parent().mousePressEvent()
-
+
class MultipleChoice (QtGui.QWidget):
Changed = QtCore.Signal()
# multiple-choice widget displayed in the table
@@ -1369,6 +1414,7 @@ class SelectList(QtGui.QGroupBox):
self.CheckBoxList = []
for row in range(self.row_count):
item = QtGui.QCheckBox(self.comments[row])
+ item.setFocusPolicy(QtCore.Qt.NoFocus)
item.setStyleSheet("QCheckBox {margin: 2px;}"
"QCheckBox:hover { margin: 2px;"
"background-color: transparent;}")
@@ -1435,6 +1481,7 @@ class SelectList(QtGui.QGroupBox):
self.addLineWgt.close()
item = QtGui.QCheckBox(text)
+ item.setFocusPolicy(QtCore.Qt.NoFocus)
item.setStyleSheet("QCheckBox {margin: 2px;}"
"QCheckBox:hover { margin: 2px;"
"background-color: transparent;}")
@@ -1515,6 +1562,7 @@ class ExpertWidget (QtGui.QPushButton):
layout.addWidget(self.image_lbl)
self.text_lbl = QtGui.QLabel(label, self)
+ self.setFocusPolicy(QtCore.Qt.NoFocus)
layout.addWidget(self.text_lbl)
layout.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
@@ -1704,7 +1752,7 @@ class PlusRow (QtGui.QWidget):
self.grid.addWidget(self.widget_dict[str(i)], x, y+1, \
QtCore.Qt.AlignLeft)
- x += 1
+ x += 1
elif element == 'combo':
ChoiceValue = field.tablevalue.values.ChoiceValue[i]
diff --git scripts/cl-console-gui scripts/cl-console-gui
index 9cc7777..867932e 100755
--- scripts/cl-console-gui
+++ scripts/cl-console-gui
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python2
#-*- coding: utf-8 -*-
import sys, os, pwd

@ -1,4 +1,6 @@
AUX calculate-console-3.0.0-r1.patch 8396 SHA256 22bd6cc0d82e381ddb707c3b41f9e3437da44715ce06cbbd0faa455d5d67f1fb SHA512 5c1f19ab9859ec116139c7d54838e7341496234ce6379a4947a460b98578c607abe6cb1faf195f9871a8e0bfbb1eae7546d69d0f8acaabe8874c66643d41a9db WHIRLPOOL 5ac6b873af793b8ad132768c55de948f9791fdc3c30ea5fb23bc4eb9fed61b4ef82a2882a2645d3d0df824a6db11c4892a6b12fef78aa8841507f39a59a04da6
DIST calculate-console-3.0.0.tar.bz2 31132 SHA256 d4bd16da8ee709898e95a3b85dae8d7821877484ae858e3925184a30a7c1aeee SHA512 e09a92a998ef58a09a2980116b121507a6d4769bb96cfe202ccd9d57663eb2ea32eb00de4c899b6f8bc4e564efbb881aebfce4b45e13089a70d40eeaacb8c35e WHIRLPOOL ba90f7612c5e0f22804b63fbeee003a717dc9908adb50591d7e3485b7d98c0383d209909fad1b52c2483b20ba959413b571d6b59ae556dd962ab3aeb1241b2fe
EBUILD calculate-console-3.0.0-r1.ebuild 569 SHA256 e6983b4103843474a82fc545c409d5662d3cd2286b936244e98952e9cd3426c5 SHA512 126ab2a2be82a6bff92f4da6af57c6c8f0683df83e9b981df2102905302ab7158e206e20d803169973aebd295e854247e349cbdab101f12c3e71d053db87d443 WHIRLPOOL ae9c6eb88e0e80e890923692e9192e369bf915c1491a82b509a9d287003ce9b2dc417fdaf682bb5a394a983329cfdcd4c6898f11eb800a9b4749c216952909c6
EBUILD calculate-console-3.0.0.ebuild 458 SHA256 3ddd9375768ac9f0614bfc0f126d6324421d1fdc6e3ff77e699c8a58327c9ad6 SHA512 e3098b01163afcf6c3542dc19b39c6c46faa2f2dd1ab7b5fa932635af8dbc281a5c44ac9ad0fde273c1d87e783952eec118e6ff5cff40549360fc55c364dbcb4 WHIRLPOOL 49abf3dd2a41b769199c9042861a2567f89db0a01e520a07e2cc366c47e985caad02b0982e63d4121a0aaa516fc13e9841ec55d5cd12cf40a834da003af2e248
EBUILD calculate-console-3.0.9999.ebuild 500 SHA256 8554b9ce61b890c24cf2b51913df7eb738a7ef1bdf4dbb9a7d539ab72dc3511c SHA512 816b8d2fe6e112c9f184760d1472857eada7dbeaa1e1917e82ba3b8865fbcd3129df86152671028d9b72602d3ab3639bee2e72b769d7cff318b6e5cd83d5d744 WHIRLPOOL 4524404e33e0ee965394e9240a885b57e0f829ec4a8b992f14cbe81c46e45bd31043886d7a3a5ece8d2cef6f5d0f7a3dd84a75bd4bec6fe82edcfc40fd2de080
MISC ChangeLog 311 SHA256 7114941c15999cc77b940a169c8cc780476f301625ff6444f6adab83d6e9edcc SHA512 4379e396c9672d9f423ea4e5098b386ecf3c6a7208a04baf818a665145e0b85e181a470f37f66cdb68f078abcd9537c562f9f3e206dedf541c0696763faaf478 WHIRLPOOL b87625cd30aa88ae17a7063950e49fc9e89962c082a117c4447e0f9295c21847240f586549228b56e4764043ad9b40fcbc548388c8a88cb9e55279f4eff95a91

@ -0,0 +1,26 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
inherit distutils eutils
SRC_URI="ftp://ftp.calculate.ru/pub/calculate/calculate3/${PN}/${P}.tar.bz2"
DESCRIPTION="Console client for WSDL Calculate 3"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
DEPEND="~sys-apps/calculate-core-3.0.0"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# changes
epatch "${FILESDIR}/calculate-console-3.0.0-r1.patch"
}

@ -0,0 +1,223 @@
diff --git .gitignore .gitignore
index ea7e6a7..279d4d2 100644
--- .gitignore
+++ .gitignore
@@ -3,3 +3,6 @@ build
*.pyc
*.kate-swp
*.mo
+mymake
+.gitignore
+Makefile
diff --git console/application/cl_client.py console/application/cl_client.py
index 7bdc5b1..1ec21e2 100644
--- console/application/cl_client.py
+++ console/application/cl_client.py
@@ -65,6 +65,8 @@ class StoppableThread(threading.Thread):
def __init__(self):
super(StoppableThread, self).__init__()
self._stop = threading.Event()
+ self._pause = threading.Event()
+ self._paused = threading.Event()
def run(self):
l = ['|','/','-','\\','|','/','-','\\']
@@ -74,10 +76,23 @@ class StoppableThread(threading.Thread):
sys.stdout.write("\r\r" + i)
sys.stdout.flush()
time.sleep(.1)
+ while self.paused() and not self.stopped():
+ self._paused.set()
if self.stopped():
sys.stdout.write("\b")
sys.stdout.flush()
return 0
+
+
+ def pause(self):
+ self._pause.set()
+ while not self._paused.is_set():
+ self._paused.clear()
+ sys.stdout.write("\r")
+ sys.stdout.flush()
+
+ def resume(self):
+ self._pause.clear()
def stop(self):
self._stop.set()
@@ -85,6 +100,9 @@ class StoppableThread(threading.Thread):
def stopped(self):
return self._stop.isSet()
+ def paused(self):
+ return self._pause.isSet()
+
def connect_with_cert(cert, path_to_cert, url, args, wait_thread, clVarsCore,
crypto_Error, Connect_Error):
flag_thread_start = False
@@ -237,10 +255,10 @@ def https_server(client, args, unknown_args, url, clVarsCore, wait_thread):
view_params = get_view_params(client, args.method + '_view',
step = None, expert = True)
view = get_view(client, args.method, client.sid, view_params)
- method_parser = get_method_argparser(view, args)
wait_thread.stop()
sys.stdout.write("\b")
sys.stdout.flush()
+ method_parser = get_method_argparser(view, args)
method_parser.print_help()
client.service.clear_method_cache(client.sid, args.method)
@@ -402,7 +420,7 @@ def main(wait_thread):
if type(e.message) != int:
if e.message:
print e.message
- else:
+ elif e.args:
print e
# tb.print_exc()
return 1
@@ -504,7 +522,7 @@ def main(wait_thread):
if type(e.message) != int:
if e.message:
print e.message
- else:
+ elif e.args:
print e
# tb.print_exc()
return 1
diff --git console/application/function.py console/application/function.py
index dbcbe5f..22b14d6 100644
--- console/application/function.py
+++ console/application/function.py
@@ -96,8 +96,9 @@ def get_ip_mac_type(client_type = None):
return results
def print_brief_group(Fields, group_name):
- if group_name:
- _print ('\b'+group_name)
+ print_group_flag = False
+# if group_name:
+# _print ('\b'+group_name)
uncompatible_count = 0
for field in Fields:
if field.uncompatible:
@@ -105,6 +106,9 @@ def print_brief_group(Fields, group_name):
continue
if field.element in ['input', 'openfile']:
value = field.value if field.value else ''
+ if not print_group_flag:
+ _print ('\b'+group_name)
+ print_group_flag = True
colorPrint._printSUCCESS('%s: %s' %(field.label, value))
elif field.element in ['combo', 'comboEdit', 'radio', 'file']:
@@ -118,6 +122,9 @@ def print_brief_group(Fields, group_name):
value = ', '.join(value)
else:
value = field.value if field.value else ''
+ if not print_group_flag:
+ _print ('\b'+group_name)
+ print_group_flag = True
colorPrint._printSUCCESS('%s: %s' %(field.label, value))
elif field.element in ['multichoice', 'multichoice_add',\
@@ -134,12 +141,18 @@ def print_brief_group(Fields, group_name):
value = ', '.join(field.listvalue.string)
else:
value = field.value if field.value else ''
+ if not print_group_flag:
+ _print ('\b'+group_name)
+ print_group_flag = True
colorPrint._printSUCCESS('%s: %s' %(field.label, value))
# elif field.element == 'label':
# print field.label
elif field.element == 'error':
+ if not print_group_flag:
+ _print ('\b'+group_name)
+ print_group_flag = True
colorPrint.printERROR(field.label)
elif field.element in ['check', 'check_tristate']:
@@ -151,6 +164,9 @@ def print_brief_group(Fields, group_name):
value = _('auto')
else:
value = field.value
+ if not print_group_flag:
+ _print ('\b'+group_name)
+ print_group_flag = True
colorPrint._printSUCCESS('%s: %s' %(field.label, value))
elif field.element == 'table' and field.type != 'steps':
@@ -192,6 +208,9 @@ def print_brief_group(Fields, group_name):
for body_row in body:
data.append(map(lambda x: x if x else '', body_row))
+ if not print_group_flag:
+ _print ('\b'+group_name)
+ print_group_flag = True
colorPrint._printSUCCESS('%s: ' %(field.label))
res = printTable(data, head)
sys.stdout.flush()
@@ -200,8 +219,8 @@ def print_brief_group(Fields, group_name):
else:
uncompatible_count += 1
- if uncompatible_count == len (Fields) and group_name:
- colorPrint._printSUCCESS(_('Not used'))
+# if uncompatible_count == len (Fields) and group_name:
+# colorPrint._printSUCCESS(_('Not used'))
def print_brief(view, brief_label):
for Group in view.groups.GroupField:
diff --git console/application/methods_func.py console/application/methods_func.py
index 7afde09..2087b4a 100644
--- console/application/methods_func.py
+++ console/application/methods_func.py
@@ -90,6 +90,10 @@ def parse():
parser.add_argument(
'-f', '--force', action='store_true', default=False,
dest = 'no_questions', help=_('silent during the process'))
+ parser.add_argument(
+ '-P', action='store_true', default=False,
+ dest = 'stdin_passwd',
+ help=_('use passwords for the users accounts from standard input'))
return parser
def get_view(client, method, sid, view_params):
@@ -103,6 +107,7 @@ def get_view(client, method, sid, view_params):
def call_method(client, args, wait_thread):
method = args.method
no_questions = args.no_questions
+ stdin_passwd = args.stdin_passwd
view_params = get_view_params(client, method + '_view', step = None, \
expert = True)
@@ -122,7 +127,7 @@ def call_method(client, args, wait_thread):
_print (_('Unknown parameter'), i)
raise Exception(1)
param_object, steps = collect_object(client, param_object, view, args,
- wait_thread)
+ wait_thread,stdin_passwd=stdin_passwd)
if steps.label and hasattr (param_object, 'CheckOnly'):
param_object['CheckOnly'] = True
check_res = {}
diff --git scripts/cl-console scripts/cl-console
index 9431995..33650cb 100755
--- scripts/cl-console
+++ scripts/cl-console
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python2
#-*- coding: utf-8 -*-
# Copyright 2012 Calculate Ltd. http://www.calculate-linux.org
@@ -34,4 +34,4 @@ if __name__=='__main__':
wait_thread.stop()
red = '\033[31m * \033[0m'
print '\n'+red+_('Interrupted by the user')
- sys.exit(1)
\ No newline at end of file
+ sys.exit(1)

@ -1,4 +1,6 @@
AUX calculate-core-3.0.0-r1.patch 20974 SHA256 5c8853ef5d65a6e0fa04cbdcf96d6609ab077c2f7a5561503cddd044bc20bb42 SHA512 e1c0b0d82942a0678cce5331562c53e19820ad3a2b9b157f7df117f3600314300125a6f9c72cfe41ed86cb225d8f84f7b09d7b0af581b8ad9c3d3657a4c6c86e WHIRLPOOL 4fce229bfa85d6aad583f995ad9b164f50dba2998b4be6dd16c8bf309f7d5ee21bb2104a4986bd13572a80d0e9e39618a4054c92d99a5750348e62eb09047de6
DIST calculate-core-3.0.0.tar.bz2 86337 SHA256 ee2df2b93a1bd824e94d7179ef15478ae5b15de7d48f29752eb332f247bfc054 SHA512 60b1fc54ba5ee5b07586b2d2fe900f4e51a0c6966366b0750823185bacd965ed9ee3eebeb2dc7c220aef8fe8271585616acfb22926edb6f779c0829e7bada2ed WHIRLPOOL b3e4413d4bbbbfa1f74887179639fe1291cca0adf2968e2fd5198364e97da7f3ee83a51efa6f22bcd83e55970ab743dcb2d539b5979bb52cadca982af54fa2d2
EBUILD calculate-core-3.0.0-r1.ebuild 1097 SHA256 d6cef312e900e95124d377c073fa96c33b9c883c6d8ac144e14dfe688847bcf5 SHA512 abef6c8e46c90742402cff5304c1ded7d5818c88e29184ceaf04a980dfba894313ec026322705677dce3b836400051f294bf8b2b63521b557095457e184e12ff WHIRLPOOL fec1bb41695454285f628b90fd7c66f012c551afd7f5fa962561b80f5de11e05fb7a69d9a3c2db9a981baa24820893c231e06595dc1926408d9ca76fe9a707ae
EBUILD calculate-core-3.0.0.ebuild 988 SHA256 14aefacddfb637b483fd797a8d9795c92e7949f4f97f9c2098c873e73cad5cb1 SHA512 fcbef78f4579aaacacbb79f2256bf6c280326b2251e9ce2eab1c7c991a6ee699c71dc321d84408632eb24e36a7630651d2f06896f029bf6980a3ea5be5d41d00 WHIRLPOOL d2e12bffa484f6305dc2d45ff727e1336851de5811392a1d53f991e554184e0990d47a5a26df25c4f0ad4eb787fcf0c4d88eee4d68b79ec47715ffdd93d367c0
EBUILD calculate-core-3.0.9999.ebuild 580 SHA256 e6f999684875c1d3a4eaaf75daba19d033c8fb32f36a4dd6b8e9682c3b757faa SHA512 bebdbf2ebde9b4c77849052218ea31cb3df6588cee2e67c3a213e45dac14b0b5a40337f6366315a871ff4d91a7b0ba0cf366ac97e1d518e3a17ce817812cfd88 WHIRLPOOL 86babe05ac6566564c3c5a2d8364095e72a3e28d628559a818bb777a3552c7533748620e52f8cde18b3f63223dd3f2863ed84bc3f15508a5123c54e23a5b139e
MISC ChangeLog 236 SHA256 bbb9db87f501c1aa363583f5ae01e095020c3f600af2eb6388dbb547f6ce67b5 SHA512 85394859059889820a73d873e5de2757bf20a55afe257a5f2d25e1ef293bd974c1f5460b1e224bfd6429af52ba8d2fcd2c06f3dbebd15df2b60a57186f12bf3c WHIRLPOOL b4aaac9b18bacaadbbef988f625171d33061533809cac23c4dc91b2510c747d8b6a33d3ebc288c9ad60ecc527154d2e030021824da22a0f224d80ddf197d5cb5

@ -0,0 +1,48 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
inherit distutils eutils
SRC_URI="ftp://ftp.calculate.ru/pub/calculate/calculate3/${PN}/${P}.tar.bz2"
DESCRIPTION="The WSDL core for Calculate 3"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE="minimal"
DEPEND="~sys-apps/calculate-lib-3.0.0
>=dev-python/soaplib-1.0
!minimal? ( dev-python/sudsds
net-libs/dslib
dev-python/pyopenssl
dev-libs/openssl
dev-python/m2crypto
dev-python/cherrypy )"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# changes
epatch "${FILESDIR}/calculate-core-3.0.0-r1.patch"
}
pkg_preinst() {
dosym /usr/sbin/cl-core /usr/sbin/cl-core-setup
}
pkg_postinst() {
einfo "For autoconfigure calculate-core for adminuser perform:"
einfo " cl-core --bootstrap <username>"
einfo "For run calculate-core perform:"
einfo " /etc/init.d/calculate-core start"
einfo "Add calcualte core to autorun:"
einfo " rc-update add calculate-core boot"
}

@ -0,0 +1,500 @@
diff --git core/client/sid_func.py core/client/sid_func.py
index 16cf68e..09ee616 100644
--- core/client/sid_func.py
+++ core/client/sid_func.py
@@ -100,4 +100,4 @@ def client_session_info(client):
print _("Failed to get data")
return 1
return 0
-
\ No newline at end of file
+
diff --git core/server/cert_cmd.py core/server/cert_cmd.py
index 0f72d5c..f52b02e 100644
--- core/server/cert_cmd.py
+++ core/server/cert_cmd.py
@@ -1290,6 +1290,10 @@ def parse():
'-f', '--force', action='store_true', default=False,
dest = 'no_questions', help=_('silent during the process'))
parser.add_argument(
+ '-P', action='store_true', default=False,
+ dest = 'stdin_passwd',
+ help=_('use passwords for the users accounts from standard input'))
+ parser.add_argument(
'--variable', type=str, dest='variable',
help=_("display the value for the specified variable "
"(section.variablename). If section skipped then use "
diff --git core/server/methods_func.py core/server/methods_func.py
index 41d4246..fa5338d 100644
--- core/server/methods_func.py
+++ core/server/methods_func.py
@@ -17,13 +17,27 @@
import sys, os
from calculate.lib.utils.common import getpass
+from calculate.lib.cl_print import color_print
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_core',sys.modules[__name__])
+colorPrint = color_print()
+
def _print (*args):
print " ".join(map(lambda x:unicode(x).encode('utf-8'),args))
-def get_password(text1 = None, text2 = None):
+def get_password(text1 = None, text2 = None, getfromstdin=False):
+ if getfromstdin:
+ try:
+ passwd = ''
+ while not passwd:
+ passwd = sys.stdin.readline()
+ if not passwd:
+ return None
+ passwd = passwd.rstrip('\n')
+ return passwd
+ except:
+ return None
if not text1:
text1 = _('Password: ')
if not text2:
@@ -94,6 +108,14 @@ class RawAndDefaultsHelpFormatter(argparse.HelpFormatter):
return _textwrap.wrap(text.decode('utf-8'), width)
def get_method_argparser(view, args, cl_core = False):
+ """
+ Get argparser by ViewInfo get from WSDL server (or stub)
+
+ cl_core - argparser for cl_core (local call)
+ """
+ # get list (local View) or first element of tuple (WSDL View)
+ getlist = (lambda x:x) if cl_core else (lambda x:x[0])
+ error_flag = False
method = args.method
if cl_core:
progr = os.path.basename(sys.argv[0])
@@ -102,86 +124,47 @@ def get_method_argparser(view, args, cl_core = False):
parser = argparse.ArgumentParser(prog=progr, add_help=False,
formatter_class=RawAndDefaultsHelpFormatter)
-# parser = argparse.ArgumentParser(prog=progr, add_help=False)
- if type(view.groups) == list:
- # for local call method
- groups = view.groups
- else:
- groups = view.groups[0]
- for Group in groups:
+ for Group in getlist(view.groups):
if not Group.fields:
continue
group = parser.add_argument_group(Group.name)
- if type(Group.fields) == list:
- # for local call method
- fields = Group.fields
- else:
- fields = Group.fields[0]
- for field in fields:
+ for field in getlist(Group.fields):
if field.element == 'error':
- print field.label
+ error_flag = True
+ colorPrint.printERROR(field.label)
elif field.opt:
- action = None
- arg_type = str
+ opt = field.opt
+ data = {'dest':field.name,'help' : opt.help}
+ if field.type == "password":
+ data['action'] = "store_true"
+ else:
+ data['type'] = str
if field.element in ['check', 'check_tristate']:
- arg_type = bool
+ data['type'] = bool
elif field.element == 'radio' and field.type == 'bool':
- arg_type = bool
- elif field.element == 'table' and field.type != 'steps':
- action = 'append'
-
- opt = field.opt
- metavalue = opt.metavalue if opt.metavalue \
- else field.name.upper()
-
- if ':' in metavalue:
- metavalue = field.name.upper()
-
+ data['type'] = bool
+ if field.element == 'table' and field.type != 'steps':
+ data['action'] = 'append'
+
+ if data.get('action') != "store_true":
+ data['metavar'] = opt.metavalue if opt.metavalue \
+ else field.name.upper()
+ if ':' in data['metavar']:
+ data['metavar'] = field.name.upper()
try:
- if arg_type == str:
- if opt.shortopt and opt.longopt:
- group.add_argument(opt.shortopt, opt.longopt,
- type = arg_type, dest=field.name, metavar = \
- metavalue, action = action, help = opt.help)
- elif opt.shortopt and not opt.longopt:
- group.add_argument(opt.shortopt,
- type = arg_type, dest=field.name, metavar = \
- metavalue, action = action, help = opt.help)
- elif opt.longopt and not opt.shortopt:
- group.add_argument(opt.longopt,
- type = arg_type, dest=field.name, metavar = \
- metavalue, action = action, help = opt.help)
-
-# elif arg_type == bool:
-# if opt.shortopt and opt.longopt:
-# group.add_argument(opt.shortopt, opt.longopt,
-# action='store_true', dest=field.name,
-# default=None, help = opt.help)
-# elif opt.shortopt and not opt.longopt:
-# group.add_argument(opt.shortopt,
-# action='store_true', dest=field.name,
-# default=None, help = opt.help)
-# elif opt.longopt and not opt.shortopt:
-# group.add_argument(opt.longopt,
-# action='store_true', dest=field.name,
-# default=None, help=opt.help)
- elif arg_type == bool:
- if opt.shortopt and opt.longopt:
- group.add_argument(opt.shortopt, opt.longopt,
- type = str, dest=field.name,
- help = opt.help)
- elif opt.shortopt and not opt.longopt:
- group.add_argument(opt.shortopt, type = str,
- dest=field.name, help=opt.help)
- elif opt.longopt and not opt.shortopt:
- group.add_argument(opt.longopt, type = str,
- dest=field.name, help=opt.help)
+ opts = filter(None,[opt.shortopt,opt.longopt])
+ group.add_argument(*opts,**data)
except argparse.ArgumentError:
continue
+ if error_flag:
+ raise Exception
return parser
def set_obj_item(client, param_object, field_name, value):
+ """
+ Set value for Info object. By client detect (local or WSDL call)
+ """
if client:
param_object.__setitem__(field_name, value)
else:
@@ -306,12 +289,13 @@ def check_result_msg(method_result, view, input_error_dict = {}):
if field.name == error.field:
if field.opt.shortopt or field.opt.longopt:
params_text += _('Wrong option ')
- params_text += ', '.join(filter(None,
+ params_text += ' '+', '.join(filter(None,
[field.opt.shortopt, field.opt.longopt])) \
+ '. '
- red = '\033[31m * \033[0m'
- _print ('\r' + red + params_text + error.message)
+ sys.stdout.write('\r')
+ sys.stdout.flush()
+ colorPrint.printERROR(params_text + error.message)
if len(password_errors) < len(method_result):
return None
@@ -323,7 +307,8 @@ def check_result_msg(method_result, view, input_error_dict = {}):
return None
return password_errors
-def get_param_pwd(check_res, view, param_object, client = None):
+def get_param_pwd(check_res, view, param_object, client = None,
+ stdin_passwd=False):
if hasattr (view.groups, 'GroupField'):
groups = view.groups.GroupField
else:
@@ -338,18 +323,22 @@ def get_param_pwd(check_res, view, param_object, client = None):
for field in fields:
if field.name == pwd_field:
if field.element == 'table':
- value = get_password()
+ value = get_password(getfromstdin=stdin_passwd)
if value == None:
raise KeyboardInterrupt
set_table_pwd(client, param_object, field, value)
else:
- value = get_password()
+ value = get_password(getfromstdin=stdin_passwd)
if value == None:
raise KeyboardInterrupt
setattr(param_object, pwd_field, value)
return param_object
-def collect_object(client, param_object, view, args, wait_thread = None):
+def collect_object(client, param_object, view, args,wait_thread = None,
+ stdin_passwd = False):
+ """
+ Collect Info object by args
+ """
steps = None
if type(view.groups) == list:
# for local call method
@@ -413,10 +402,20 @@ def collect_object(client, param_object, view, args, wait_thread = None):
val)
elif field.element in ['input', 'openfile',\
- 'file', 'password', 'radio']:
+ 'file', 'radio']:
param_object = set_obj_item(client, param_object, field.name,
_getattr(args, field.name))
-
+ elif field.element in ['password'] and _getattr(args, field.name):
+ if wait_thread:
+ wait_thread.pause()
+ password=get_password("%s: "%field.label,_('Repeat password: '),
+ getfromstdin=stdin_passwd)
+ if password is None:
+ raise KeyboardInterrupt
+ param_object = set_obj_item(client, param_object, field.name,
+ password)
+ if wait_thread:
+ wait_thread.resume()
elif field.element in ['combo', 'comboEdit']:
value = _getattr(args, field.name)
if value:
@@ -448,7 +447,8 @@ def collect_object(client, param_object, view, args, wait_thread = None):
elif field.element == 'table' and field.type != 'steps':
val = _getattr(args, field.name)
- value = collect_table(field, val, client, wait_thread)
+ value = collect_table(field, val, client, wait_thread,
+ stdin_passwd)
param_object = set_obj_item(client, param_object, field.name,
value)
@@ -459,7 +459,8 @@ def collect_object(client, param_object, view, args, wait_thread = None):
return param_object, steps
-def collect_table(field, val_list, client, wait_thread = None):
+def collect_table(field, val_list, client, wait_thread = None,
+ stdin_passwd = False):
if not val_list:
return None
val_table = map(lambda x: x.split(':'), val_list)
@@ -500,7 +501,8 @@ def collect_table(field, val_list, client, wait_thread = None):
sys.stdout.write('\r')
sys.stdout.flush()
password=get_password(_('Password for %s: ')%val_table[i][0],\
- _('Repeat password for %s: ') %val_table[i][0])
+ _('Repeat password for %s: ') %val_table[i][0],
+ getfromstdin=stdin_passwd)
if password == None:
raise KeyboardInterrupt
temp_row = []
diff --git core/server/replace_class.py core/server/replace_class.py
index f3569b9..970e8d0 100644
--- core/server/replace_class.py
+++ core/server/replace_class.py
@@ -220,6 +220,11 @@ def cout_progress(string = None):
sys.stdout.flush()
def local_method(metaclass, args):
+ """
+ Call method from metaclass, check method existing.
+
+ Generate help, for method, run method by 'call_method'.
+ """
import os
sym_link = os.path.basename(sys.argv[0])
if sym_link != 'cl-core':
@@ -250,18 +255,29 @@ def local_method(metaclass, args):
view = getattr(metaObject, method_view_name)(0, view_obj)
except AttributeError:
colorPrint.printERROR (_('Method not found: '), method_view_name)
- method_parser = get_method_argparser(view, args, cl_core = True)
+
+ try:
+ method_parser = get_method_argparser(view, args, cl_core = True)
+ except Exception as e:
+ metaObject.clear_cache(0, method_name)
+ return 1
method_parser.print_help()
else:
try:
call_method(metaObject, args, colorPrint)
except (KeyboardInterrupt, EOFError):
colorPrint.printERROR(_('Interrupted by the user'))
+ except Exception:
+ pass
# print 'Error: ', e
metaObject.clear_cache(0, method_name)
def call_method(metaObject, args, colorPrint):
+ """
+ Function for call method through metaObject and args
+ """
method_name = args.method
+ stdin_passwd = args.stdin_passwd
method_view_name = method_name + '_view'
metaObject.no_progress = args.no_progress
view_obj = ViewInfo()
@@ -287,7 +303,8 @@ def call_method(metaObject, args, colorPrint):
_print (_('Unknown parameter'), i)
return 1
- param_object, steps = collect_object(None, param_object, view, args)
+ param_object, steps = collect_object(None, param_object, view, args,
+ stdin_passwd=stdin_passwd)
if view.has_brief:
setattr(param_object, 'CheckOnly', True)
check_res = {}
@@ -303,7 +320,8 @@ def call_method(metaObject, args, colorPrint):
return None
else:
param_object = get_param_pwd(check_res, view,
- param_object)
+ param_object,
+ stdin_passwd=stdin_passwd)
else:
break
@@ -366,9 +384,17 @@ def create_param_object(view):
param_object._type_info[field.name] = None
return param_object
+def print_brief(view, brief_label):
+ for Group in view.groups:
+ if Group.name:
+ if not Group.fields:
+ continue
+ print_brief_group(Group.fields, Group.name)
+
def print_brief_group(Fields, group_name):
- if group_name:
- _print ('\b'+group_name)
+ print_group_flag = False
+# if group_name:
+# _print ('\b'+group_name)
uncompatible_count = 0
colorPrint = color_print()
for field in Fields:
@@ -377,6 +403,10 @@ def print_brief_group(Fields, group_name):
continue
if field.element in ['input', 'openfile']:
value = field.value if field.value else ''
+ if not print_group_flag:
+ if group_name:
+ print_group_flag = True
+ _print ('\b'+group_name)
colorPrint.printSUCCESS('%s: %s' %(field.label, value))
elif field.element in ['combo', 'comboEdit', 'radio', 'file']:
@@ -396,6 +426,10 @@ def print_brief_group(Fields, group_name):
value = ', '.join(value)
else:
value = field.value if field.value else ''
+ if not print_group_flag:
+ if group_name:
+ print_group_flag = True
+ _print ('\b'+group_name)
colorPrint.printSUCCESS('%s: %s' %(field.label, value))
elif field.element in ['multichoice', 'multichoice_add',\
@@ -422,12 +456,20 @@ def print_brief_group(Fields, group_name):
value = ', '.join(field.listvalue)
elif not value:
value = field.value if field.value else ''
+ if not print_group_flag:
+ if group_name:
+ print_group_flag = True
+ _print ('\b'+group_name)
colorPrint.printSUCCESS('%s: %s' %(field.label, value))
# elif field.element == 'label':
# print field.label
elif field.element == 'error':
+ if not print_group_flag:
+ if group_name:
+ print_group_flag = True
+ _print ('\b'+group_name)
colorPrint.printERROR(field.label)
elif field.element in ['check', 'check_tristate']:
@@ -439,6 +481,10 @@ def print_brief_group(Fields, group_name):
value = _('auto')
else:
value = field.value
+ if not print_group_flag:
+ if group_name:
+ print_group_flag = True
+ _print ('\b'+group_name)
colorPrint.printSUCCESS('%s: %s' %(field.label, value))
elif field.element == 'table' and field.type != 'steps':
@@ -474,6 +520,10 @@ def print_brief_group(Fields, group_name):
data = []
for body_row in body:
data.append(map(lambda x: x if x else '', body_row))
+ if not print_group_flag:
+ if group_name:
+ print_group_flag = True
+ _print ('\b'+group_name)
colorPrint.printSUCCESS(field.label+': ')
res = printTable(data, head)
sys.stdout.flush()
@@ -481,15 +531,8 @@ def print_brief_group(Fields, group_name):
else:
uncompatible_count += 1
- if uncompatible_count == len (Fields) and group_name:
- colorPrint.printSUCCESS(_('Not used'))
-
-def print_brief(view, brief_label):
- for Group in view.groups:
- if Group.name:
- if not Group.fields:
- continue
- print_brief_group(Group.fields, Group.name)
+# if uncompatible_count == len (Fields) and group_name:
+# colorPrint.printSUCCESS(_('Not used'))
def printTable(data, header=None ):
res = []
diff --git core/server/server_class.py core/server/server_class.py
index 9613a9a..87ea6da 100644
--- core/server/server_class.py
+++ core/server/server_class.py
@@ -497,4 +497,4 @@ class OpenSSLAdapter (pyOpenSSLAdapter):
c.load_verify_locations(self.certificate_chain)
c.use_certificate_file(self.certificate)
- return c
\ No newline at end of file
+ return c
diff --git scripts/calculate-core scripts/calculate-core
index fd0f448..482068f 100644
--- scripts/calculate-core
+++ scripts/calculate-core
@@ -28,8 +28,8 @@ start() {
if ! /usr/sbin/cl-core --check &>/dev/null
then
- ADMINUSER=`/usr/sbin/cl-core --variable install.cl_migrate_user[1]`
- [[ -n $ADMINUSER ]] || ADMINUSER=`/usr/sbin/cl-core --variable install.cl_migrate_user[0]`
+ ADMINUSER=`/usr/sbin/cl-core --variable install.cl_migrate_user[0]`
+ [[ -n $ADMINUSER ]] || ADMINUSER=root
/usr/sbin/cl-core --bootstrap $ADMINUSER
fi
diff --git scripts/cl-core scripts/cl-core
index f66c1e1..a374f80 100644
--- scripts/cl-core
+++ scripts/cl-core
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python2
#-*- coding: utf-8 -*-
# Copyright 2012 Calculate Ltd. http://www.calculate-linux.org

@ -1,3 +1,4 @@
AUX calculate-install-3.0.0-r3.patch 4482 SHA256 bcbde7ab43b4bab87985f0c0559d1ba6402e1118650c0e3d0b8e7076b6bf8515 SHA512 1b115c4b0e3b9777b23f39ba58cb511a52754b01e70e20f6b6c14a64a418f95e31b9adea7ebe46d8129e93a856752404aaceb6ea38d2acf6570831ddfb669b6f WHIRLPOOL 0ad0553c154927b314357a1c3305b313b7bf3fc756b4cb22f0e08f2e9743f0033e814c3f97a445454e5a08421a29438431a2a96d9a87ba8816e85ba748f7090d
AUX calculate-install-3.0.0_fix_migrate.patch 711 SHA256 47a49e82745e6fb387c6cc0964176bc9c6296c7fe1897ad16125657768db935e SHA512 63a9899b0efac3128a140b48ae3073a3bc7b585a6f4f6de9fdb880ed7071184bf8bc5feb7c99b06ae1b03c38efdc9ac21bdf072500ac713987000604f26f8290 WHIRLPOOL 62193d7898a6239aa02060a24106a81b018dc7da651683735293aba137a3ef05a385b54892d5106b73a459c5511288b48d9b0413157a151344f335156293f939
AUX calculate-install-3.0.0_fix_set_active_partition.patch 2970 SHA256 a7609de29c2eae5cf1e6e06596b3b63e02871a82b4033b5ff00464315eb6e111 SHA512 c7fbde1379b3256fdc5f1b467985e79164c24a96ed57cf170b79d63c275d28c2e9232933cd289f7371ddbed3cf36e20762660da74b4a6f7cb7d2eaf8fc32be38 WHIRLPOOL 8be00b16163ce15aaa83cddea0a23de6efb84fbc453dac4a0911da97b644b14ab4240a78b8877f138eb1738465c87669a783696a47758be3b7c903a01d2b07a3
DIST calculate-install-2.2.29.tar.bz2 82398 SHA256 0d1b5fcca2711f31fbd5680dea652fa7765ad781529ba80c5fa92cf736d73d10 SHA512 f9623ec564cce283a3813a2a308347b64d5368c06b0665de5223c9c2d75dcfb00348def034e958718ba9e9fa8a7ea2fa76b90fd0b4dc4e41bebf6222ee4a5da9 WHIRLPOOL 57361d7f5270cc2782d32635b02b1150a506f8e517ee916d66bc6df0c8c037193ad6fa33cef1c7b5fec6867204ea06c2778983a4bfd722b41af3c9d1c172270a
@ -6,6 +7,7 @@ EBUILD calculate-install-2.2.29.ebuild 886 SHA256 718588e39966f2ad266697f204b203
EBUILD calculate-install-2.2.9999.ebuild 611 SHA256 ab95c392853331769aabe6b26089f95238a1dd5a7d027c46483e5855d97d0c20 SHA512 b26470f6f4745d942c7287c85bc9dd63ee5dfa6675f20131efd487899fb32c5468c1a39ad8c75881b52926cbbff3ed2982531ab5f108216ff8cd0bd545321071 WHIRLPOOL 4426515dd2840354f770f7a2189eddd5f276b69279096c11243c2c9f9638121b9bd3f2aa733eb8758c71974cfb9ed8fa44afc74f0b0f271e9a86bb86ff704708
EBUILD calculate-install-3.0.0-r1.ebuild 1149 SHA256 50206c196aec8cc9127b91d76174fdd491a21592437e951d1e8fcb4e1156b89e SHA512 b1e87b1c716bd8b041eafd054cdbb9925b57bc6ece81682e46217f94875f244d40cf356e35237425037b32f66b5e02122f01aa2d0e0ecd94e6cc98e0c1ed6513 WHIRLPOOL 8b9c1fe96968a67836fb6c329fe44cf3abcff171ca01b227f3aeda8f2f4891316ce3de1f9ed9ffe89fa100b097aee09600933e7dd8e9010a87e305a0b6125472
EBUILD calculate-install-3.0.0-r2.ebuild 1279 SHA256 3e59a3da9b1345be397bd2d265d0f6c6e604ad8ee7b2b703faa7778039a650e9 SHA512 329a86ea517851eeaa7d35b0652f009c9aaf4261298e2d173719024012dcec16dd6c423d9e83665d82e1ad7a529ef4ec27c0556edb8125c93919737b97ea03df WHIRLPOOL 334bae0b673adfa74d2cb93a96550e0e98032374d2c1ec17dfdfd0a215bab9222acd4825e6f3bf3805f2397967a471956f38444f0ec7e898022046a3b0f86777
EBUILD calculate-install-3.0.0-r3.ebuild 1136 SHA256 add97f6888b1d281451164a56ed77e69a9613f5962d575ec8aab0dfbdd0fdc19 SHA512 389da227d5a91853380a89fc2bc67174922ef394d12a6da972ec91735a1e0473864f88c4a022aef0138dc5c5350e38e3cdc0b68b4f7e3b3c4f26a90bac6d44c8 WHIRLPOOL 4da729f0d7fa2aedbbb1915476fd2803c48a3411d538e322af0c2e0c7d4fea6c1489d91cf2c271cce42f80a3403ee6349c91cbd2f0cfad1250b3c0687e706692
EBUILD calculate-install-3.0.0.ebuild 1025 SHA256 ad943c84f08b9e05503617037360f3f85359e118238267a11746f2092bcd5be8 SHA512 9efda491309fb795103411196ebfe311d1af119bc5fb0ab5b641c862b5592534ac5f21b76971aae8af69f996dad958c292f04baa372768c8b12bb05e35a69157 WHIRLPOOL c9c2ede67009078fe1aca188753fbae94c6948d9f3a2182dc3506f641a5bf57d6f4d0c3c90a48d63b0279b53c735d8a2b82ec7b34c44ba12dfee548c7b9752c5
EBUILD calculate-install-3.0.9999.ebuild 609 SHA256 d4cead60af00c67ddcb1aa01e2095437fb1bfe2ca7f717456048ad3e8f039a23 SHA512 233ae143b269ab53def3609c059268b39c763a84b0fc5e388342aed0cbed958965dbe39aca068864035ed426a682c4fd99d647711b5657add1a0830e59333239 WHIRLPOOL 0560059978ac3a0e568ac53f70397ad2d9495b10b6df891a2495e68f014e45bc2b4bc3c74da495cb51b08a63ae28433c12d3b0469e3d75225b6bc3c1b4a64929
MISC ChangeLog 33827 SHA256 f31d9cca1055a4fbf38352f01ba9f72bf82597ff1a6436d211ac26d1acddb082 SHA512 0fc3b6602d1f04deecc324a790c8aec0dd92a75d506fbcb1f768c75fa9e0cf3e944e32c9f63225564d75dcb20ae6282a71d1bde288ff6b84b9767f0f822fb677 WHIRLPOOL 528d878653ff222395ea10db9ebe6c98ebf2bfe0774eac898b46659a26b0d7071d4a8fbc91ac3d58414cf4d74b6898efae6f03361068673f5bf9abec006dd4a3

@ -0,0 +1,48 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
inherit distutils eutils
SRC_URI="ftp://ftp.calculate.ru/pub/calculate/calculate3/${PN}/${P}.tar.bz2"
DESCRIPTION="The program of installation Calculate Linux"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE="pxe minimal"
DEPEND="~sys-apps/calculate-lib-3.0.0
!<sys-apps/calculate-install-2.2.29
app-portage/layman
!app-misc/livecd-tools
sys-apps/iproute2[-minimal]
!minimal? ( sys-boot/grub
sys-apps/gptfdisk
>=sys-apps/util-linux-2.19.1
sys-fs/dosfstools
sys-fs/squashfs-tools
sys-block/parted )
pxe? ( sys-apps/calculate-server
net-ftp/tftp-hpa
net-misc/dhcp
net-fs/nfs-utils )"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# changes
epatch "${FILESDIR}/calculate-install-3.0.0-r3.patch"
}
pkg_postinst() {
einfo "For install wsdl for calculate-install perform:"
einfo " cl-core --append-variable cl_wsdl=calculate-install"
einfo " cl-core --append-variable cl_merges=calculate-install"
}

@ -0,0 +1,98 @@
diff --git install/cl_install.py install/cl_install.py
index 71b3552..12ed5ad 100644
--- install/cl_install.py
+++ install/cl_install.py
@@ -55,6 +55,7 @@ from cl_distr import (PartitionDistributive,
from calculate.lib.utils.text import tableReport
from calculate.lib.server.utils import dialogYesNo
from subprocess import Popen,PIPE,STDOUT
+from itertools import *
class InstallError(Exception):
"""Installation Error"""
@@ -386,17 +387,34 @@ class Install(color_print):
raise DistributiveError(
_("Failed to determine the partition number for %s")%partition)
bootFlag = "boot" if parttable == "dos" else "legacy_boot"
- parted = process(partedProg, "-m",deviceName,"print")
- DEVICENUM,FLAGS = 0,6
- changeActive = \
- map(lambda x:x[DEVICENUM],
- filter(lambda x:x[DEVICENUM] != partitionNumber and \
- bootFlag in x[FLAGS].strip(';').split(', ') or \
- x[DEVICENUM] == partitionNumber and \
- not bootFlag in x[FLAGS].strip(';').split(', '),
- filter(lambda x:len(x)>=7,
- map(lambda x:x.split(':'),
- parted.readlines()[2:]))))
+ if parttable == "dos":
+ fdisk = process(fdiskProg, "-l",deviceName)
+ DEVICENUM,AFLAG = 0,1
+ changeActive = \
+ map(lambda x:x[DEVICENUM],
+ filter(lambda x:x[DEVICENUM] != partitionNumber and \
+ x[AFLAG] == "*" or \
+ x[DEVICENUM] == partitionNumber and \
+ not x[AFLAG] == "*",
+ list(map(lambda x:[str(x[0]),x[1][1].strip()],
+ # enumerate partitions
+ enumerate(filter(None,
+ map(lambda x:x.split()[:2],
+ # drop string before information about partitions
+ dropwhile(lambda x:not x.lstrip().startswith("Device"),
+ fdisk.readlines()))))))[1:]))
+ else:
+ parted = process(partedProg, "-m",deviceName,"print")
+ DEVICENUM,FLAGS = 0,6
+ changeActive = \
+ map(lambda x:x[DEVICENUM],
+ filter(lambda x:x[DEVICENUM] != partitionNumber and \
+ bootFlag in x[FLAGS].strip(';').split(', ') or \
+ x[DEVICENUM] == partitionNumber and \
+ not bootFlag in x[FLAGS].strip(';').split(', '),
+ filter(lambda x:len(x)>=7,
+ map(lambda x:x.split(':'),
+ parted.readlines()[2:]))))
if not changeActive:
return True
if parttable == "dos":
diff --git install/cl_migrate_users.py install/cl_migrate_users.py
index fc7f7a2..f7332fb 100644
--- install/cl_migrate_users.py
+++ install/cl_migrate_users.py
@@ -472,6 +472,8 @@ class migrate(color_print):
"""Migrate users ang groups to new system"""
if not self.checkPermFiles():
return False
+ if not any(addUsersList):
+ addUsersList = []
migrateUsers = ["root"]+\
map(lambda x: x[0], addUsersList + pwdUsersList)
for existMigrUser in existsMigrateUsers:
diff --git install/variables/disk.py install/variables/disk.py
index a74f737..4b5730a 100644
--- install/variables/disk.py
+++ install/variables/disk.py
@@ -619,6 +619,9 @@ class VariableOsLocationData(LocationHelper,TableVariable):
"to specify the source directory as DISK")
self.label = _("Locations")
+ def set(self,value):
+ return sorted(value,key=lambda x:x[0])
+
class VariableOsLocationSource(LocationHelper,DeviceHelper,Variable):
"""
Source disk or directory
diff --git install/variables/distr.py install/variables/distr.py
index d9af10e..916d9c8 100644
--- install/variables/distr.py
+++ install/variables/distr.py
@@ -316,7 +316,7 @@ class VariableClImageFilename(Variable,DistroRepository):
discardType = []
distros = self.getAvailableDristibutives(imagePath,
discardType=discardType)
- if self.wasSet:
+ if self.wasSet and not self.value in distros:
distros.append(self.value)
return sorted(map(lambda x:(x,
self.humanImageName(self._getDistrInfo(x),x)),

@ -1,6 +1,7 @@
AUX calculate-lib-2.1.11-fix_getip.patch 6335 SHA256 b54e6353b18a312e42e3f3d17b1d45efa9f433fef6bbf48c4eed237a4bb829d8 SHA512 aa9bb1fd818af8321bcf3a7dd681f2fd4976819267e14d627aaffe7f788813b1a85579f6868defb056934f62ce8307f1effee72258fee06915b565f02ab80bb4 WHIRLPOOL c1dbdca583293743a5c7e6407ebfe5e62b3a58c44cd9a29571b6138dd7741a21edcf8819e893692f1362cf142f4fe21f08e3aa4da670c183648722af101cce39
AUX calculate-lib-2.1.11-fix_xpath.patch 329 SHA256 9e5674cd5fccea9c2242eb2ffaa829a1446a5bd16c6ba877760175960b0971cb SHA512 4ebd5806c0b57bb636ee8f958ecd13a18d5c660b5657fa0ae1c84707999ef453afa082e9f08fa0e95ab13a1be2952f4d996a15579ee125852205619497b06d51 WHIRLPOOL 8b0aaea3595c5830c5cabd5fbfaaed85cf6da73f1e3988e15dd6a175e1f59f87364d74f8273da5e0385de10f9f3a9e50588509a52ed45a17a5b2756a9eb963b9
AUX calculate-lib-2.2.29-fix_funcPkg.patch 1829 SHA256 3cb85b18119392ef7a903d7c3382f792f528235c14a7e9b2f71c703c339869fb SHA512 9bb7d9a2dd8829380460de9163524172af88297a038c9f8a9ff521e5f9abffc62b77fa3d83d9f875120797cb090ecc7e08d9495a1c4a9da2e4c8f4d987f6a160 WHIRLPOOL 2117c3c992d5d5e62b218ef673468c3ad22607e009793276185b61a60dd547ad14eca4d84583033d94f322eed0a69206d19e1337e52957f5cb0b1cec409ffbe3
AUX calculate-lib-3.0.0-r1.patch 2983 SHA256 bef063b3b4f77157cf1d002a41467d3758d9c6d8687c75bdb9dd6e35f17a994d SHA512 4ad78c447ed696c27f4a706f441392e81bb30fe5426dbb48411a13df5bf9102719fe8848bdee74430f0187eb8b2719f7a8b8883289d93bd7e35753b3a3d39a0d WHIRLPOOL 3f33f46e666054bd6d6c3e2f8e35a7c18d6c500cfd7c3bf6bb6d3db2a101ab5f333d164506e82b82c78ea07c6627617c93ffc62435a9fb8f5c8159af397a4afc
DIST calculate-lib-2.1.11.tar.bz2 61687 SHA256 62976c08d4fb4810389ace6f5a99abb5a962f6c8d9053ff943d0669480fb5599 SHA512 e3bc2168a55367cf19ad3a27921b53e5e845643238bf171209ab29752c91b5d4d338a2120774764ac1c79abd93f2deff8680f8faa1407940984ea9fd6a199e67 WHIRLPOOL 0ced92ea493dd8db02b0ae1514ebbb51ee76dc6f441b4a38c984c39da2121fb81dd1f2e840c4c5b71a117a12817a2a269d85676288202aa9801f69727e3338dc
DIST calculate-lib-2.2.29.tar.bz2 120378 SHA256 fc79bf29059ffb1519b6356cba34ebecb2e8c3222a29735f479254c371d363a3 SHA512 dc3c2c20cf0c5389b412b0cd2cba316b3d2367e981e147b3a94b6502ba329b598c7ccad5cd3462b3d7e884d05574c99b0e2e39df63e51d22221b86b783cb0925 WHIRLPOOL b3cdf6010c48d7a86a9f5a0c72effa8f0cc8ec0186fa28977132211dcaa5a3fe4a20ad3ec0b556478a9def1dc0e7c15404e3ab38080f986a4620634ee6570462
DIST calculate-lib-3.0.0.tar.bz2 111059 SHA256 4b8019056897a390e522b46a4ba9631b105ade8ff670146d69fa268235f41454 SHA512 5208aa2f002fbd293d3a18994334da87c75fa9501adec257412a76d1353559a22dd86f6198faa2d29ef53e48178c86d12b98df346733e8eb6cb4e33ffe2ce833 WHIRLPOOL 102f9d6829ecd201d3f594061c38a7c08c06aeb80b512e2746005e34b3748e75514779466ad76379d142711c305381ed92b1617be9fdb12e4f96ba49f2330166
@ -8,6 +9,7 @@ EBUILD calculate-lib-2.1.11-r2.ebuild 808 SHA256 e6d751948c434cae800ace9787ee2e1
EBUILD calculate-lib-2.1.9999.ebuild 481 SHA256 7115ae3b0e37f82195f2506151baa81179c5d08ae5071982ad2afd3e576b7fd9 SHA512 78936082982c89e08b24e1951bb65cbea36a051505ea745cb9cd3bc4a07f4e3576da547b10b0377b5223e2140157ec9e98908d0da06c56fbd8fc649d0ef746ab WHIRLPOOL 7b0db06d5c7a61f6042a94a3d0623676e36cd75f4e23a9775cce15be52fb8af29875beada8e3d14fc7510e457c0cf30dd2a582835497ca894cf2ecddf81c6754
EBUILD calculate-lib-2.2.29-r2.ebuild 822 SHA256 b214dc196b8d1cbf32516b125d65086922923d3e746ef865dfce3fe58567d691 SHA512 b8dda048a8fdf3db2b5e51af7669b666e56172643fae8aadfb49a663c2128df062d6e3721574d8031617470dbcf912a7e1c4f6db3bd20af1b87c0c2716c7f075 WHIRLPOOL cc81350ba84d920c1c5084a0e7b2c529338c1092734f6e306dc9dd9f7d41bcc38e930e349c47dda5a7268133de9e1de866fd878eb164b043f00a83e65eb3c410
EBUILD calculate-lib-2.2.9999.ebuild 656 SHA256 35451656788914b0890f8d5238f2cab70d858718eb43e38b162cd975eb89e8ca SHA512 970c4cc2952439bbb67e89bc938b3f55ac2ada03f383a111ad08a4f1ca28e77f61a2f9d0f51dcb07fceae76a8b2712f746d3e185b99d6444d5b7eb3a050f2300 WHIRLPOOL a67edb00138a4577c7788d2e3d82fb3635e305c7dac4fe7fcc6dad979948aa31d447647e91a9332e888ab67cf6157d3504e4da3b0e340c072e7e9946e1f41b66
EBUILD calculate-lib-3.0.0-r1.ebuild 712 SHA256 21833c492841263e69c40c1657c1911fac400143354433fecfafbaeff19b40ea SHA512 c700c9314cbdf863622c1603217f6a77554d49ccc9803e1af4b039870b229c2aad947e1ee2606526f024996d8e8e6aeb45777e809177cb12990101ad6c42b9cf WHIRLPOOL b8b7b4ce7409be8480f751b12b01531289426a70e58984ce3bd97c06a0ef554d3846e3b517ed87e0c235f7600f43901ca3926e361d90079bc73005d5042a7c4a
EBUILD calculate-lib-3.0.0.ebuild 605 SHA256 10338260344b0c0440aa9f619d2fcd2995dee8cac48b6d49f8c06efca42ec5f0 SHA512 68d7d0c4fdcb146fdd533a1769b28bc8b6a96401436f0b68b0433b66a31fa95c47d6129cac9b59d0e31fea97fa27da47dc3d594b2e57816f0b70fb4bd87b0a87 WHIRLPOOL b59a362545c9f91e362949113305f6754bc52a5c8e5771eeaed6334598d91095acd969dd3d7fc81550d3953b94a8b10b05fd8853730c40073a1d8e7fa1890dd6
EBUILD calculate-lib-3.0.9999.ebuild 634 SHA256 7197d2184d77097c1353ba2536d6590c1054feb188cf3c5f251e52be94bb25a3 SHA512 f8d94138ccd2b2e7929885c14a6461cc794d1a977bf330657ad098d8d71615c2c41cb37d0c8b4701d90e3125b5c4e1e64888211874055f10617d2ccf78daac5f WHIRLPOOL 568efe9bfb29e2c36c07d263731eea96ecb9c99fc025d07f2e2fa719d5d90277e08a63a791c575c341168bd99f3bd5706828d30eb6d9c4bb3db0448c96b3f592
MISC ChangeLog 29678 SHA256 2d3176ee3c60fb474f938b05f6118e17b06f600a6a654def33754f15c32e78e2 SHA512 7f8039d00f0a4cfffe9d4a016ce451a51586d92c195693c24dc3c3498a4133c138dce3a6bf687ee64c9e613eafbe7807199dae515b221aab329490770e7ea1a3 WHIRLPOOL f0859381bfc90c257cf02aee15392776a612b25d1299a3703fa091aedce9bfc0dcfe8dba42265de3bd2e904cd122a62c9f21622fd189a4c32bf088f7ec8e9307

@ -0,0 +1,33 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
inherit distutils eutils
SRC_URI="ftp://ftp.calculate.ru/pub/calculate/calculate3/${PN}/${P}.tar.bz2"
DESCRIPTION="The library for Calculate 3"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE="minimal"
DEPEND="!minimal? ( dev-python/py-smbpasswd )
>=dev-python/pyxml-0.8
sys-apps/iproute2
sys-apps/pciutils
sys-fs/lvm2
sys-fs/mdadm
dev-python/pyinotify
sys-apps/file[python]"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# changes
epatch "${FILESDIR}/calculate-lib-3.0.0-r1.patch"
}

@ -0,0 +1,71 @@
diff --git calculate/lib/cl_print.py calculate/lib/cl_print.py
index 7c7d979..ff13ed4 100644
--- calculate/lib/cl_print.py
+++ calculate/lib/cl_print.py
@@ -115,7 +115,10 @@ class color_print(object):
def defaultPrint(self, string):
- self._printSysOut.write(string)
+ try:
+ self._printSysOut.write(string)
+ except UnicodeError:
+ self._printSysOut.write(string.encode('utf-8'))
try:
self._printSysOut.flush()
except IOError:
diff --git calculate/lib/cl_template.py calculate/lib/cl_template.py
index c7d72e5..831705d 100644
--- calculate/lib/cl_template.py
+++ calculate/lib/cl_template.py
@@ -358,19 +358,16 @@ class _terms(_error, _shareTermsFunction):
vals[1] = 0
try:
valFile = int(vals[1])
+ valVar = valVars
+ res = dictRuleFunc[sepF](valVar, valFile)
+ if res:
+ listEqual.append(True)
+ else:
+ listEqual.append(False)
+ break
except:
- self.setError("'%s'"%rpl(term) +" "+\
- _("incorrect"))
- self.setError(textError)
- return False
- valVar = valVars
- res = dictRuleFunc[sepF](valVar, valFile)
- if res:
- listEqual.append(True)
- else:
- listEqual.append(False)
- break
- else:
+ flagIntTypeVar = False
+ if not flagIntTypeVar:
if sepF == "!=" or sepF == "==":
if not vals[1].strip():
vals[1] = ""
diff --git calculate/lib/datavars.py calculate/lib/datavars.py
index a2f2b0d..835b649 100644
--- calculate/lib/datavars.py
+++ calculate/lib/datavars.py
@@ -415,6 +415,9 @@ class TableVariable(Variable):
"""
type = "table"
+ def set(self,value):
+ return value
+
def get(self,hr=False):
"""Get table data"""
for varname,value in ifilter(lambda x:type(x[1]) != list,
@@ -500,6 +503,7 @@ class TableVariable(Variable):
fieldname=self.source[0],variablename=self.name))
def setValue(self,value):
+ value = self.set(value)
self.untrusted = True
oldvalue = self.Get(self.name)
# get writable columns

@ -2,6 +2,7 @@ EBUILD calculate-utilities-2.2.29-r10.ebuild 803 SHA256 2610c58be3eb7b48da99b68d
EBUILD calculate-utilities-2.2.9999.ebuild 842 SHA256 56d97b7d2ce11d23b25d9036b4e2ee196b547ce1d11b0cc349a8205515b66bf1 SHA512 fc7802b92ade52210fa7381b55c48638da6d9adee6d2f03f18d6bdd0050756089b3ca8de944f4e865517554523b40737abe9f22587ecae74079eec563f80868b WHIRLPOOL f1382f0629a8dae37aaecf40cb8cbc3682bde3b43e92c9c6a84cda75897dc5d5de043233fb7a3f929749520b05fe3af94187c7a3ccdae4e252e83699d871f225
EBUILD calculate-utilities-3.0.0-r1.ebuild 598 SHA256 c5ccfe1a28e2643314c97023570a0afae156438a372d138ac12bedbaf96c25ed SHA512 d4c5f005a8970f66bbfb1755d0cbcdb400b312be72aa5ba9400969b2103b351ff8f918c487caf0e4fb36498c86dcbc42e182ecfb96f1ade967cb0677065b8ba8 WHIRLPOOL e1f0eefa6ea7d0e8b74b9663a304d42d0485e3353df483c47e92ab9b85989f783cb2e784af3444989065ae31e56d5a0cdfcdac823d2919e6eaa6ffc30678a93a
EBUILD calculate-utilities-3.0.0-r2.ebuild 598 SHA256 5885b070bc83cf7ecdd192a861533c2a6e50ad066276b42e88f0b9dd0319bcdc SHA512 392d0eee04013ac933145650bf7d83a07ca8bc604f42a29261909770749aa29c35c828e36f2a55a3043cc6b16ddba2e1f3a694f1494db2843b9c94d4e257e0ba WHIRLPOOL 393db82fef6e76dd087e304832aa4220ef639749c8030e883f06726c750251694aa9399ae7c3c6627a5d8bcd81b9257c7d7114ccff755bfc076f610614e7351d
EBUILD calculate-utilities-3.0.0-r3.ebuild 610 SHA256 d292c8212e108a463b143781fc0a4e6bde37e652e101f7a0200769a331b84cba SHA512 4696b2588babe92d92df2578071247592e9ee6c85f37dddf5785885adf1665367e836ecac6fff019f32047cbde871c5a0209cea778c879029e6d103b261da9b3 WHIRLPOOL 45ee068007ae81ba4b3c2a14be94ccc8b3f25971897c26a594ea047e36cf810c9ec957e2d0ef13d23256d27d3173148887a2fae59bb0698a1500b4ea9634f6f1
EBUILD calculate-utilities-3.0.0.ebuild 595 SHA256 0b9aeeb84105488a72bf2ed1f8874ada0524e5be004f7fd197cda5158b99da1c SHA512 b89198e5290ac66a4a18d344f77ebc773ae4af977005dd96cd2eb22f125d6035970d698957cfb848d56734e1cc8a2d8ecd5e65b501421ab7153481a501f473a8 WHIRLPOOL 99579fc6b3170695e0db58d432a932ea117c35a9fd2b0896d5018f6b5ab8c25c270e039a343d877214897c546ab891c6f862422d5c170d6f7282841abcd947f6
EBUILD calculate-utilities-3.0.9999.ebuild 552 SHA256 d6519794625722093224801b703a0363929a034a1189b46a2c01cc2327138e59 SHA512 6dbb450db2ab1003a79ff32878c8928f93f53f0af7c46707d073dcff4f2befebc9fbcf5085b396fa4625735c2a987f041c4345884edde0924c1bc14c5d3f92c8 WHIRLPOOL 8403f0072318a3e425df82cb5480df941854044f0d6b04280a6ad1b9bdc1beff907127df44aaecd2818cdcf8399a9463c64a08bcfc34583bac4f8317d9294758
MISC ChangeLog 38731 SHA256 7e70a0bc1f3b34c0011f3874773a698a4bb96eb6d3dad10903575156bb8578bc SHA512 2de466ea990b9eac702b81fd097c3f5d06d1f4db1a4bd1d1b7380b45e551f6fd62c16564ecfc810246157d3ef1113ae373041580e70981d44752e50ed6134bc0 WHIRLPOOL 5ca0cee1ad0e9419f91ec11a9629b9a29db9fcbed4f5ae0aef1f8a2170ff58112c8580d61884c56ee410a0abc201fa8f4419cea35077fc8bb84e733f6fa6f4db

@ -0,0 +1,24 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
DESCRIPTION="Calculate Utilities meta package"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
SRC_URI=""
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE="cl_consolegui cl_console"
RDEPEND="${RDEPEND}
=sys-apps/calculate-install-3.0.0-r3
=sys-apps/calculate-i18n-3.0.0
=sys-apps/calculate-lib-3.0.0-r1
=sys-apps/calculate-core-3.0.0-r1
cl_consolegui? ( =sys-apps/calculate-console-gui-3.0.0-r1 )
cl_console? ( =sys-apps/calculate-console-3.0.0-r1 )
"
Loading…
Cancel
Save