aboutsummaryrefslogtreecommitdiffstats
path: root/cad
diff options
context:
space:
mode:
authorpgollucci <pgollucci@FreeBSD.org>2010-02-13 06:17:21 +0800
committerpgollucci <pgollucci@FreeBSD.org>2010-02-13 06:17:21 +0800
commitfcdc5182eeeb92379d91934a20911072824872ba (patch)
treeaaf6c2428daf6711a22128a725707d85bac84a91 /cad
parent18347a67c03861759d4881cdaa8ed224bb8ed5d4 (diff)
downloadfreebsd-ports-gnome-fcdc5182eeeb92379d91934a20911072824872ba.tar.gz
freebsd-ports-gnome-fcdc5182eeeb92379d91934a20911072824872ba.tar.zst
freebsd-ports-gnome-fcdc5182eeeb92379d91934a20911072824872ba.zip
SALOME is a free software that provides a generic platform for Pre
and Post-Processing for numerical simulation. +Supports interoperability between CAD modeling and computation software (CAD-CAE link) +Makes easier the integration of new components on heterogeneous systems for numerical computation +Sets the priority to multi-physics coupling between computation software +Provides a generic user interface, user-friendly and efficient, which helps to reduce the costs and delays of carrying out the studies +Reduces training time to the specific time for learning the software solution which has been based on this platform +All functionalities are accessible through the programmatic integrated Python console This package contains meta-port. WWW: http://www.salome-platform.org - Stas Timokhin devel@stasyan.com PR: ports/143469 Submitted by: Stas Timokhin <devel at stasyan.com>
Diffstat (limited to 'cad')
-rw-r--r--cad/Makefile1
-rw-r--r--cad/salome/Makefile80
-rw-r--r--cad/salome/Makefile.ext291
-rw-r--r--cad/salome/distinfo3
-rw-r--r--cad/salome/pkg-descr19
5 files changed, 394 insertions, 0 deletions
diff --git a/cad/Makefile b/cad/Makefile
index 9c2eda5664cc..7c49554d5650 100644
--- a/cad/Makefile
+++ b/cad/Makefile
@@ -72,6 +72,7 @@
SUBDIR += qfsm
SUBDIR += qmls
SUBDIR += qucs
+ SUBDIR += salome
SUBDIR += salome-geom
SUBDIR += salome-gui
SUBDIR += salome-kernel
diff --git a/cad/salome/Makefile b/cad/salome/Makefile
new file mode 100644
index 000000000000..7ae6b98fe36e
--- /dev/null
+++ b/cad/salome/Makefile
@@ -0,0 +1,80 @@
+# New ports collection makefile for: cad/salome
+# Date created: 16 Oct 2009
+# Whom: Stas Timokhin <devel@stasyan.com>
+#
+# $FreeBSD$
+
+PORTNAME= salome
+PORTVERSION= 5.1.3
+CATEGORIES= cad science
+MASTER_SITES= http://www.stasyan.com/devel/distfiles/
+DISTNAME= src5.1.3
+DIST_SUBDIR= ${PORTNAME}
+.if !defined(PKGNAMESUFFIX)
+EXTRACT_ONLY= #none
+.endif
+
+MAINTAINER= devel@stasyan.com
+
+OPTIONS= \
+ GEOM "GEOM module" on \
+ MED "MED module" on \
+ SMESH "SMESH module (require MED & GEOM)" on \
+ VISU "VISU module (require MED)" on \
+ LIGHT "LIGHT module" on \
+ YACS "Yacs module" on \
+ MULTIPR "Multipr module" on \
+ RANDOMIZER "Randomizer module" on \
+ SIERPINSKY "Sierpinsky module" on \
+ CPPUNIT "build with C++ unit testing framework" off \
+ MPI "build with support parrallel calculation" off
+
+RESOURCEDIR= ${DATADIR}/resources
+
+.include <bsd.port.options.mk>
+
+.if !defined(PKGNAMESUFFIX)
+COMMENT= Metaport for cad/salome
+
+NO_BUILD= yes
+
+.include <bsd.port.pre.mk>
+
+RUN_DEPENDS+= ${RESOURCEDIR}/kernel:${PORTSDIR}/cad/salome-kernel \
+ ${RESOURCEDIR}/gui:${PORTSDIR}/cad/salome-gui
+
+.if defined(WITH_GEOM)
+RUN_DEPENDS+= ${RESOURCEDIR}/geom:${PORTSDIR}/cad/salome-geom
+.endif
+.if defined(WITH_LIGHT)
+RUN_DEPENDS+= ${RESOURCEDIR}/light:${PORTSDIR}/cad/salome-light
+.endif
+.if defined(WITH_YACS)
+RUN_DEPENDS+= ${RESOURCEDIR}/yacs:${PORTSDIR}/cad/salome-yacs
+.endif
+.if defined(WITH_RANDOMIZER)
+RUN_DEPENDS+= ${RESOURCEDIR}/randomizer:${PORTSDIR}/cad/salome-randomizer
+.endif
+.if defined(WITH_VISU)
+RUN_DEPENDS+= ${RESOURCEDIR}/visu:${PORTSDIR}/cad/salome-visu
+.endif
+.if defined(WITH_MED)
+RUN_DEPENDS+= ${RESOURCEDIR}/med:${PORTSDIR}/cad/salome-med
+.endif
+.if defined(WITH_SIERPINSKY)
+RUN_DEPENDS+= ${RESOURCEDIR}/sierpinsky:${PORTSDIR}/cad/salome-sierpinsky
+.endif
+.if defined(WITH_SMESH)
+RUN_DEPENDS+= ${RESOURCEDIR}/smesh:${PORTSDIR}/cad/salome-smesh
+.endif
+.if defined(WITH_MULTIPR)
+RUN_DEPENDS+= ${RESOURCEDIR}/multipr:${PORTSDIR}/cad/salome-multipr
+.endif
+
+do-install:
+ ${DO_NADA}
+
+.include <bsd.port.post.mk>
+.else
+.include "${MASTERDIR}/Makefile.ext"
+.endif
diff --git a/cad/salome/Makefile.ext b/cad/salome/Makefile.ext
new file mode 100644
index 000000000000..08a0c0a45faf
--- /dev/null
+++ b/cad/salome/Makefile.ext
@@ -0,0 +1,291 @@
+COMMENT= ${SAL_MODULE_UPPER} module of Salome platform
+
+USE_PYTHON= 2.4+
+USE_GMAKE= yes
+USE_LDCONFIG= yes
+SAL_MODULE= ${PKGNAMESUFFIX:S/-//}
+#.if ${SAL_MODULE} == "med" || ${SAL_MODULE} == "smesh" || ${SAL_MODULE} == "visu" || ${SAL_MODULE} == "sierpinsky" || ${SAL_MODULE} == "multipr"
+.if !${SAL_MODULE} == "gui"
+USE_FORTRAN=yes
+USE_GCC= 4.4
+.else
+USE_GCC= 4.5
+.endif
+#SAL_MODULE_UPPER= `${ECHO} ${SAL_MODULE} | ${AWK} '{ print(toupper($$1)); }'`
+#SAL_MODULE_UPPER= YACS
+
+USE_TK= 84+
+PLIST= ../salome${PKGNAMESUFFIX}/pkg-plist
+
+#dependencies between modules
+KERNEL_DEPEND= ""
+GUI_DEPEND= KERNEL QWT
+GEOM_DEPEND= KERNEL GUI
+MED_DEPEND= KERNEL GUI MED2
+SMESH_DEPEND= KERNEL GUI MED GEOM
+VISU_DEPEND= KERNEL GUI MED
+LIGHT_DEPEND= KERNEL GUI
+YACS_DEPEND= KERNEL GUI
+RANDOMIZER_DEPEND= KERNEL GUI
+SIERPINSKY_DEPEND= KERNEL GUI VISU MED RANDOMIZER
+FILTER_DEPEND= KERNEL GUI MED
+MULTIPR_DEPEND= KERNEL GUI MED MED2 HDF5 CAS QT OMNIORB
+
+
+RELEASENAME= 5.1.3
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --prefix=${PREFIX}
+CONFIGURE_ARGS+= --enable-debug
+CONFIGURE_ENV+= MACHINE=${OPSYS:U}
+#CXXFLAGS+= -L${LOCALBASE}/lib -I/usr/include -I${LOCALBASE}/include -D__freebsd__ -DFREEBSD -DHAVE_IOSTREAM -DHAVE_LIMITS_H -DHAVE_IOMANIP -DMPICH_IGNORE_CXX_SEEK
+CPPFLAGS+= -L${LOCALBASE}/lib -I/usr/include -I${LOCALBASE}/include -D__freebsd__ -DFREEBSD -DHAVE_IOSTREAM -DHAVE_LIMITS_H -DHAVE_IOMANIP -DMPICH_IGNORE_CXX_SEEK
+CXXFLAGS+= -ffriend-injection -fno-inline -fpermissive -L${LOCALBASE}/lib -L${LOCALBASE}/lib/salome
+CONFIGURE_SCRIPT= ../configure
+PATCH_WRKSRC= ${WRKDIR}/${DISTNAME}/${SAL_MODULE_UPPER}_SRC_${RELEASENAME}
+WRKSRC= ${PATCH_WRKSRC}
+CONFIGURE_WRKSRC= ${WRKSRC}/${SAL_MODULE_UPPER}_build
+BUILD_WRKSRC= ${WRKSRC}/${SAL_MODULE_UPPER}_build
+INSTALL_WRKSRC= ${BUILD_WRKSRC}
+EXTRACT_AFTER_ARGS= | ${TAR} -xf - ${DISTNAME}/${SAL_MODULE_UPPER}_SRC_${RELEASENAME}/*
+PATCHDIR= ${MASTERDIR}/../salome-${SAL_MODULE}/files/
+
+#Depend from other modules
+.if !${SAL_MODULE} == "kernel"
+.for D in ${${SAL_MODULE_UPPER}_DEPEND}
+ CONFIGURE_ENV+= ${D}_ROOT_DIR=${LOCALBASE}
+ CPPFLAGS+= -L${LOCALBASE}/lib/salome
+.endfor
+.endif
+
+#Depndency from KERNEL module
+.if !${SAL_MODULE} == "kernel"
+BUILD_DEPENDS+= ${RESOURCEDIR}/kernel:${PORTSDIR}/cad/salome-kernel
+RUN_DEPENDS+= ${RESOURCEDIR}/kernel:${PORTSDIR}/cad/salome-kernel
+.endif
+
+
+#Depndency from GUI module
+.if !${SAL_MODULE} == "kernel" && !${SAL_MODULE} == "gui"
+BUILD_DEPENDS+= ${RESOURCEDIR}/gui:${PORTSDIR}/cad/salome-gui
+RUN_DEPENDS+= ${RESOURCEDIR}/gui:${PORTSDIR}/cad/salome-gui
+.endif
+
+#Depndency from MED module
+.if ${SAL_MODULE} == "smesh" || ${SAL_MODULE} == "sierpinsky" || ${SAL_MODULE} == "multipr" || ${SAL_MODULE} == "visu"
+BUILD_DEPENDS+= ${RESOURCEDIR}/med:${PORTSDIR}/cad/salome-med
+RUN_DEPENDS+= ${RESOURCEDIR}/med:${PORTSDIR}/cad/salome-med
+.endif
+
+#Depndency from GEOM module
+.if ${SAL_MODULE} == "smesh"
+BUILD_DEPENDS+= ${RESOURCEDIR}/geom:${PORTSDIR}/cad/salome-geom
+RUN_DEPENDS+= ${RESOURCEDIR}/geom:${PORTSDIR}/cad/salome-geom
+.endif
+
+#Dependency for SIERPINSKY
+.if ${SAL_MODULE} == "sierpinsky"
+BUILD_DEPENDS+= ${RESOURCEDIR}/visu:${PORTSDIR}/cad/salome-visu \
+ ${RESOURCEDIR}/randomizer:${PORTSDIR}/cad/salome-randomizer
+RUN_DEPENDS+= ${RESOURCEDIR}/visu:${PORTSDIR}/cad/salome-visu \
+ ${RESOURCEDIR}/randomizer:${PORTSDIR}/cad/salome-randomizer
+.endif
+
+
+###########################################################################
+#Dependency from other ports
+###########################################################################
+#Dependency from autotools
+USE_AUTOTOOLS= autoconf:262 automake:15 libtool:22
+
+#Dependency from HDF5
+.if !${SAL_MODULE} == "randomizer" && !${SAL_MODULE} == "yacs" && !${SAL_MODULE} == "hello" && !${SAL_MODULE} == "pyhello"
+LIB_DEPENDS+= hdf5.0:${PORTSDIR}/science/hdf5
+CONFIGURE_ARGS+= --with-hdf5=${LOCALBASE}
+.endif
+
+#Dependency from Opencascade
+.if !${SAL_MODULE} == "kernel"
+LIB_DEPENDS+= TKernel.0:${PORTSDIR}/cad/opencascade
+CASROOT= ${LOCALBASE}/OpenCAS/ros
+CONFIGURE_ENV+= CASROOT=${CASROOT}
+#CXXFLAGS+= -I${CASROOT}/inc
+.endif
+
+#Dependency from swig
+.if !${SAL_MODULE} == "randomizer" && !${SAL_MODULE} == "light" && !${SAL_MODULE} == "multipr"
+BUILD_DEPENDS+= swig:${PORTSDIR}/devel/swig13
+.endif
+
+#Dependency from doxygen
+BUILD_DEPENDS+= doxygen:${PORTSDIR}/devel/doxygen
+
+#Dependency from libxml2
+.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "kernel" || ${SAL_MODULE} == "med" || ${SAL_MODULE} == "yacs"
+LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
+CPPFLAGS+= -I${LOCALBASE}/include/libxml2
+CONFIGURE_ENV+= LIBXML_DIR=${LOCALBASE}
+.endif
+
+#Dependency from boost
+.if !${SAL_MODULE} == "light" && !${SAL_MODULE} == "randomizer" && !${SAL_MODULE} == "pycalculator" && !${SAL_MODULE} == "light"
+CONFIGURE_ENV+= BOOSTDIR=${LOCALBASE}
+LIB_DEPENDS+= boost_thread:${PORTSDIR}/devel/boost-all
+###python boost support off by default
+RUN_DEPENDS+= ${LOCALBASE}/lib/libboost_python.so:${PORTSDIR}/devel/boost-python-libs
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libboost_python.so:${PORTSDIR}/devel/boost-python-libs
+.endif
+
+#Dependency from qt4
+.if !${SAL_MODULE} == "kernel" && !${SAL_MODULE} == "randomizer"
+USE_QT_VER= 4
+CONFIGURE_ENV+= QTDIR=${LOCALBASE}
+QTFLAGS+= -I${LOCALBASE}/include/qt4 -L${LOCALBASE}/lib/qt4
+QT_COMPONENTS= gui opengl svg xml qmake_build moc_build rcc_build uic_build linguist
+.endif
+
+#Dependency from qscintilla2
+.if ${SAL_MODULE} == "yacs"
+LIB_DEPEDNS+= qscintilla2.5:${PORTSDIR}/devel/qscintilla2
+CONFIGURE_ARGS+= --with-qsci4-libraries=${QT_LIBDIR} --with-qsci4-includes=${QT_INCDIR}
+.endif
+
+
+#Dependency from vtk
+.if !${SAL_MODULE} == "kernel" && !${SAL_MODULE} == "randomizer"
+LIB_DEPENDS+= vtkCommon.5:${PORTSDIR}/math/vtk5
+CONFIGURE_ENV+= VTKHOME=${LOCALBASE}
+.endif
+
+#Dependency from qwt5
+.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "component" || ${SAL_MODULE} == "smesh" || ${SAL_MODULE} == "visu" || ${SAL_MODULE} == "filter"
+LIB_DEPENDS+= qwt.5:${PORTSDIR}/x11-toolkits/qwt5
+#CONFIGURE_ENV+= QWTHOME=${LOCALBASE}
+CONFIGURE_ARGS+= --with-qwt=${LOCALBASE}
+CPPFLAGS+= -I/${LOCALBASE}/include/qwt/
+.endif
+
+#Dependency from omniORB & py-omniorb
+.if !${SAL_MODULE} == "light"
+LIB_DEPENDS+= omniORB4.1:${PORTSDIR}/devel/omniORB
+RUN_DEPENDS+= ${LOCALBASE}/include/omniORBpy.h:${PORTSDIR}/devel/py-omniorb
+RUN_DEPENDS+= notifd:${PORTSDIR}/devel/omniNotify
+.endif
+
+#Dependency from sip
+.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "component"
+BUILD_DEPENDS+= sip:${PORTSDIR}/devel/py-sip
+RUN_DEPENDS+= sip:${PORTSDIR}/devel/py-sip
+.endif
+
+#Dependency from Pyqt4
+.if ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "component"
+CONFIGURE_ENV+= PYQTDIR=${PYTHON_SITELIBDIR} PYQT_SIPS=${LOCALBASE}/share/py-sip
+RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtGui.so:${PORTSDIR}/x11-toolkits/py-qt4-gui
+BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtGui.so:${PORTSDIR}/x11-toolkits/py-qt4-gui
+RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtXml.so:${PORTSDIR}/textproc/py-qt4-xml
+BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtXml.so:${PORTSDIR}/textproc/py-qt4-xml
+.endif
+
+#Dependency from metis & scotsch
+.if ${SAL_MODULE} == "med"
+BUILD_DEPENDS+= kmetis:${PORTSDIR}/math/metis \
+ gmap:${PORTSDIR}/cad/scotch
+RUN_DEPENDS+= kmetis:${PORTSDIR}/math/metis \
+ gmap:${PORTSDIR}/cad/scotch
+CONFIGURE_ENV+= METISDIR=${LOCALBASE} SCOTCHDIR=${LOCALBASE}
+CPPFLAGS+= -I${LOCALBASE}/include/metis
+.endif
+
+#Dependency from graphviz
+BUILD_DEPENDS+= gvgen:${PORTSDIR}/graphics/graphviz
+
+#Dependency from MED
+.if ${SAL_MODULE} == "med"
+LIB_DEPENDS+= med.2:${PORTSDIR}/french/med
+CONFIGURE_ENV+= MED2HOME=${LOCALBASE}
+.endif
+
+.if ${SAL_MODULE} == "yacs"
+LIB_DEPENDS+= argp.0:${PORTSDIR}/devel/argp-standalone
+LIB_DEPENDS+= expat.6:${PORTSDIR}/textproc/expat2
+LDFLAGS+= -largp
+.endif
+
+#Don't strip binaries
+.if ${SAL_MODULE} == "multipr"
+STRIP=
+.endif
+
+#optionally dependency from cppunit
+.if ${SAL_MODULE} == "kernel" || ${SAL_MODULE} == "gui" || ${SAL_MODULE} == "yacs" || ${SAL_MODULE} == "med"
+.if defined(WITH_CPPUNIT)
+CONFIGURE_ARGS+= --with-cppunit=${LOCALBASE} --with-cppunit_inc=${LOCALBASE}/include/cppunit
+BUILD_DEPENDS+= cppunit-config:${PORTSDIR}/devel/cppunit
+PLIST_SUB+= CPPUNIT=""
+. else
+CONFIGURE_ARGS+= --with-cppunit=no
+PLIST_SUB+= CPPUNIT="@comment "
+.endif
+.endif
+
+.if ${SAL_MODULE} == "kernel" || ${SAL_MODULE} == "med"
+.if defined(WITH_MPI)
+BUILD_DEPENDS+= ${LOCALBASE}/mpich2/bin/mpicc:${PORTSDIR}/net/mpich2
+RUN_DEPENDS+= ${LOCALBASE}/mpich2/lib/libmpich.so:${PORTSDIR}/net/mpich2
+CONFIGURE_ARGS+= --with-mpich=${LOCALBASE}/mpich2 --with-mpi=${LOCALBASE}/mpich2
+PLIST_SUB+= MPI=""
+. else
+#CONFIGURE_ARGS+= --with-mpich=NO --with-mpi=NO
+PLIST_SUB+= MPI="@comment "
+.endif
+.endif
+
+CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}" CXXFLAGS="${QSCIFLAGS} ${QTFLAGS} ${CXXFLAGS} " CPPFLAGS="${CPPFLAGS}"
+
+.include <bsd.port.pre.mk>
+
+#MAKE_JOBS_SAFE= yes
+
+.if ${SAL_MODULE} == "kernel"
+. if ${PYTHON_REL} > 260
+ post-patch:
+ ${REINPLACE_CMD} 's|fromlist=None)|fromlist=None, level=-1)|g' ${WRKSRC}/src/KERNEL_PY/import_hook.py
+. endif
+.endif
+
+.if ${SAL_MODULE} == "kernel"
+ pre-patch:
+ ${MKDIR} ${WRKSRC}/src/Communication/rpc
+ ${CP} /usr/include/rpc/xdr.h ${WRKSRC}/src/Communication/rpc
+ ${REINPLACE_CMD} 's|__rpc_xdr|XDR|g' ${WRKSRC}/src/Communication/rpc/xdr.h
+.endif
+
+
+ pre-configure:
+# SAL_MODULE_UPPER=`${ECHO} ${SAL_MODULE} | ${AWK} '{ print(toupper($1)); }'`; \
+ MMDEPENDS="${${SAL_MODULE_UPPER}_DEPEND}"; \
+ for D in $${MMDEPENDS}; do \
+ export "$$D"_ROOT_DIR=${LOCALBASE}; \
+ if test "$$D"="MED2"; then \
+ export MED2HOME=${LOCALBASE}; \
+ fi; \
+ if test "$$D"="QWT"; then \
+ export QWTHOME=${LOCALBASE}; \
+ fi; \
+ if test "$$D"="HDF5HOME"; then \
+ export HDF5HOME=${LOCALBASE}; \
+ fi; \
+ if test "$$D"="CASROOT"; then \
+ export CASROOT=${CASROOT}; \
+ fi; \
+ if test "$$D"="QT"; then \
+ export QTDIR=${LOCALBASE}; \
+ fi; \
+ if test "$$D"="OMNIORB"; then \
+ export OMNIORBDIR=${LOCALBASE}; \
+ fi; \
+ echo "$$D"_ROOT_DIR; \
+ done; \
+ MACHINE=${OPSYS:U}; export MACHINE; set ${SAL_MODULE_UPPER}_ROOT_DIR ${PREFIX}; export ${SAL_MODULE_UPPER}_ROOT_DIR; cd ${WRKSRC}; ${MKDIR} ${BUILD_WRKSRC}; ${SH} ./build_configure
+
+.include <bsd.port.post.mk>
diff --git a/cad/salome/distinfo b/cad/salome/distinfo
new file mode 100644
index 000000000000..01f42435a057
--- /dev/null
+++ b/cad/salome/distinfo
@@ -0,0 +1,3 @@
+MD5 (salome/src5.1.3.tar.gz) = 8564d0a7ef94d4d6d4b4c82ade84b1b0
+SHA256 (salome/src5.1.3.tar.gz) = 78ce2acc9cfa474e030723674f4420c420fd2de926b1939455c3716f1fd48a2b
+SIZE (salome/src5.1.3.tar.gz) = 106470135
diff --git a/cad/salome/pkg-descr b/cad/salome/pkg-descr
new file mode 100644
index 000000000000..b3d55a00af95
--- /dev/null
+++ b/cad/salome/pkg-descr
@@ -0,0 +1,19 @@
+SALOME is a free software that provides a generic platform for Pre
+and Post-Processing for numerical simulation.
++Supports interoperability between CAD modeling and
+ computation software (CAD-CAE link)
++Makes easier the integration of new components on heterogeneous systems
+ for numerical computation
++Sets the priority to multi-physics coupling between computation software
++Provides a generic user interface, user-friendly and efficient,
+ which helps to reduce the costs and delays of carrying out the studies
++Reduces training time to the specific time for learning the software solution
+ which has been based on this platform
++All functionalities are accessible through the programmatic
+ integrated Python console
+
+This package contains meta-port.
+
+WWW: http://www.salome-platform.org
+- Stas Timokhin
+devel@stasyan.com