From 5a85b181d3c85bdd02ace0204787175558fa3abb Mon Sep 17 00:00:00 2001 From: Toyohisa Kameyama Date: Fri, 18 Mar 2022 01:58:51 +0900 Subject: octa: new package. (#29333) --- .../repos/builtin/packages/octa/aarch64.patch | 10 +++ var/spack/repos/builtin/packages/octa/jogl.patch | 90 ++++++++++++++++++++++ .../packages/octa/narrowed-initialize.patch | 30 ++++++++ var/spack/repos/builtin/packages/octa/package.py | 55 +++++++++++++ 4 files changed, 185 insertions(+) create mode 100644 var/spack/repos/builtin/packages/octa/aarch64.patch create mode 100644 var/spack/repos/builtin/packages/octa/jogl.patch create mode 100644 var/spack/repos/builtin/packages/octa/narrowed-initialize.patch create mode 100644 var/spack/repos/builtin/packages/octa/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/octa/aarch64.patch b/var/spack/repos/builtin/packages/octa/aarch64.patch new file mode 100644 index 0000000000..a41f8afa7a --- /dev/null +++ b/var/spack/repos/builtin/packages/octa/aarch64.patch @@ -0,0 +1,10 @@ +--- spack-src/GOURMET/src/pfgetsystem.org 2022-03-01 18:06:07.000000000 +0900 ++++ spack-src/GOURMET/src/pfgetsystem 2022-03-01 18:08:26.000000000 +0900 +@@ -159,6 +159,7 @@ + ppc*) S='linux_ppc' ;; + hp_pa*) S='linux_hppa' ;; + ia64) S='linux_ia64' ;; ++ aarch64) S='linux_aarch64' ;; + esac + ;; + FreeBSD) diff --git a/var/spack/repos/builtin/packages/octa/jogl.patch b/var/spack/repos/builtin/packages/octa/jogl.patch new file mode 100644 index 0000000000..33dc371082 --- /dev/null +++ b/var/spack/repos/builtin/packages/octa/jogl.patch @@ -0,0 +1,90 @@ +diff -ru spack-src/GOURMET/src/java/platform/show.org/JOGLCanvasBase.java spack-src/GOURMET/src/java/platform/show/JOGLCanvasBase.java +--- spack-src/GOURMET/src/java/platform/show.org/JOGLCanvasBase.java 2022-03-02 10:49:48.000000000 +0900 ++++ spack-src/GOURMET/src/java/platform/show/JOGLCanvasBase.java 2022-03-02 10:50:36.000000000 +0900 +@@ -7,24 +7,24 @@ + package platform.show; + + /* JOGL v2.2.4 */ +-import javax.media.opengl.GL; +-import javax.media.opengl.GLAutoDrawable; ++//import javax.media.opengl.GL; ++//import javax.media.opengl.GLAutoDrawable; + // JOGL V1.* + //import javax.media.opengl.GLCanvas; + // JOGL V2.* + //import javax.media.opengl.awt.GLCanvas; +-import javax.media.opengl.awt.GLJPanel; ++//import javax.media.opengl.awt.GLJPanel; + // JOGL V1.* or V2.* +-import javax.media.opengl.GLCapabilities; +-import javax.media.opengl.GLContext; +-import javax.media.opengl.GLEventListener; ++//import javax.media.opengl.GLCapabilities; ++//import javax.media.opengl.GLContext; ++//import javax.media.opengl.GLEventListener; + // JOGL V2.* +-import javax.media.opengl.GLProfile; ++//import javax.media.opengl.GLProfile; + +-/* JOGL v2.3.2 * ++/* JOGL v2.3.2 */ + import com.jogamp.opengl.*; + import com.jogamp.opengl.awt.GLJPanel; +-*/ ++ + /** + * Common GLCanvas Class + */ +diff -ru spack-src/GOURMET/src/java/platform/show.org/JOGLCanvas.java spack-src/GOURMET/src/java/platform/show/JOGLCanvas.java +--- spack-src/GOURMET/src/java/platform/show.org/JOGLCanvas.java 2022-03-02 10:49:48.000000000 +0900 ++++ spack-src/GOURMET/src/java/platform/show/JOGLCanvas.java 2022-03-02 10:41:56.000000000 +0900 +@@ -15,14 +15,15 @@ + import java.util.LinkedList; + import java.util.List; + +-/* JOGL v2.2.4 */ ++/* JOGL v2.2.4 * + import javax.media.opengl.GLAutoDrawable; + import javax.media.opengl.GLCapabilities; ++*/ + +-/* JOGL v2.3.2 * ++/* JOGL v2.3.2 */ + import com.jogamp.opengl.GLAutoDrawable; + import com.jogamp.opengl.GLCapabilities; +-*/ ++ + import platform.util.DataDriver; + import platform.util.IndexArraySet; + import platform.util.NativeDrawObject; +diff -ru spack-src/GOURMET/src/java/platform/show.org/PickingCanvas.java spack-src/GOURMET/src/java/platform/show/PickingCanvas.java +--- spack-src/GOURMET/src/java/platform/show.org/PickingCanvas.java 2022-03-02 10:49:48.000000000 +0900 ++++ spack-src/GOURMET/src/java/platform/show/PickingCanvas.java 2022-03-02 10:41:56.000000000 +0900 +@@ -14,12 +14,13 @@ + import java.awt.event.MouseMotionListener; + import java.util.ArrayList; + +-/* JOGL v2.2.4 */ ++/* JOGL v2.2.4 * + import javax.media.opengl.GLCapabilities; ++*/ + +-/* JOGL v2.3.2 * ++/* JOGL v2.3.2 */ + import com.jogamp.opengl.GLCapabilities; +-*/ ++ + import javax.swing.SwingUtilities; + + import platform.util.IndexArraySet; +--- spack-src/GOURMET/src/java/platform/show/PickingCanvas.java.org 2022-03-02 11:50:02.000000000 +0900 ++++ spack-src/GOURMET/src/java/platform/show/PickingCanvas.java 2022-03-02 11:52:57.000000000 +0900 +@@ -341,7 +341,7 @@ + // Begin of drawing process. + if(!makeCurrent()) return null; + // for HiDPI display +- int[] scale = getCurrentSurfaceScale(new int[2]); /* int -> float in later version */ ++ float[] scale = getCurrentSurfaceScale(new float[2]); + x *= scale[0]; + y *= scale[1]; + //////////////////////////////////////////////////////// diff --git a/var/spack/repos/builtin/packages/octa/narrowed-initialize.patch b/var/spack/repos/builtin/packages/octa/narrowed-initialize.patch new file mode 100644 index 0000000000..02b83692a6 --- /dev/null +++ b/var/spack/repos/builtin/packages/octa/narrowed-initialize.patch @@ -0,0 +1,30 @@ +--- OCTA84/GOURMET/src/view3d/uogl/src/uogl_mesh.cpp.org 2022-03-02 13:39:04.000000000 +0900 ++++ OCTA84/GOURMET/src/view3d/uogl/src/uogl_mesh.cpp 2022-03-02 13:39:49.000000000 +0900 +@@ -2331,9 +2331,9 @@ + arw->_xyz[1] = (float)(arrowk.point1[1] * ss + arrowk.point2[1] * tt); + arw->_xyz[2] = (float)(arrowk.point1[2] * ss + arrowk.point2[2] * tt); + float vct[3] = { +- (vctp[0][0] * ss + vctp[1][0] * tt), +- (vctp[0][1] * ss + vctp[1][1] * tt), +- (vctp[0][2] * ss + vctp[1][2] * tt) ++ (float)(vctp[0][0] * ss + vctp[1][0] * tt), ++ (float)(vctp[0][1] * ss + vctp[1][1] * tt), ++ (float)(vctp[0][2] * ss + vctp[1][2] * tt) + }; + arw->_length = fuoglLength( vct ); + if( arw->_length <= 1e-20f ){ +--- spack-src/GOURMET/src/view3d/uogl/src/uogl_unmesh.cpp.org 2022-03-02 15:10:17.000000000 +0900 ++++ spack-src/GOURMET/src/view3d/uogl/src/uogl_unmesh.cpp 2022-03-02 15:10:56.000000000 +0900 +@@ -1475,9 +1475,9 @@ + arw->_xyz[1] = (float)(point1[1] * ss + point2[1] * arrowk.tt); + arw->_xyz[2] = (float)(point1[2] * ss + point2[2] * arrowk.tt); + float vct[3] = { +- (vector1[0] * ss + vector2[0] * arrowk.tt), +- (vector1[1] * ss + vector2[1] * arrowk.tt), +- (vector1[2] * ss + vector2[2] * arrowk.tt) ++ (float)(vector1[0] * ss + vector2[0] * arrowk.tt), ++ (float)(vector1[1] * ss + vector2[1] * arrowk.tt), ++ (float)(vector1[2] * ss + vector2[2] * arrowk.tt) + }; + arw->_length = fuoglLength( vct ); + if( arw->_length <= 1e-20f ){ diff --git a/var/spack/repos/builtin/packages/octa/package.py b/var/spack/repos/builtin/packages/octa/package.py new file mode 100644 index 0000000000..e172e2f72b --- /dev/null +++ b/var/spack/repos/builtin/packages/octa/package.py @@ -0,0 +1,55 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Octa(AutotoolsPackage): + """OCTA is an integrated simulation system for soft materials.""" + + homepage = "https://octa.jp" + url = "http://49.212.191.63/phpBB/download/file.php?id=3454&sid=3dfae182c664d1f5960d9ca63c40798a" + + version('8.4', 'b76d25f333fef76601bfe8262e9a748154280d5408ea823fa6530a6f3f86b51b', extension='tar.gz') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('libjpeg', type='link') + depends_on('libpng', type='link') + depends_on('zlib', type='link') + depends_on('jogl') + depends_on('python') + depends_on('gnuplot', type='run') + depends_on('py-numpy') + depends_on('py-scipy') + depends_on('py-numba') + + # specify for linux_aarch64 + patch('aarch64.patch', when='target=aarch64:') + # For jogl 2.3.2 or later + patch('jogl.patch') + # patch for non-constant-expression cannot be narrowed error. + patch('narrowed-initialize.patch') + + configure_directory = join_path('GOURMET', 'src') + + def patch(self): + with working_dir(self.configure_directory): + copy('jogltest.java_v232', 'jogltest.java') + + def configure_args(self): + spec = self.spec + args = ['--with-python={0}'.format(spec['python'].command), + '--with-java-home={0}'.format(spec['java'].prefix), + '--with-jogl-jar={0}'.format(spec['jogl'].prefix.lib), + '--with-jogl-lib={0}'.format(spec['jogl'].prefix.lib)] + return args + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install(join_path('GOURMET', 'bin', '*.sh'), prefix.bin) + with working_dir(self.configure_directory): + make('install', parallel=False) -- cgit v1.2.3-60-g2f50