Opened 12 years ago

Closed 11 years ago

#38522 closed submission (fixed)

submission of "relax3d", a package useful to model earthquake- and volcano-related deformation.

Reported by: sylbar.vainbot@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: cooljeanius (Eric Gallager)
Port: relax3d

Description

Hi,

Please find attached the Portfile for the program Relax. Relax evaluates the displacement and stress in a half space with gravity due to dislocations, Mogi sources, and surface tractions; and the nonlinear time-dependent deformation that follows due to power-law rheology materials in the bulk and/or rate-strengthening friction faults.

I have successfully tested the installation procedure using portindex and port install relax3d. The package is intended for the science category of macports.

Best wishes, Sylvain Barbot

Attachments (3)

relax.diff (6.9 KB) - added by ryandesign (Ryan Carsten Schmidt) 12 years ago.
Portfile.2 (2.7 KB) - added by cooljeanius (Eric Gallager) 12 years ago.
my version of the portfile
Portfile (3.1 KB) - added by sylbar.vainbot@… 12 years ago.
Portfile

Download all attachments as: .zip

Change History (21)

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Thanks but I have several questions:

  • Why is this fetching from http://www.geodynamics.org/cig/software/relax/macports/relax3d-1.0.4.tar.bz2? In what way does this differ from the normal source code distribution at http://www.geodynamics.org/cig/software/relax/Relax-1_0_4.tgz?
  • "worksrcdir ${name}-${version}" is the default so it can be removed (or might be changed if we end up fetching from the official source instead of the MacPorts-specific source).
  • What version(s) of the GPL is this licensed under? It should be indicated in the license line in the usual format.
  • The maintainers line is invalid; it should contain only (obfuscated) email addresses, not names.
  • The dependency port:fftw-3-single:gcc47 is not valid.
  • When a gcc port must be used (e.g. because you need a fortran compiler) we want there to be variants so the user can choose which gcc to use; see wiki:PortfileRecipes#gcc

comment:2 Changed 12 years ago by cooljeanius (Eric Gallager)

Also port -v lint --nitpick reports some whitespace nitpicks:

Warning: Line 3 should be a newline (after RCS tag)
Warning: Line 4 should be a newline (after PortSystem)
Warning: Line 17 has trailing whitespace before newline

Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: relax.diff added

comment:3 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

I'm attaching a file showing the difference between the two archives. The biggest difference is that the official tgz file contains examples and documentation, which balloon its size to 23MB, while the source-only tar.bz2 file is only 230K. But there are also some differences in some of the source code files, and I don't know how much significance to ascribe to that. But I don't see how they can both be called "1.0.4" if they contain different code.

If the documentation and examples are not going to be installed by the MacPorts port, then what I would like to see is an official source-only archive listed on the main download page, not in a MacPorts-specific download directory, and then the portfile would use that, and it would also be available to other users who might find that interesting.

comment:4 in reply to:  1 Changed 12 years ago by sylbar.vainbot@…

Hi Ryan and All,

First, thank you so much for your time checking out the details of the code and helping me to contribute. I wanted to take more time to address all your questions, but I see that you're going full speed with this, so let me comment on only some of the points you address.

  • Why is this fetching from

http://www.geodynamics.org/cig/software/relax/macports/relax3d-1.0.4.tar.bz2?

First, there is name conflict with another package called "relax" on Macports. This package is called relax-py26 or relax-py27 on fink and its official web page is www.nmr-relax.com. It's all confusing, but the unfortunate result is that I can't call my package "relax", just as in the official web site http://www.geodynamics.org/cig/software/relax/ or the release on fink.

If not for that problem, I could use the same tar ball as in http://www.geodynamics.org/cig/software/relax/fink/relax-1.0.4.tar.gz. So I have another tar ball at http://www.geodynamics.org/cig/software/relax/macports/relax3d-1.0.4.tar.bz2. Except for the name of the file and the name of the folder inside, it's the same content. I don't love the idea of changing the name of the package to relax3d, but I didn't find a better alternative.

In what way does this differ from the normal source code distribution at http://www.geodynamics.org/cig/software/relax/Relax-1_0_4.tgz?

This tar ball serves a different purpose. It contains source, examples, and many other scripts that are used for post-processing and visualization. The source in Relax-1_0_4.tgz is also a bit outdated, compared to the fink or macports packages. I think of the macports package as just the core binary program, which is the most difficult to compile and the reason why macports is so useful to so many users. I don't want to clutter the package with example input files; the binary and the man page should suffice.

  • What version(s) of the GPL is this licensed under? It should be

indicated in the license line in the usual format.

I use the GNU General Public License Version 3, 29 June 2007. How should I format this line?

  • The maintainers line is invalid; it should contain only (obfuscated)

email addresses, not names.

Noted. I will send an updated Portfile after I figure out everything else.

  • The dependency port:fftw-3-single:gcc47 is not valid.

I pondered for a long time around this. I need the Fortran binding of the fftw-3-single package. I tried using the dependency

