parent
4495c6e493
commit
793a914500
@ -0,0 +1,30 @@
|
|||||||
|
# Copyright 1999-2011 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/calculate2/${PN}/${P}.tar.bz2"
|
||||||
|
|
||||||
|
DESCRIPTION="The library for Calculate 2"
|
||||||
|
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 x86"
|
||||||
|
IUSE=""
|
||||||
|
DEPEND="!<sys-apps/calculate-client-2.1.12
|
||||||
|
!<sys-apps/calculate-server-2.1.11
|
||||||
|
>=dev-lang/python-2.5.2
|
||||||
|
>=dev-python/python-ldap-2.0[ssl]
|
||||||
|
>=dev-python/pyxml-0.8"
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
unpack "${A}"
|
||||||
|
cd "${S}"
|
||||||
|
|
||||||
|
# fix get ip and mac without ifconfig
|
||||||
|
epatch "${FILESDIR}/calculate-lib-2.2.11-fix_getip.patch"
|
||||||
|
}
|
@ -0,0 +1,161 @@
|
|||||||
|
diff --git a/pym/cl_fill.py b/pym/cl_fill.py
|
||||||
|
index c5dea91..e86343d 100644
|
||||||
|
--- a/pym/cl_fill.py
|
||||||
|
+++ b/pym/cl_fill.py
|
||||||
|
@@ -129,57 +129,22 @@ class fillVars(object, cl_base.glob_attr):
|
||||||
|
# все ip
|
||||||
|
def get_os_net_ip(self):
|
||||||
|
"""все ip компьютера, разделитель запятая"""
|
||||||
|
- IPs = []
|
||||||
|
- netInterfaces=cl_utils.getdirlist("/sys/class/net/")
|
||||||
|
- for i in netInterfaces:
|
||||||
|
- res = self._runos("/sbin/ifconfig %s"%i)
|
||||||
|
- if not res:
|
||||||
|
- break
|
||||||
|
- for line in res:
|
||||||
|
- searchIP = re.search('addr:([0-9\.]+).+Bcast:', line)
|
||||||
|
- if searchIP:
|
||||||
|
- # ip адрес
|
||||||
|
- ip = searchIP.groups()[0]
|
||||||
|
- IPs.append(ip)
|
||||||
|
- return ",".join(IPs)
|
||||||
|
+ return ",".join(map(cl_utils.getIp,
|
||||||
|
+ cl_utils.getInterfaces()))
|
||||||
|
|
||||||
|
# Разрешенные сети (в данном случае все сети)
|
||||||
|
def get_os_net_allow(self):
|
||||||
|
"""Разрешенные сети разделитель запятая"""
|
||||||
|
-
|
||||||
|
- def getNet(ip, mask):
|
||||||
|
- """По ip и маске получаем сеть"""
|
||||||
|
- octetsMult = (0x1, 0x100, 0x10000, 0x1000000)
|
||||||
|
- octetsIp = map(lambda x: int(x), ip.split("."))
|
||||||
|
- octetsMask = map(lambda x: int(x), mask.split("."))
|
||||||
|
- ipNumb = 0
|
||||||
|
- for i in octetsMult:
|
||||||
|
- ipNumb += octetsIp.pop()*i
|
||||||
|
- maskNumb = 0
|
||||||
|
- for i in octetsMult:
|
||||||
|
- maskNumb += octetsMask.pop()*i
|
||||||
|
- startIpNumber = maskNumb&ipNumb
|
||||||
|
- x = startIpNumber
|
||||||
|
- nMask = lambda y: len(filter(lambda x: y >> x &1 ,range(32)))
|
||||||
|
- return "%s.%s.%s.%s/%s"\
|
||||||
|
- %(x>>24, x>>16&255, x>>8&255, x&255, nMask(maskNumb))
|
||||||
|
-
|
||||||
|
networks=[]
|
||||||
|
- netInterfaces=cl_utils.getdirlist("/sys/class/net/")
|
||||||
|
- flagError = False
|
||||||
|
+ netInterfaces=cl_utils.getInterfaces()
|
||||||
|
for i in netInterfaces:
|
||||||
|
- res = self._runos("/sbin/ifconfig %s"%i)
|
||||||
|
- if not res:
|
||||||
|
- flagError = True
|
||||||
|
- break
|
||||||
|
- for j in res:
|
||||||
|
- s_ip=re.search('addr:([0-9\.]+).+Bcast:.+Mask:([0-9\.]+)' ,j)
|
||||||
|
- if s_ip:
|
||||||
|
- ip, mask = s_ip.groups()
|
||||||
|
- networks.append(getNet(ip, mask))
|
||||||
|
- if flagError:
|
||||||
|
- return ""
|
||||||
|
- return ",".join(networks)
|
||||||
|
+ ipaddr, mask = cl_utils.getIp(i), \
|
||||||
|
+ cl_utils.cidrToMask(cl_utils.getMask(i))
|
||||||
|
+ if ipaddr and mask:
|
||||||
|
+ networks.append(cl_utils.getIpNet(ipaddr, mask))
|
||||||
|
+ else:
|
||||||
|
+ networks.append("")
|
||||||
|
+ return ",".join(filter(lambda x:x,networks))
|
||||||
|
|
||||||
|
def get_os_locale_locale(self):
|
||||||
|
"""локаль (прим: ru_RU.UTF-8)"""
|
||||||
|
diff --git a/pym/cl_utils.py b/pym/cl_utils.py
|
||||||
|
index 195d4d5..e57533b 100644
|
||||||
|
--- a/pym/cl_utils.py
|
||||||
|
+++ b/pym/cl_utils.py
|
||||||
|
@@ -21,6 +21,9 @@ from re import search, compile, S
|
||||||
|
import os
|
||||||
|
import types
|
||||||
|
import subprocess
|
||||||
|
+import socket
|
||||||
|
+import struct
|
||||||
|
+import fcntl
|
||||||
|
|
||||||
|
def getdirlist(s_path):
|
||||||
|
#Получить список директорий по указаному пути
|
||||||
|
@@ -508,3 +511,74 @@ def _toUNICODE(val):
|
||||||
|
return val
|
||||||
|
else:
|
||||||
|
return str(val).decode('UTF-8')
|
||||||
|
+
|
||||||
|
+SYSFS_NET_PATH = "/sys/class/net"
|
||||||
|
+
|
||||||
|
+# From linux/sockios.h
|
||||||
|
+SIOCGIFADDR = 0x8915
|
||||||
|
+SIOCGIFNETMASK = 0x891B
|
||||||
|
+SIOCGIFHWADDR = 0x8927
|
||||||
|
+
|
||||||
|
+def getInterfaces():
|
||||||
|
+ """
|
||||||
|
+ Get available interfaces (discard which hasn't device)
|
||||||
|
+ """
|
||||||
|
+ try:
|
||||||
|
+ return filter(lambda x:os.path.exists(
|
||||||
|
+ path.join(SYSFS_NET_PATH,x,"device")),
|
||||||
|
+ os.listdir(SYSFS_NET_PATH))
|
||||||
|
+ except:
|
||||||
|
+ return []
|
||||||
|
+
|
||||||
|
+def getIp(iface):
|
||||||
|
+ sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
+ ifreq = struct.pack('16sH14s', iface, socket.AF_INET, '\x00'*14)
|
||||||
|
+ try:
|
||||||
|
+ res = fcntl.ioctl(sockfd, SIOCGIFADDR, ifreq)
|
||||||
|
+ except IOError:
|
||||||
|
+ return ""
|
||||||
|
+ finally:
|
||||||
|
+ sockfd.close()
|
||||||
|
+ ip = struct.unpack('16sH2x4s8x', res)[2]
|
||||||
|
+ return socket.inet_ntoa(ip)
|
||||||
|
+
|
||||||
|
+def getMask(iface):
|
||||||
|
+ """
|
||||||
|
+ Get mask for interface
|
||||||
|
+ """
|
||||||
|
+ sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
+ ifreq = struct.pack('16sH14s', iface, socket.AF_INET, '\x00'*14)
|
||||||
|
+ try:
|
||||||
|
+ res = fcntl.ioctl(sockfd, SIOCGIFNETMASK, ifreq)
|
||||||
|
+ except IOError:
|
||||||
|
+ return 0
|
||||||
|
+ finally:
|
||||||
|
+ sockfd.close()
|
||||||
|
+ netmask = socket.ntohl(struct.unpack('16sH2xI8x', res)[2])
|
||||||
|
+ return 32 - int(math.log(ctypes.c_uint32(~netmask).value + 1, 2))
|
||||||
|
+
|
||||||
|
+def getMac(iface):
|
||||||
|
+ """
|
||||||
|
+ Get mac for interface
|
||||||
|
+ """
|
||||||
|
+ sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
+ ifreq = struct.pack('16sH14s', iface, socket.AF_UNIX, '\x00'*14)
|
||||||
|
+ res = fcntl.ioctl(sockfd, SIOCGIFHWADDR, ifreq)
|
||||||
|
+ address = struct.unpack('16sH14s', res)[2]
|
||||||
|
+ mac = struct.unpack('6B8x', address)
|
||||||
|
+ sockfd.close()
|
||||||
|
+ return ":".join(['%02X' % i for i in mac])
|
||||||
|
+
|
||||||
|
+def intIpToStrIp(addr):
|
||||||
|
+ """Convert ip specified by integer to string"""
|
||||||
|
+ return "{0}.{1}.{2}.{3}".format(
|
||||||
|
+ addr>>24,(addr>>16)&0xff,(addr>>8)&0xff,addr&0xff)
|
||||||
|
+
|
||||||
|
+def maskToCidr(mask):
|
||||||
|
+ """Convert mask specified by str to net"""
|
||||||
|
+ mask = strIpToIntIp(mask)
|
||||||
|
+ return 32-int(math.log(((~mask) & 0xffffffff)+1,2))
|
||||||
|
+
|
||||||
|
+def cidrToMask(cidr):
|
||||||
|
+ """Convert net to mask specified by str"""
|
||||||
|
+ return intIpToStrIp((2**cidr-1)<<(32-cidr))
|
@ -0,0 +1,188 @@
|
|||||||
|
# Copyright 1999-2011 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/calculate2/${PN}/${P}.tar.bz2"
|
||||||
|
|
||||||
|
DESCRIPTION="The program for configuring services Linux"
|
||||||
|
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 x86"
|
||||||
|
|
||||||
|
IUSE="calculate_nomail
|
||||||
|
calculate_nodhcp
|
||||||
|
calculate_noftp
|
||||||
|
calculate_nojabber
|
||||||
|
calculate_nonamed
|
||||||
|
calculate_nosamba
|
||||||
|
calculate_noproxy"
|
||||||
|
|
||||||
|
DEPEND="=sys-apps/calculate-lib-2.1.11-r1
|
||||||
|
>=net-nds/openldap-2.3[-minimal]
|
||||||
|
>=sys-auth/pam_ldap-180[ssl]
|
||||||
|
>=sys-auth/nss_ldap-239
|
||||||
|
!calculate_nosamba? (
|
||||||
|
>=net-fs/samba-3.4.6[acl,client,cups,ldap,netapi,pam,server,smbclient]
|
||||||
|
<net-fs/samba-4.0.0
|
||||||
|
)
|
||||||
|
!calculate_nomail? (
|
||||||
|
|| ( <net-mail/dovecot-1.2.0[pop3d,ldap,pam,ssl]
|
||||||
|
>=net-mail/dovecot-1.2.0[ldap,pam,ssl]
|
||||||
|
)
|
||||||
|
>=mail-filter/procmail-3.22
|
||||||
|
dev-python/pymilter
|
||||||
|
>=mail-mta/postfix-2.2[ldap,pam,ssl]
|
||||||
|
)
|
||||||
|
!calculate_noftp? (
|
||||||
|
|| ( <net-ftp/proftpd-1.3.3[-acl,ldap,ncurses,nls,pam,ssl,tcpd]
|
||||||
|
>=net-ftp/proftpd-1.3.3[-acl,ident,ldap,ncurses,nls,pam,ssl,tcpd]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
!calculate_nojabber? (
|
||||||
|
>=net-im/ejabberd-2.1.8[mod_pubsub]
|
||||||
|
>=media-gfx/imagemagick-6.6
|
||||||
|
)
|
||||||
|
!calculate_nonamed? ( >=net-dns/bind-9.6.1_p1[sdb-ldap] )
|
||||||
|
!calculate_noproxy? ( >=net-proxy/squid-3.0.14[ldap,pam,ssl] )
|
||||||
|
!calculate_nodhcp? ( >=net-misc/dhcp-3.1.2_p1 )"
|
||||||
|
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
unpack "${A}"
|
||||||
|
cd "${S}"
|
||||||
|
|
||||||
|
# fix for proftpd
|
||||||
|
epatch "${FILESDIR}/calculate-server-2.1.15-fix_proftpd.patch"
|
||||||
|
# fix getip without ifconfig
|
||||||
|
epatch "${FILESDIR}/calculate-server-2.1.15-fix_getip.patch"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [ -d /var/calculate/server-data/mail/imap ] || \
|
||||||
|
[ -d /var/calculate/server-data/samba/win/profiles ] || \
|
||||||
|
[ -d /var/calculate/server-data/samba/unix/profiles ] || \
|
||||||
|
[ -d /var/calculate/server-data/samba/win/netlogon ];
|
||||||
|
then
|
||||||
|
ewarn "Data found in directories of previous version calculate-server"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /var/calculate/server-data/mail/imap ];
|
||||||
|
then
|
||||||
|
if ! [ -d /var/calculate/server-data/mail~ ];
|
||||||
|
then
|
||||||
|
if mv /var/calculate/server-data/mail/imap \
|
||||||
|
/var/calculate/server-data/mail~ && \
|
||||||
|
rmdir /var/calculate/server-data/mail && \
|
||||||
|
mv /var/calculate/server-data/mail~ \
|
||||||
|
/var/calculate/server-data/mail;
|
||||||
|
then
|
||||||
|
ewarn
|
||||||
|
ewarn "Data from /var/calculate/server-data/mail/imap"
|
||||||
|
ewarn "was moved to /var/calculate/server-data/mail"
|
||||||
|
MAILUPDATE="TRUE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ! [ "${MAILUPDATE}" == "TRUE" ];
|
||||||
|
then
|
||||||
|
eerror "Cannot move /var/calculate/server-data/mail/imap"
|
||||||
|
eerror "Please manualy move /var/calculate/server-data/mail/imap"
|
||||||
|
eerror "to /var/calculate/server-data/mail"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /var/calculate/server-data/samba/win/profiles ];
|
||||||
|
then
|
||||||
|
SAMBAUPDATE=""
|
||||||
|
if ! [ -d /var/calculate/server-data/samba/profiles/win ];
|
||||||
|
then
|
||||||
|
if mkdir -p /var/calculate/server-data/samba/profiles && \
|
||||||
|
mv /var/calculate/server-data/samba/win/profiles \
|
||||||
|
/var/calculate/server-data/samba/profiles/win;
|
||||||
|
then
|
||||||
|
ewarn
|
||||||
|
ewarn "Data from /var/calculate/server-data/samba/win/profiles"
|
||||||
|
ewarn "was moved to /var/calculate/server-data/samba/profiles/win"
|
||||||
|
SAMBAUPDATE="TRUE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ! [ "${SAMBAUPDATE}" == "TRUE" ];
|
||||||
|
then
|
||||||
|
eerror "Cannot move /var/calculate/server-data/samba/win/profiles"
|
||||||
|
eerror "Please manualy move "
|
||||||
|
eerror "/var/calculate/server-data/samba/win/profiles"
|
||||||
|
eerror "to /var/calculate/server-data/samba/profiles/win"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /var/calculate/server-data/samba/unix/profiles ]; \
|
||||||
|
then
|
||||||
|
SAMBAUPDATE=""
|
||||||
|
if ! [ -d /var/calculate/server-data/samba/profiles/unix ];
|
||||||
|
then
|
||||||
|
if mkdir -p /var/calculate/server-data/samba/profiles && \
|
||||||
|
mv -f /var/calculate/server-data/samba/unix/profiles \
|
||||||
|
/var/calculate/server-data/samba/profiles/unix;
|
||||||
|
then
|
||||||
|
rmdir /var/calculate/server-data/samba/unix
|
||||||
|
ewarn
|
||||||
|
ewarn "Data from /var/calculate/server-data/samba/unix/profiles"
|
||||||
|
ewarn "was moved to /var/calculate/server-data/samba/profiles/unix"
|
||||||
|
SAMBAUPDATE="TRUE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ! [ "${SAMBAUPDATE}" == "TRUE" ];
|
||||||
|
then
|
||||||
|
eerror "Cannot move /var/calculate/server-data/samba/unix/profiles"
|
||||||
|
eerror "Please manualy move "
|
||||||
|
eerror "/var/calculate/server-data/samba/unix/profiles"
|
||||||
|
eerror "to /var/calculate/server-data/samba/profiles/unix"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /var/calculate/server-data/samba/win/netlogon ];
|
||||||
|
then
|
||||||
|
SAMBAUPDATE=""
|
||||||
|
if ! [ -d /var/calculate/server-data/samba/netlogon ];
|
||||||
|
then
|
||||||
|
if mv -f /var/calculate/server-data/samba/win/netlogon \
|
||||||
|
/var/calculate/server-data/samba/netlogon;
|
||||||
|
then
|
||||||
|
rmdir /var/calculate/server-data/samba/win
|
||||||
|
ewarn
|
||||||
|
ewarn "Data form /var/calculate/server-data/samba/win/netlogon"
|
||||||
|
ewarn "was moved to /var/calculate/server-data/samba/netlogon"
|
||||||
|
SAMBAUPDATE="TRUE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ! [ "${SAMBAUPDATE}" == "TRUE" ];
|
||||||
|
then
|
||||||
|
eerror "Cannot move /var/calculate/server-data/samba/win/netlogon"
|
||||||
|
eerror "Please manualy move "
|
||||||
|
eerror "/var/calculate/server-data/samba/win/netlogon"
|
||||||
|
eerror "/var/calculate/server-data/samba/netlogon"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${MAILUPDATE}" == "TRUE" ];
|
||||||
|
then
|
||||||
|
ewarn
|
||||||
|
ewarn "Please update mail service by the command:"
|
||||||
|
ewarn "\tcl-update mail"
|
||||||
|
fi
|
||||||
|
if [ "${SAMBAUPDATE}" == "TRUE" ];
|
||||||
|
then
|
||||||
|
ewarn
|
||||||
|
ewarn "Please update samba service by the command:"
|
||||||
|
ewarn "\tcl-update samba"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ewarn
|
||||||
|
ewarn "WARNING!!! If you have the samba service, then update it by the command:"
|
||||||
|
ewarn "\tcl-update samba"
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
commit 29425ac4e201ff5702d8d7adea55028ce3d2749b
|
||||||
|
Author: Хирецкий Михаил <mh@calculate.ru>
|
||||||
|
Date: Fri Mar 30 11:09:57 2012 +0400
|
||||||
|
|
||||||
|
Получение MAC и IP адресов без утилиты ifconfig.
|
||||||
|
|
||||||
|
diff --git a/pym/cl_ldap.py b/pym/cl_ldap.py
|
||||||
|
index 385ccdf..e286eda 100644
|
||||||
|
--- a/pym/cl_ldap.py
|
||||||
|
+++ b/pym/cl_ldap.py
|
||||||
|
@@ -21486,30 +21486,11 @@ network %s")%net)
|
||||||
|
|
||||||
|
def getMacInIp(self, ip):
|
||||||
|
"""Находит mac адрес по ip адресу"""
|
||||||
|
- netInterfaces=cl_utils.getdirlist("/sys/class/net/")
|
||||||
|
- flagFound = False
|
||||||
|
- for i in netInterfaces:
|
||||||
|
- execStr = "/sbin/ifconfig %s"%i
|
||||||
|
- res = self.execProg(execStr, None, False)
|
||||||
|
- if not res:
|
||||||
|
- break
|
||||||
|
- mac = ""
|
||||||
|
- for line in res:
|
||||||
|
- sMac = re.search('HWaddr\s+(([0-9a-f]{2}:){5}[0-9a-f]{2})',\
|
||||||
|
- line)
|
||||||
|
- if sMac:
|
||||||
|
- # mac адрес
|
||||||
|
- mac = sMac.groups()[0]
|
||||||
|
- continue
|
||||||
|
- sIP = re.search('addr:([0-9\.]+).+Bcast:', line)
|
||||||
|
- if sIP:
|
||||||
|
- Ip = sIP.groups()[0]
|
||||||
|
- if ip == Ip and mac:
|
||||||
|
- flagFound = True
|
||||||
|
- break
|
||||||
|
- if not flagFound:
|
||||||
|
- mac = ""
|
||||||
|
- return mac
|
||||||
|
+ for iface in cl_utils.getInterfaces():
|
||||||
|
+ mac,iface_ip = cl_utils.getMac(iface),cl_utils.getIp(iface)
|
||||||
|
+ if iface_ip == ip and mac:
|
||||||
|
+ return mac.lower()
|
||||||
|
+ return ""
|
||||||
|
|
||||||
|
def setupDhcpServer(self, options):
|
||||||
|
"""Начальная настройка DHCP сервиса"""
|
@ -0,0 +1,36 @@
|
|||||||
|
# Copyright 1999-2012 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: $
|
||||||
|
|
||||||
|
EAPI=3
|
||||||
|
|
||||||
|
DESCRIPTION="Calculate Utilities meta package"
|
||||||
|
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 x86"
|
||||||
|
IUSE="
|
||||||
|
cl_assemble
|
||||||
|
cl_builder
|
||||||
|
cl_client
|
||||||
|
cl_desktop
|
||||||
|
cl_installgui
|
||||||
|
cl_server
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPEND="${RDEPEND}
|
||||||
|
!sys-apps/calculate-templates
|
||||||
|
=sys-apps/calculate-install-2.2.28-r1
|
||||||
|
=sys-apps/calculate-lib-2.2.28-r5
|
||||||
|
=sys-apps/calculate-i18n-2.2.28
|
||||||
|
|
||||||
|
cl_assemble? ( =sys-apps/calculate-assemble-2.2.28-r1 )
|
||||||
|
cl_builder? ( =sys-apps/calculate-builder-2.2.28 )
|
||||||
|
cl_client? ( =sys-apps/calculate-client-2.2.28-r1 )
|
||||||
|
cl_desktop? ( =sys-apps/calculate-desktop-2.2.28 )
|
||||||
|
cl_installgui? ( =app-misc/calculate-install-gui-2.2.28 )
|
||||||
|
|
||||||
|
cl_server? ( =sys-apps/calculate-server-2.1.15-r5 )
|
||||||
|
"
|
Loading…
Reference in new issue