Исправлено чтение информации из дистрибутива

atratsevskiy
Mike Khiretskiy 10 years ago
parent 66bc10ef55
commit 52144b1827

@ -14,6 +14,7 @@ AUX calculate-lib-3.2.0_alpha12-r2.patch 1219 SHA256 d101a72ce979f2be55fb293240a
AUX calculate-lib-3.2.0_alpha12-r3.patch 2337 SHA256 72462a090daeff13216fcf0de3ee5990a34ebfe1039d163f1591107ed4cc9949 SHA512 08192bcaf6fd3d3a52cf4b870a5f949833ab13354da899b692482a87da90f07c83e692152d28bdac936cab654d3d3d1fbdd9e478b493bb7eec3eb4e2312e8052 WHIRLPOOL d1a9467e3a0bbba484d194de20dcd96d7b493300457d9bcfe3b0f769f98adfaaef915e544043360591224c62ebbbc0dfd2e65f5654c0bff5c5fc677e692fcdde
AUX calculate-lib-3.2.0_alpha12-r4.patch 8978 SHA256 b3609ac4e737f7fb38dbd97ee22e64f6c753a5262d3a88b57849bff0c0292bff SHA512 44727196f1182524fe447efbc64283526f4b5df0428b222b5fdcdb02f6429b6ef3859a64aaceba6ec632c5970f4fec0730b1131f0c60cdf338036f32e939f553 WHIRLPOOL 4893c1747229f03bb3f15c6a93a855f702ab7d6b7818f4ee40857fcff543c230fbb197f5ff70e03426b15f56a7ef11c0da74346935bdf3dda992bcf4290e5feb
AUX calculate-lib-3.2.0_alpha12-r5.patch 9000 SHA256 13b229a08e5131cb85514550d72a1ed34894972562807f3a9673f7c5dc0052fe SHA512 e3f3b33a03ba70fecd26531e2e98e73b488e85c76e857de5c90db80969abfbceb3102400b2e045065b9ed0ee205ae05ca7bf68744607ae5e2eda535fd6876882 WHIRLPOOL a48b1c71ba4dbb1727363172ebbc7613c392ecc0ed5ecc95b1414240903cec85bfca9bb9017518af9362d5dfff9ac4365f34fa1cf71227b211a5dc5c97d32efd
AUX calculate-lib-3.2.0_alpha12-r6.patch 9490 SHA256 8936962e0e7b6487aed25ae099c77dae9023333149d3c1c8e8ec7e392722bfdc SHA512 15d0c47b0906c7c6256bb6cac51c9fa5a48fae0f8ccf84691781d72a6bdb8fdcfdd16bcb492a271c36970c5a06c7f8282f372cd374210968ec3f4ee292d82e3c WHIRLPOOL fc0f9ee9d8d92ea3069894ca09b82035621d6b8cf7968997281f9ab06f375c6afa31ecb22af6442935b3fdfea1eaa46a333fbf4813d660b1d7227aeb3db7e793
DIST calculate-lib-2.1.11.tar.bz2 61687 SHA256 62976c08d4fb4810389ace6f5a99abb5a962f6c8d9053ff943d0669480fb5599 SHA512 e3bc2168a55367cf19ad3a27921b53e5e845643238bf171209ab29752c91b5d4d338a2120774764ac1c79abd93f2deff8680f8faa1407940984ea9fd6a199e67 WHIRLPOOL 0ced92ea493dd8db02b0ae1514ebbb51ee76dc6f441b4a38c984c39da2121fb81dd1f2e840c4c5b71a117a12817a2a269d85676288202aa9801f69727e3338dc
DIST calculate-lib-2.2.31.tar.bz2 120044 SHA256 ba38052d8b2349a1c60adc589a74eb8a3ffcbf6f3c1124e4c1fb0da3aa777f12 SHA512 902871b9159f2bcf7a0cc767fb6df5b19902fce6cf9468d96f902c383a422738b65debe3094c92d1f82de2124936496f89631c6eb9670da00807b63156b101b7 WHIRLPOOL 5179ee691519f3a7faa3135d040ad64bd6d67c026ebf39bb17f7d641130a2b58641d1fe5da4f6cfbd45d4442d93508f0a5f641ef2cd8c43e1a322aab3d11f4b9
DIST calculate-lib-3.1.9.tar.bz2 119852 SHA256 f81e84b078903b2269266ca24ee68ea5818d1a96cd2781871682bf6d71a63964 SHA512 358c57692b6296f64bbaf7c150d2f7d4663270e5130593e586b38c885ed5c959a24f29db581f6836357485032d20aab25c686ced2961a94644100596d1309e0f WHIRLPOOL 7e56f10544b8e2a4ecd160271a620bdb64b87006ab0ab636d9dd4ba18f0309ff6cf802d7c0e3c2e57789f6ee73369deb8a7a9ceaa3d2dcc598fa60dd1bf26d96
@ -31,6 +32,7 @@ EBUILD calculate-lib-3.2.0_alpha12-r2.ebuild 856 SHA256 9dff7f4e0f2c0479cc2df061
EBUILD calculate-lib-3.2.0_alpha12-r3.ebuild 856 SHA256 f99e7f452f55acce5edfbee0faa8d1d12fcdabdde5021c28a104b2f2f53a3f63 SHA512 1c734a748b456f033bbc71b4eda55334386aafada2ba7ffdcbe22faba4a9fcb784d5338e5bb45467c242277ec72ef9d4fd00f2826e3623a4ef298fd576eb1a84 WHIRLPOOL de69486d096870f730d41284bd629d4ea068ac816c7c1996783b5a21a643f78aa8010a7f1490a3909ce0d627901dfa1c5be418e196d11b5533bc2a5d0d089725
EBUILD calculate-lib-3.2.0_alpha12-r4.ebuild 856 SHA256 cc786988dc5f7cdf14294ca41ca321ccc6792eb890a41c3ac01662c2f14f4ec1 SHA512 bc91a7d6bfbc4647f48a92af29db6d630f6a80305cd9d7ac3040e3a9c0056bd55a2d80d1e7f9b8a88d82033500cb6edc9bf28d4cf529a70051decf7c4beba765 WHIRLPOOL e67123662b15a09b8d92404cc09a643a1b56157e2da2ad26d0c3e55253e40c3d34f7add83dde0832b281af597217b5f82cdccb651e6a519f32a31e91ebe98a5f
EBUILD calculate-lib-3.2.0_alpha12-r5.ebuild 856 SHA256 eac0f4fb3e3b78596a4becc52d1acb3e01f0116fcdfb2e109edd153fee34f712 SHA512 a290690a0a7cb8f3d290e7aa309fc0bf09377d82706ea5b825dea53392a41513f434b8d30cef671f9925ee730247470a7a48288903a438af084d5496ee6f3d00 WHIRLPOOL 036ca33ee49a57a783bc66b31266fc2f5d7b0a9f600467457461d8c8f1da6b56ff111903f9b92f84b9c8e13bd4858385938c542dc80753b86af6f5208228c2b8
EBUILD calculate-lib-3.2.0_alpha12-r6.ebuild 856 SHA256 cb946ede9f4d15a363d0c8a8239f9a5364d7ee66c479c0976b828c2e012c1ded SHA512 3e625da5887015bc95545de606f39292d4e9f0a6937d93e4161fbca0d3f64f27981d4b5299aaaddc9d6aca9fbc6ceaa54d5cf506fa763b32536177795e08d83e WHIRLPOOL f26696febc8bd73a50893ba18cc2ac5d74c23a34551915c6341107a967f3c6e5b3d1eacee14c04fb83e413c747f1f3c136eba41d9b16908cb80dcc2d7c1c2993
EBUILD calculate-lib-3.2.0_alpha12.ebuild 714 SHA256 34d7199436229c50f7f78909decb90e36aff881c761970a9a57a524f08757d8e SHA512 500db3d23718662b4e3023ce0306da00dbf09642722ac7c83d1cbda01121170b39bd322d502955985a65440358196ea1a6e4882dc866fc377e6082714e05ca6f WHIRLPOOL e2911a0ec8c1ae4e610925fcfa1182ca771311a6bf19cf625558fa650a7614bbd3b608cc3de9966c05c2b7d82904f8df34bbf01fc2e6eba8d1ff7c6ccdfc2685
EBUILD calculate-lib-3.2.9999.ebuild 708 SHA256 a1d64b7f014831bf6b0a38928d53cb55758b7a12e5f3e98fffd28025ffacbce1 SHA512 3873859a791941d421e2338b437521955da383ce986408f1a951305e2dd75a1a4f771c9ec2caa096c5c8ea6a1776d6d0ed99e025ffa786ba029cafdbadfa439b WHIRLPOOL 5ac1a10b53f810ab527a0ebe52bc87e8397e61375cf6e0acbed89d8f6b8385e72bf234e0fdce479c3a3f1652bb6e520710ce9356750a97d644c0db0a33f6facb
MISC ChangeLog 29851 SHA256 16ca15c794bce78eefc487ed372c3d4960078fbd4c5fe4524211688d0146ef97 SHA512 be6bdf290f391529dce0deb67bf9d367e42e407601dd581f7c08d082399b5860cff2a76d4d64dd876154d51e84f34499db06c715145ac64f78d168aae7e78dbf WHIRLPOOL 2561ccd1eefe3423d97c67aff5c0fe6c8ca624e527fb885b042c8e812194bb1635d7e7d7d86c534562eb780c6b9144d92e24893f2d0696cf8a34a6a912a45788

