View Issue Details

IDProjectCategoryView StatusLast Update
0001571OpenFOAMBugpublic2015-04-20 21:51
Reporteruser1103Assigned Tohenry  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
PlatformMacOSMacOS XOS Version10.10.2
Summary0001571: Provide ability to build OpenFOAM 2.3.x on MacOS X
DescriptionThere are patches and other changes available to build OpenFOAM 2.3.x on MacOS X. It would be useful to have these changes made available to the main repository, to reduce the code delta and provide a suitable starting point for future changes.

The GitHub fork at https://github.com/ajmas/OpenFOAM-2.3.x includes those changes and has been shown to build against Gcc 4.8.x, with tooling provided by MacPorts.
TagsNo tags attached.

Activities

user1103

2015-03-15 20:00

  ~0004138

I can create a pull request for these changes, though if anyone wants to review or suggest the best way to make these changes available I would appreciate it.

I do note one immediate concern is the value in controlDict:

https://github.com/OpenFOAM/OpenFOAM-2.3.x/blob/fe4464323041d9bce9751cb09d69854c09bd297e/etc/controlDict

The 'docBrowser' entry needs to be made subjective to platform or possibly have an open command provided by OpenFOAM that 'proxies' the appropriate command for the current platform.

user1103

2015-03-15 21:48

  ~0004142

'DocBrowser' pushed out to ticket 0001572 and controlDict reverted to match main master code in fork.

wyldckat

2015-03-21 21:42

updater   ~0004180

Greetings ajmas,

Disclaimer: I'm just a fellow bug reporter and I am *not* part of the OpenFOAM development team.

Although I do understand your eagerness (and some of your reports have indeed helped already!), it seems you're not familiar with OpenFOAM's way of "doing open source". What I'm referring to is thoroughly explained here: http://www.openfoam.com/legal/open-source.php

Quoting the relevant paragraph:

  We believe in open file formats; we oppose software patents; and, we do not
  work on operating systems, such as Windows, Mac OSX and iOS, that limit
  people’s freedom to use computers and software the way they want to.


And additional reading material regarding source code quality control:
 - http://www.openfoam.org/dev.php
 - http://www.openfoam.org/contrib/


And there is a recent tweet with an interesting picture from a presentation given by William Schroeder (I think) from Kitware at #SIAMCSE15: https://twitter.com/nhigham/status/577530608437481472 - it shows that the cost of software development is:
 - 7% is for Initial Development
 - 87% is for Maintenance
 - the remaining percentage, only time will tell :)

In other words, your changes can introduce an additional overhead in code maintenance that cannot be ensured without one or more Mac machines running different Mac OS X versions.


Nonetheless, I've cloned your repository to take a look and ascertain if you were at least following the source code quality control guidelines and whether you were keeping a proper documentation of copyright attribution to the changes provided in your repository. Here's what I've found:

 - Not all commits reference where the modifications came from, namely those not coded by yourself.
 - The applied patches do not have a clear authorship disclaimed throughout the source code files.
 - Some of the modifications are not needed for OpenFOAM to work properly on Linux, namely several of the added library dependencies. This is because on Linux, the "ld" linker utility can pick them up automatically (even if it could be considered a security risk ;) ).


Assuming the OpenFOAM Foundation continues to not be open to having to maintain such modifications for making it compilable on Mac OS X, I strongly suggest that you do a few other things:

 1- Create a group (possibly on GitHub) dedicated (and open) to contributions for patches for building OpenFOAM on Mac OS X. The idea is to keep together the people that are willing to cooperate into making this effort alive.

 2- Keep a good record of modification authorship. "git commit" usually helps with that, since it registers who committed it, except for the initial large patches you've provided.

 3- Have either an independent wiki for said effort or keep using openfoamwiki.net as the common wiki for this.

 4- Have a bug tracker dedicated to your efforts and make it very clear where people should report bugs related to your group's development effort!


By the way, I did see some of your comments on the forum at CFD-Online and in reference to the possibility of making OpenFOAM suitable for a case-insensitive file system... there was an answer here on the bug tracker to that suggestion, but I can't find it. Essentially the question is: would you want to cripple OpenFOAM's elegant source code just because of a limitation present on some file systems?

Best regards,
Bruno

user1103

2015-04-20 21:06

  ~0004636

The feedback is much appreciated. I must admit I just jumped in with both feet, to best address what seemed to be the immediate issues and didn't take time to read all the docs.

I am going to address as much as I can these issues and then try to find people to share in the effort. So far:
  - Have added a wiki page describing the goal
  -- also added link backs as appropriate
  -- the wiki will probably be minimal, to focus on specific issues and have anything platform-independent on the main site.
  - Have enabled the issue tracker
  - Will be adding a contributions file, for stuff that was created before tracking on GitHub.
  - Have created a thread here: http://www.cfd-online.com/Forums/openfoam-installation-windows-mac/151927-openfoam-2-3-x-mac-github.html

Regards

Andre

henry

2015-04-20 21:51

manager   ~0004637

My undertanding is that this thread is no longer needed as the discussion has been moved elsewhere.

Issue History

Date Modified Username Field Change
2015-03-15 19:54 user1103 New Issue
2015-03-15 20:00 user1103 Note Added: 0004138
2015-03-15 21:48 user1103 Note Added: 0004142
2015-03-21 21:42 wyldckat Note Added: 0004180
2015-03-24 00:17 liuhuafei Issue cloned: 0001591
2015-04-20 21:06 user1103 Note Added: 0004636
2015-04-20 21:51 henry Note Added: 0004637
2015-04-20 21:51 henry Status new => closed
2015-04-20 21:51 henry Assigned To => henry
2015-04-20 21:51 henry Resolution open => no change required