bug#32691: OpenMolcas

2021-09-24 Thread Sarah Morgensen
Hi Eric,

Eric Brown  writes:

>> On Sep 13, 2021, at 3:01 AM, Sarah Morgensen  wrote:
>> 
>> 
>> Thanks for all your work on this package.  Did you ever make further
>> progress on this?  Are you still interested in working on getting
>> OpenMolcas in Guix?
>> 
>> —
>> Sarah
>
> Hi Sarah,
>
> I have made a new port from scratch, which I am testing currently.  It can be 
> found here:
>
> (channel
>  (name 'ecbrown-guix)
>  (url "https://ericcbrown.com/ecbrown/ecbrown-guix.git;)
>  (introduction
>   (make-channel-introduction
>"72e02daa4cf59a5e591387e299729f2509128b58"
>(openpgp-fingerprint
> "AA5F 523D FD6D 0478 8505 6A7D C1D5 F8F0 85BF 4CF3"
>
> I would appreciate any help that you might provide!
>
> Best regards,
> Eric

I'm glad to see that you've continued to work on this!

I took a look at your definition and the package it builds, and I'll
start with two things:

Syntactically, you can do something like this in your extra phase:

  (let* ((out (assoc-ref outputs "out"))
 (share (string-append out "/share/openmolcas")))

  (mkdir-p share)
  (for-each
(lambda (file)
  (rename-file file (string-append share "/" file)))
'("LICENSE" "data" ...))

and to symlink (like you allude to in the phase name):

  (symlink target name)

Looking at the actual package, it looks like there are several ".exe"
executables (which are actually ELF and runnable on Linux?) along with
matching ".prgm" files which (it looks like) are required to load and
run the executables.  Are these part of OpenMolcas itself, or are they
examples or something?  It would be best if we can avoid putting
architecture-specific files (that is, executables) in "/share".

Finally, rather than propagating python inputs, we can probably use the
'wrap' phase from python-build-system.  Adding that is a bit more
complex, but you can look at the 'nncp' package for an example of how
this is done (it uses gnu-build-system, but takes phases from
go-build-system).

Okay, that was three things, but what can you do? :)

--
Sarah





bug#32691: OpenMolcas

2021-09-13 Thread Eric Brown
> On Sep 13, 2021, at 3:01 AM, Sarah Morgensen  wrote:
> 
> 
> Thanks for all your work on this package.  Did you ever make further
> progress on this?  Are you still interested in working on getting
> OpenMolcas in Guix?
> 
> —
> Sarah

Hi Sarah,

I have made a new port from scratch, which I am testing currently.  It can be 
found here:

(channel
 (name 'ecbrown-guix)
 (url "https://ericcbrown.com/ecbrown/ecbrown-guix.git;)
 (introduction
  (make-channel-introduction
   "72e02daa4cf59a5e591387e299729f2509128b58"
   (openpgp-fingerprint
"AA5F 523D FD6D 0478 8505 6A7D C1D5 F8F0 85BF 4CF3"

I would appreciate any help that you might provide!

Best regards,
Eric








bug#32691: OpenMolcas

2021-09-13 Thread Sarah Morgensen
Hello Eric,

Eric Brown  writes:

> l...@gnu.org (Ludovic Courtès) writes:
>
>> Hi Eric,
>>
>> We’re almost there!  :-)
>>
>> I made small changes (moved comments about the patch at the top of the
>> patch; switch to ‘texlive-union’, which is much smaller than ‘texlive’),
>> leading to the attached patch.
>>
>> It’s all good, except that the file layout really doesn’t match the
>> usual conventions:
>>
>> [...]
>>
>> Ideally basis_library/ and data/ would go under share/openmolcas, while
>> CONTRIBUTORS.md and LICENSE would go to share/doc/openmolcas.  Also, it
>> would be nice to remove the ‘.exe’ extension.
>>
>> Do you think you could easily fiddle with CMake to fix these and/or
>> report it upstream?  I could apply the patch as is but I think users may
>> not be pleased by this.  WDYT?
>>
>> Thank you for your time, and sorry for the extra round trip!
>
> Hi Ludo',
>
> Thank you again. Indeed, "/" gets littered with some files that out to
> go into share. This has been noted in discussions upstream.
>
> Though we've put a bunch of work into this, I think it would be good to
> pause and see if we can make some of these changes upstream, as you
> suggest.
>
> (Also I need some time to brush up on CMake -- perhaps I can contribute
> some of these changes myself.)
>
> Warm regards,
> Eric

Thanks for all your work on this package.  Did you ever make further
progress on this?  Are you still interested in working on getting
OpenMolcas in Guix?

--
Sarah





bug#32691: OpenMolcas

2018-09-21 Thread Ludovic Courtès
Hi Eric,

Eric Brown  skribis:

> l...@gnu.org (Ludovic Courtès) writes:

[...]

>> Ideally basis_library/ and data/ would go under share/openmolcas, while
>> CONTRIBUTORS.md and LICENSE would go to share/doc/openmolcas.  Also, it
>> would be nice to remove the ‘.exe’ extension.
>>
>> Do you think you could easily fiddle with CMake to fix these and/or
>> report it upstream?  I could apply the patch as is but I think users may
>> not be pleased by this.  WDYT?
>>
>> Thank you for your time, and sorry for the extra round trip!
>
> Hi Ludo',
>
> Thank you again. Indeed, "/" gets littered with some files that out to
> go into share. This has been noted in discussions upstream.
>
> Though we've put a bunch of work into this, I think it would be good to
> pause and see if we can make some of these changes upstream, as you
> suggest.

Sounds good, let us know how it goes.

Thanks,
Ludo’.





bug#32691: OpenMolcas

2018-09-19 Thread Eric Brown
l...@gnu.org (Ludovic Courtès) writes:

> Hi Eric,
>
> We’re almost there!  :-)
>
> I made small changes (moved comments about the patch at the top of the
> patch; switch to ‘texlive-union’, which is much smaller than ‘texlive’),
> leading to the attached patch.
>
> It’s all good, except that the file layout really doesn’t match the
> usual conventions:
>
> [...]
>
> Ideally basis_library/ and data/ would go under share/openmolcas, while
> CONTRIBUTORS.md and LICENSE would go to share/doc/openmolcas.  Also, it
> would be nice to remove the ‘.exe’ extension.
>
> Do you think you could easily fiddle with CMake to fix these and/or
> report it upstream?  I could apply the patch as is but I think users may
> not be pleased by this.  WDYT?
>
> Thank you for your time, and sorry for the extra round trip!

Hi Ludo',

Thank you again. Indeed, "/" gets littered with some files that out to
go into share. This has been noted in discussions upstream.

Though we've put a bunch of work into this, I think it would be good to
pause and see if we can make some of these changes upstream, as you
suggest.

(Also I need some time to brush up on CMake -- perhaps I can contribute
some of these changes myself.)

Warm regards,
Eric





bug#32691: OpenMolcas

2018-09-17 Thread Ludovic Courtès
Hi Eric,

We’re almost there!  :-)

Eric Brown  skribis:

> Thank you for your fixes! I've attached a revised patch. I'm well beyond
> my comfort zone, so I hope it applies cleanly and works.
>
> The default location of pymolcas is a little sketchy, being placed in
> the first writable location in PATH, and I believe will not be fixed
> upstream:
>
> https://gitlab.com/Molcas/OpenMolcas/issues/70
>
> I have added comments to the chemistry.scm file.

I made small changes (moved comments about the patch at the top of the
patch; switch to ‘texlive-union’, which is much smaller than ‘texlive’),
leading to the attached patch.

It’s all good, except that the file layout really doesn’t match the
usual conventions:

--8<---cut here---start->8---
$ find /gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/basis_library
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/basis_library/TZ
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/basis_library/AUG-PC-4

[...]

/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/sbin
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/sbin/help_basis
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/sbin/help_doc
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/lib
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/lib/libmolcas.a
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/bin
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/bin/ffpt.exe
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/bin/loprop.exe

[...]

/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/data/quater.prgm
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/data/rasscf.prgm
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/.molcasversion
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/molcas.rte
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/CONTRIBUTORS.md
/gnu/store/6cj9n2rwsxwk582xqz2hxzlk520ghvm9-openmolcas-18.09/LICENSE
--8<---cut here---end--->8---

Ideally basis_library/ and data/ would go under share/openmolcas, while
CONTRIBUTORS.md and LICENSE would go to share/doc/openmolcas.  Also, it
would be nice to remove the ‘.exe’ extension.

Do you think you could easily fiddle with CMake to fix these and/or
report it upstream?  I could apply the patch as is but I think users may
not be pleased by this.  WDYT?

Thank you for your time, and sorry for the extra round trip!

Ludo’.

>From b4caef67aaae349e0aa77fc22517872ff8ca79cb Mon Sep 17 00:00:00 2001
From: Eric Brown 
Date: Fri, 14 Sep 2018 09:27:35 -0500
Subject: [PATCH] gnu: Add openmolcas.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/chemistry.scm (openmolcas): New variable.
* gnu/packages/patches/openmolcas-pymolcas-openblas.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Ludovic Courtès 
---
 gnu/local.mk  |  1 +
 gnu/packages/chemistry.scm| 51 ++
 .../openmolcas-pymolcas-openblas.patch| 92 +++
 3 files changed, 144 insertions(+)
 create mode 100644 gnu/packages/patches/openmolcas-pymolcas-openblas.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index d37a193ad..4c5a1fbd4 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1006,6 +1006,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openldap-CVE-2017-9287.patch		\
+  %D%/packages/patches/openmolcas-pymolcas-openblas.patch	\
   %D%/packages/patches/openocd-nrf52.patch			\
   %D%/packages/patches/opensmtpd-fix-crash.patch		\
   %D%/packages/patches/openssl-runpath.patch			\
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 03120aaee..bdb17c30d 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Konrad Hinsen 
 ;;; Copyright © 2018 Kei Kebreau 
+;;; Copyright © 2018 Eric Brown 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,12 +27,16 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gv)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system cmake)
   #:use-module 

bug#32691: OpenMolcas

2018-09-14 Thread Eric Brown
l...@gnu.org (Ludovic Courtès) writes:

> Here’s a revision of the patch with several modifications: I added
> comments in the patch (though they don’t explain the Python-related
> changes for instance; could you add a line about these?), stripped
> unnecessary additions from the patch, added it to gnu/local.mk, fixed
> an issue reported by ‘guix lint’ in the description.
>
> However, could you explain why we have #:tests? #f ?  In general
> disabling tests should be accompanied with a comment explaining the
> reason (lack of a test suite, or “unsolvable” test failures.)  If there
> are test failures, we’d rather investigate than disable the tests.
>
> Could you send an updated patch?
>

Hi Ludo':

Thank you for your fixes! I've attached a revised patch. I'm well beyond
my comfort zone, so I hope it applies cleanly and works.

The default location of pymolcas is a little sketchy, being placed in
the first writable location in PATH, and I believe will not be fixed
upstream:

https://gitlab.com/Molcas/OpenMolcas/issues/70

I have added comments to the chemistry.scm file.

I have removed the out-of-source build statement and re-enabled tests,
simply by omitting those flags.

Best regards,
Eric

>From 315c2a58310f2af32cdbd59c97a10911c390ddd3 Mon Sep 17 00:00:00 2001
From: Eric Brown 
Date: Fri, 14 Sep 2018 09:27:35 -0500
Subject: [PATCH] gnu: Add openmolcas and openblas-ilp64.

* gnu/packages/chemistry.scm (openmolcas): New variable.
---
 gnu/local.mk  |  1 +
 gnu/packages/chemistry.scm| 56 
 .../openmolcas-pymolcas-openblas.patch| 89 +++
 3 files changed, 146 insertions(+)
 create mode 100644 gnu/packages/patches/openmolcas-pymolcas-openblas.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 7b230cb6f..0974ce068 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1006,6 +1006,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openldap-CVE-2017-9287.patch		\
+  %D%/packages/patches/openmolcas-pymolcas-openblas.patch	\
   %D%/packages/patches/openocd-nrf52.patch			\
   %D%/packages/patches/opensmtpd-fix-crash.patch		\
   %D%/packages/patches/openssl-runpath.patch			\
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 03120aaee..d5461b08f 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Konrad Hinsen 
 ;;; Copyright © 2018 Kei Kebreau 
+;;; Copyright © 2018 Eric Brown 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,12 +27,16 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gv)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -322,3 +327,54 @@ chemical data.  It's a collaborative project allowing anyone to search, convert,
 analyze, or store data from molecular modeling, chemistry, solid-state
 materials, biochemistry, or related areas.")
 (license license:gpl2)))
+
+(define-public openmolcas
+  (package
+(name "openmolcas")
+(version "18.09")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://gitlab.com/Molcas/OpenMolcas;
+  "/-/archive/v" version "/OpenMolcas-v"
+  version ".tar.gz"))
+  (file-name (string-append name "-" version ".tar.gz"))
+  (sha256
+   (base32
+"1krrkff5b4zp9ii1m9v3zzw8d99k72fcwwv3rif8cp10cpxi1wxl"))
+  (patches
+   ;; by default, pymolcas is installed in the first writable
+   ;; directory in the user's PATH. This patch places it in the
+   ;; bin directory alongside the other OpenMolcas binaries.
+   ;; The default search for the OpenBLAS library is obviated and
+   ;; the path is supplied as an argument to CMake.
+   (search-patches "openmolcas-pymolcas-openblas.patch"
+(build-system cmake-build-system)
+(arguments
+ `(#:build-type "Release"
+   #:configure-flags
+   (list "-DLINALG=OpenBLAS"
+ (string-append "-DOPENBLASROOT="
+(assoc-ref %build-inputs "blas"))
+ (string-append "-DLINALG_LIBRARIES="
+(assoc-ref %build-inputs "blas")
+

bug#32691: OpenMolcas

2018-09-14 Thread Ludovic Courtès
Hi Eric,

Eric Brown  skribis:

> I am pleased to submit a patch that adds OpenMolcas to Guix. Also
> included in this submission is a new variable called `openblas-ilp64'
> which OpenMolcas needs to compile and run.

Here’s a revision of the patch with several modifications: I added
comments in the patch (though they don’t explain the Python-related
changes for instance; could you add a line about these?), stripped
unnecessary additions from the patch, added it to gnu/local.mk, fixed
an issue reported by ‘guix lint’ in the description.

However, could you explain why we have #:tests? #f ?  In general
disabling tests should be accompanied with a comment explaining the
reason (lack of a test suite, or “unsolvable” test failures.)  If there
are test failures, we’d rather investigate than disable the tests.

Could you send an updated patch?

Thanks in advance!

Ludo’.

>From c001d557e1cb23042c092c23d7612ad6197fac3c Mon Sep 17 00:00:00 2001
From: Eric Brown 
Date: Mon, 10 Sep 2018 23:12:51 -0500
Subject: [PATCH] gnu: Add openmolcas.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/chemistry.scm (openmolcas): New variable.
* gnu/packages/patches/openmolcas-pymolcas-openblas.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Ludovic Courtès 
---
 gnu/local.mk  |  1 +
 gnu/packages/chemistry.scm| 52 +++
 .../openmolcas-pymolcas-openblas.patch| 89 +++
 3 files changed, 142 insertions(+)
 create mode 100644 gnu/packages/patches/openmolcas-pymolcas-openblas.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 7b230cb6f..0974ce068 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1006,6 +1006,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openldap-CVE-2017-9287.patch		\
+  %D%/packages/patches/openmolcas-pymolcas-openblas.patch	\
   %D%/packages/patches/openocd-nrf52.patch			\
   %D%/packages/patches/opensmtpd-fix-crash.patch		\
   %D%/packages/patches/openssl-runpath.patch			\
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 03120aaee..58151afce 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Konrad Hinsen 
 ;;; Copyright © 2018 Kei Kebreau 
+;;; Copyright © 2018 Eric Brown 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,12 +27,16 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gv)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -322,3 +327,50 @@ chemical data.  It's a collaborative project allowing anyone to search, convert,
 analyze, or store data from molecular modeling, chemistry, solid-state
 materials, biochemistry, or related areas.")
 (license license:gpl2)))
+
+(define-public openmolcas
+  (package
+(name "openmolcas")
+(version "18.09")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://gitlab.com/Molcas/OpenMolcas;
+  "/-/archive/v" version "/OpenMolcas-v"
+  version ".tar.gz"))
+  (file-name (string-append name "-" version ".tar.gz"))
+  (sha256
+   (base32
+"1krrkff5b4zp9ii1m9v3zzw8d99k72fcwwv3rif8cp10cpxi1wxl"))
+  (patches (search-patches "openmolcas-pymolcas-openblas.patch"
+(build-system cmake-build-system)
+(arguments
+ `(#:out-of-source? #t
+   #:tests? #f
+   #:build-type "Release"
+   #:configure-flags
+   (list "-DLINALG=OpenBLAS"
+ (string-append "-DOPENBLASROOT="
+(assoc-ref %build-inputs "blas"))
+ (string-append "-DLINALG_LIBRARIES="
+(assoc-ref %build-inputs "blas")
+"/lib/libopenblas_ilp64.so"
+(native-inputs
+ `(("fortran" ,gfortran)
+   ("ghostscript" ,ghostscript)
+   ("perl" ,perl)
+   ("pkg-config" ,pkg-config)
+   ("python" ,python)
+   ("python-pyparsing" ,python-pyparsing)
+   ("python-six" ,python-six)
+   ("texlive" ,texlive)))
+(inputs
+ `(("hdf5" ,hdf5)
+   ("blas" ,openblas-ilp64)))
+(home-page "https://gitlab.com/Molcas/OpenMolcas;)
+(synopsis