@ -0,0 +1,37 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
SUPPORT_PYTHON_ABIS="1"
PYTHON_DEPEND="2:2.7"
RESTRICT_PYTHON_ABIS="2.4 2.5 2.6 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
dev-python/progressbar
sys-fs/lvm2
sys-fs/mdadm
dev-python/pyinotify
sys-apps/file[python]"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# apply revision changes
epatch "${FILESDIR}/calculate-lib-3.2.0_alpha12-r6.patch"
}

@ -0,0 +1,246 @@
diff --git calculate/lib/cl_template.py calculate/lib/cl_template.py
index f5cc228..fe055a8 100644
--- calculate/lib/cl_template.py
+++ calculate/lib/cl_template.py
@@ -2973,25 +2973,32 @@ class templateFunction(_error, _warning, _shareTemplate, _shareTermsFunction):
"""
Function in for check value in variable
"""
- terms = funArgv.replace(" ","").split(",")
+ terms = funArgv.replace(" ", "").split(",")
# Название локальной переменной
nameLocVar = terms[0]
flagFoundVar = False
try:
- value = self.objVar.Get(nameLocVar)
+ value = self.objVar.Get(nameLocVar)
flagFoundVar = True
except:
pass
if flagFoundVar:
- if value in terms[1:]:
- replace = "1"
+ if type(value) in (list, tuple):
+ terms = terms[1:]
+ if any(x in terms for x in value):
+ replace = "1"
+ else:
+ replace = ""
else:
- replace = ""
+ if value in terms[1:]:
+ replace = "1"
+ else:
+ replace = ""
else:
- self.raiseErrTemplate(_("error: variable %s does not exist")\
- %str(nameLocVar))
- textTemplateTmp = textTemplateTmp[:resS.start()] + replace +\
- textTemplateTmp[resS.end():]
+ self.raiseErrTemplate(_("error: variable %s does not exist") \
+ % str(nameLocVar))
+ textTemplateTmp = textTemplateTmp[:resS.start()] + replace + \
+ textTemplateTmp[resS.end():]
return textTemplateTmp
def funcPush(self, funArgv, resS, localVars, textTemplateTmp, nameTemp):
diff --git calculate/lib/datavars.py calculate/lib/datavars.py
index 96ae928..f8050ec 100644
--- calculate/lib/datavars.py
+++ calculate/lib/datavars.py
@@ -811,39 +811,44 @@ class SimpleDataVars:
if not varname in self.cache:
val = self.unserialize(varobj.type or "string",
importVars[varobj.section].get(varname,'').encode('utf-8'))
- if val:
+ if val or varname in importVars[varobj.section]:
self.cache[varname] = val
- def serialize(self,varType,value):
+ @staticmethod
+ def serialize(varType, value):
"""
Serialize to string for ini file
"""
fixEmpty = lambda x: str(x) or "''"
- fixSpace = lambda x: "'%s'"%str(x) if " " in str(x) else str(x)
- isListOrTuple = lambda x: type(x) in (list,tuple)
+ fixSpace = lambda x: "'%s'" % str(x) if " " in str(x) else str(x)
+ isListOrTuple = lambda x: type(x) in (list, tuple)
if isListOrTuple(value):
if "list" in varType:
- return ",".join(map(fixEmpty,value))
+ return ",".join(map(fixEmpty, value))
elif "table" in varType:
- return ",".join(map(lambda x:":".join(map(fixEmpty,x)),
- value))
+ return ",".join(map(lambda x: ":".join(map(fixEmpty, x)),
+ value))
return fixEmpty(value)
- def unserialize(self,varType,value):
+ @staticmethod
+ def unserialize(varType, value):
"""
Unserialize form string for varname
"""
- fixEmpty = lambda x:"" if x=="''" or x=='""' else x.strip()
+ fixEmpty = lambda x: "" if x == "''" or x == '""' else x.strip()
+
def getList(delimeter=','):
def wrapper(val):
if val == "":
return []
- return map(fixEmpty,val.split(delimeter))
+ return map(fixEmpty, val.split(delimeter))
+
return wrapper
+
if "list" in varType:
return getList()(value)
if "table" in varType:
- return map(getList(':'),value.split(','))
+ return map(getList(':'), value.split(','))
return fixEmpty(value).strip("'").strip('"')
diff --git calculate/lib/utils/files.py calculate/lib/utils/files.py
index 6fddc6f..b9d4497 100644
--- calculate/lib/utils/files.py
+++ calculate/lib/utils/files.py
@@ -539,21 +539,26 @@ def removeDir(rmDir):
rmtree(rmDir)
return True
-def getRunCommands():
+def getRunCommands(not_chroot=False):
"""List run program"""
def getCmd(procNum):
cmdLineFile = '/proc/%s/cmdline'%procNum
try:
if path.exists(cmdLineFile):
+ if not_chroot:
+ root_link = '/proc/%s/root'%procNum
+ if os.readlink(root_link) != "/":
+ return ""
return open(cmdLineFile,'r').read().strip()
- except:
+ except Exception as e:
pass
return ""
if not os.access('/proc',os.R_OK):
return []
- return map(getCmd,
+ return filter(None,
+ map(getCmd,
filter(lambda x:x.isdigit(),
- listDirectory('/proc')))
+ listDirectory('/proc'))))
def isMount(pathname):
diff --git calculate/lib/variables/__init__.py calculate/lib/variables/__init__.py
index 5e18176..9d3cf79 100644
--- calculate/lib/variables/__init__.py
+++ calculate/lib/variables/__init__.py
@@ -41,4 +41,4 @@ class VariableClVer(ReadonlyVariable):
"""
Package version
"""
- value = "3.2.0"
+ value = "3.2.0.1"
diff --git calculate/lib/variables/env.py calculate/lib/variables/env.py
index 86f1bfb..6493ff8 100644
--- calculate/lib/variables/env.py
+++ calculate/lib/variables/env.py
@@ -336,6 +336,7 @@ class VariableClEmergeInfo(ReadonlyVariable):
def get(self):
return filter(lambda x:x.startswith('PORTDIR_OVERLAY=') or \
+ x.startswith('EMERGE') or \
x.startswith('PORTDIR='),
process("/usr/bin/emerge","--ask=n","--info",
envdict=os.environ).read().split('\n'))
@@ -354,6 +355,20 @@ class VariableClPortdirOverlay(ReadonlyVariable):
line.partition("=")[2].strip('\n"\'').split(' '))
return []
+class VariableClEmergeDefaultOpts(ReadonlyVariable):
+ """
+ EMERGE_DEFAULT_OPTS
+ """
+ type = "list"
+
+ def get(self):
+ emergeInfo = self.Get('cl_emerge_info')
+ for line in filter(lambda x:x.startswith("EMERGE_DEFAULT_OPTS="),
+ emergeInfo):
+ return filter(None,
+ line.partition("=")[2].strip('\n"\'').split(' '))
+ return []
+
class VariableClTemplatesLocate(Variable):
"""
Выбранные типы хранилищ шаблонов
@@ -428,5 +443,8 @@ class VariableClMakeProfile(Variable):
val = self.get_work_link(
*[path.join(self.systemRoot, x) for x in files])
if not val:
- raise VariableError(_("Failed to detect the system profile"))
+ raise VariableError(
+ _("Failed to detect the system profile.") + " " +
+ _("Select profile by command {cmd}").format(
+ cmd="cl-update-profile"))
return val
diff --git calculate/lib/variables/linux.py calculate/lib/variables/linux.py
index d49c773..e405387 100644
--- calculate/lib/variables/linux.py
+++ calculate/lib/variables/linux.py
@@ -18,8 +18,9 @@ import os
from os import path
import re
import platform
+from calculate.lib.cl_template import iniParser
from calculate.lib.datavars import Variable, SimpleDataVars
-from calculate.lib.utils.portage import isPkgInstalled
+from calculate.lib.utils.portage import isPkgInstalled, searchProfile
from calculate.lib.utils.files import readFile
from env import VariableClMakeProfile
@@ -224,6 +225,27 @@ class VariableOsLinuxFiles(Variable,Linux):
#return str(countFiles(self.systemRoot))
+class VariableOsLinuxPkglist(Variable):
+ type = "list"
+
+ def generate_shortnames(self, make_profile):
+ for fn in searchProfile(make_profile, "calculate.env"):
+ ini = iniParser(fn)
+ value = SimpleDataVars.unserialize("string",
+ ini.getVar('main',
+ 'os_linux_shortname'))
+ yield value.encode('utf-8')
+ yield "base"
+
+ def get(self):
+ make_profile = self.Get('cl_make_profile')
+ if path.exists(make_profile):
+ return list(set(filter(None,
+ self.generate_shortnames(make_profile))))
+ else:
+ return []
+
+
class LinuxDataVars(SimpleDataVars):
def __init__(self, systemRoot="/"):
self.systemRoot = systemRoot
@@ -239,7 +261,7 @@ class LinuxDataVars(SimpleDataVars):
VariableOsLinuxBuild(systemRoot=systemRoot))
makeprofile = self.Get('cl_make_profile')
if os.path.exists(makeprofile):
- inifile = path.join(systemRoot, 'etc',
+ inifile = path.join(systemRoot, os.path.dirname(makeprofile),
os.readlink(makeprofile))
self.flIniFileFrom(inifile)
for inifile in ("etc/calculate/calculate.env",

@ -16,6 +16,7 @@ EBUILD calculate-utilities-3.2.0_alpha12-r4.ebuild 830 SHA256 c76b50f6ee84f2a8ec
EBUILD calculate-utilities-3.2.0_alpha12-r5.ebuild 833 SHA256 18cd4a1d59719ada4ec53ea2fa91ce0ec9f069800934b2f0118a08d7078bd91a SHA512 217a2d8fd4cb82d137835174ff57cb610f8c48bcc56bb0427914c53a5435f0a2cf80f075c2c44cc6760a4095bef8217acfcfbb83f989eb14ab4d532cf66ee0bb WHIRLPOOL d28b6f20b4a8a3277a677338f12480136aca61a7ddeea7bd1e2f5792805f230084dc7f51d468826d36826ec119324d900e176ca658e9d4b49cb96e9779b5ca52
EBUILD calculate-utilities-3.2.0_alpha12-r6.ebuild 836 SHA256 0fa9e7f286b1f255a0f71b3114c03f1d7a752f393a8531ecb6a8135d311a2581 SHA512 0812d7594baea32421e66ebf00666fb358c40fd644a8c40f3dcdb9fdc21472274d27a476d351a79b0a33dc747c6ff0f6caafbfa2a564d798ac9fba4b0ab6e04e WHIRLPOOL c49b626e2ba7b0e25b0655733cd7c536a50ecdd287cc919c9782967d6341bd892328f4d5302472a3ff00a60f17bcd277e7476da41230afde79572f87a48f7028
EBUILD calculate-utilities-3.2.0_alpha12-r7.ebuild 836 SHA256 0d738eb296cf7b9df9208e6335c60175ee3f14b33b3d7b41bc120cf327e45744 SHA512 152de42fab96cfe1a6b1f75d66e0fc3ef2969a06cfc9c3b4abb30578dcc471ae5d8898aef814f2a6230256696086720fc9637fd4757a7e167a0991488a178f0d WHIRLPOOL 91bb6d3f675178ef3fe6431bc79299225be047071a8aaf772b92661ba3eb5a73b9cc3eaedec9419bfed9b4e8b9a5de7fb7778981e543e514360749b4c1ec1412
EBUILD calculate-utilities-3.2.0_alpha12-r8.ebuild 836 SHA256 5bb6e0713d51a324d8ae7f7370ca10fbb30eea19f38e7eec6d625fe9229d2a8f SHA512 36501ff47d15d135a5a6fc032b0ec6e5325c118631606e3fd254921cff5c73782b91815fe4d4e1e0a13ce3ac6bad9a2a28204c523ccf8ef42f2cbd3f12622af8 WHIRLPOOL 350279f92388f52c3c8009e396f24550cffb822920de731bfb78e0d48da3b6b3465bcf6ef8b86526aa1efca4beaa679f8765f4dbf99cf7e2e6f77e911c45cfed
EBUILD calculate-utilities-3.2.0_alpha12.ebuild 821 SHA256 89132b0411b87f5424a54b76a076e33214ed1ea7174fe1be14fb2c9b57acf884 SHA512 6960fb7b9a8b35b7041b40ba4d6276c142bb865918d1275d37f67d746213abe2dc60b701bf0c7c00d7492fbebfd5575d41e53dea4ffe0981cc0c775b665ab960 WHIRLPOOL 66282f7e9398fdc03c08dcfe9c595b084382b91c2580c1e906efdca52b94a582511e41f866e20487be53ebef1264f8b8cbbb64e6637de2df71b05501fbde6730
EBUILD calculate-utilities-3.2.9999.ebuild 800 SHA256 acbb7a4e34387baa1ade9bf97637972fbfc97afa56367381d622198b5237e983 SHA512 9e0c74eb499157b6d3ace20d7e9da630660e46b74a6d575e222e1638c87f85660635187489b9312a45f193780c301d87c1dbb9a0f60414e178e8f54080c71ffd WHIRLPOOL 9b56f590f36d29d3518c66c453f97b14d083e36b62adb70a8916ae4e30b527431602a9edd40d703e5cb4296a01f8c982157b602651ee57a9c0ddb7a4c6aa2fe1
MISC ChangeLog 38731 SHA256 7e70a0bc1f3b34c0011f3874773a698a4bb96eb6d3dad10903575156bb8578bc SHA512 2de466ea990b9eac702b81fd097c3f5d06d1f4db1a4bd1d1b7380b45e551f6fd62c16564ecfc810246157d3ef1113ae373041580e70981d44752e50ed6134bc0 WHIRLPOOL 5ca0cee1ad0e9419f91ec11a9629b9a29db9fcbed4f5ae0aef1f8a2170ff58112c8580d61884c56ee410a0abc201fa8f4419cea35077fc8bb84e733f6fa6f4db

@ -0,0 +1,26 @@
# 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_client cl_desktop cl_console"
RDEPEND="${RDEPEND}
=sys-apps/calculate-install-3.2.0_alpha12-r1
=sys-apps/calculate-i18n-3.2.0_alpha12-r2
=sys-apps/calculate-lib-3.2.0_alpha12-r6
=sys-apps/calculate-core-3.2.0_alpha12-r1
=sys-apps/calculate-update-3.2.0_alpha12-r5
cl_client? ( =sys-apps/calculate-client-3.2.0_alpha12 )
cl_desktop? ( =sys-apps/calculate-desktop-3.2.0_alpha12 )
cl_consolegui? ( =sys-apps/calculate-console-gui-3.2.0_alpha12 )
cl_console? ( =sys-apps/calculate-console-3.2.0_alpha12 )
"
Loading…
Cancel
Save