port:fftw-3-single gcc47

but I didn't pass the portindex test. The line

port:fftw-3-single:gcc47

did pass the test, but it's true that I ran

port install fftw-3-single +gcc47

before. Maybe that's what made it work. But since my Portfile passed the portindex and port install relax3d tests, I assumed the syntax was correct. Looking at the documentation and also http://trac.macports.org/wiki/PortfileRecipes, I do not see instructions about how to force variants on dependencies in Portfiles.

If the documentation and examples are not going to be installed by the MacPorts port, then what I would like to see is an official source-only archive listed on the main download page, not in a MacPorts-specific download directory, and then the portfile would use that, and it would also be available to other users who might find that interesting.

I don't see any harm in adding a link to the source-only package on the official web site. I can do it after we figure out all the details.

When a gcc port must be used (e.g. because you need a fortran compiler) we want there to be variants so the user can choose which gcc to use; see wiki:PortfileRecipes#gcc

I can add variants, but for now I am not able to set up the correct dependency for fftw-3-single with +gcc47

Once I get that working, I can start adding variants for different versions of gcc. Please advice on this.

Thanks again for your time and consideration.

Best wishes, Sylvain

Replying to ryandesign@…:

Thanks but I have several questions:

  • Why is this fetching from http://www.geodynamics.org/cig/software/relax/macports/relax3d-1.0.4.tar.bz2? In what way does this differ from the normal source code distribution at http://www.geodynamics.org/cig/software/relax/Relax-1_0_4.tgz?
  • "worksrcdir ${name}-${version}" is the default so it can be removed (or might be changed if we end up fetching from the official source instead of the MacPorts-specific source).
  • What version(s) of the GPL is this licensed under? It should be indicated in the license line in the usual format.
  • The maintainers line is invalid; it should contain only (obfuscated) email addresses, not names.
  • The dependency port:fftw-3-single:gcc47 is not valid.
  • When a gcc port must be used (e.g. because you need a fortran compiler) we want there to be variants so the user can choose which gcc to use; see wiki:PortfileRecipes#gcc

comment:5 Changed 12 years ago by sylbar.vainbot@…

Also port -v lint --nitpick reports some whitespace nitpicks

I've updated the Portfile for nitpicking, but the license version number and the variant of fftw-3-single are left unchanged, for now.

comment:6 Changed 12 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

Changed 12 years ago by cooljeanius (Eric Gallager)

Attachment: Portfile.2 added

my version of the portfile

comment:7 Changed 12 years ago by cooljeanius (Eric Gallager)

I took a stab at making some changes to the portfile. It's still missing compiler variants though.

comment:8 Changed 12 years ago by sylbar.vainbot@…

I've updated the Portfile using your base and made variants for gcc44, gcc45, and gcc46.

Last edited 12 years ago by sylbar.vainbot@… (previous) (diff)

comment:9 Changed 12 years ago by mf2k (Frank Schima)

Some quick notes:

  • gcc only needs to be a library dependency, please remove the build and run dependencies for all gcc variants.
  • remove the gcc44 variant and add gcc47 since that is the default for Macports.

comment:10 Changed 12 years ago by sylbar.vainbot@…

I have updated the Portfile. Separated installation into variants and made gcc47 the default variant.

comment:11 Changed 12 years ago by sylbar.vainbot@…

Last edited 12 years ago by sylbar.vainbot@… (previous) (diff)

comment:12 Changed 12 years ago by mf2k (Frank Schima)

The dependencies for gccXY are still muddled. Why do you have it listed as a library dependency? Furthermore you have it listed as a library and build dependency. For most cases, it only needs to be a build dependency. So please use the correct one for all of the gcc variants.

comment:13 Changed 12 years ago by sylbar.vainbot@…

Last edited 12 years ago by sylbar.vainbot@… (previous) (diff)

comment:14 Changed 12 years ago by mf2k (Frank Schima)

You still always include gcc47 as a build dependency no matter which variant is chosen. It would be easiest to simply remove it from the depends_run-append list.

Last edited 12 years ago by mf2k (Frank Schima) (previous) (diff)

Changed 12 years ago by sylbar.vainbot@…

Attachment: Portfile added

Portfile

comment:15 Changed 12 years ago by sylbar.vainbot@…

I've removed gcc47 from the depends_lib-append list.

Last edited 12 years ago by sylbar.vainbot@… (previous) (diff)

comment:16 Changed 12 years ago by sylbar.vainbot@…

Last edited 12 years ago by sylbar.vainbot@… (previous) (diff)

comment:17 Changed 11 years ago by mf2k (Frank Schima)

Added in r109195 with some changes:

  1. Added gcc48 variant.
  2. Removed dependencies on gcc because Macports 2.2 handles that automatically now.
  3. Used simpler configure.compiler.
  4. Removed redundant depends_run ports in r109196.

comment:18 Changed 11 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: newclosed
Version: 2.1.3
Note: See TracTickets for help on using tickets.