Hi Michael,
On Mar 3, 2010, at 12:01 , Michael Spiegel wrote:
No, it is part of the GNU Fortran installation. Anything you compile
with a Fortran requires that you have that Fortran installed at run
time, because Fortran uses its own run-time libraries (if the Fortran
you compiled with used dynamic libraries). This implies that if you
distribute your package you have to tell users to install the same
Fortran you used to compile it.
However, unlike other unices Mac users don't necessarily have
development tools installed, so on CRAN we make an effort to modify
the binaries such that they work even without the tools they have been
compiled with. There are several possible approaches, but since R
itself already uses the same Fortran, we ship a copy of the Fortran
libraries inside R and modify packages such that they use it instead
of the one from dev tools (see below for details).
> To create the binary release, I run R CMD INSTALL --build.
That is not sufficient to create a binary of your package, because it
contains a configure script (this is unrelated to the above - see R-
admin 2.6). What you want to use is something like this (assuming R
2.10.1 Leopard build and Fortran from CRAN):
# fix the Fortran paths to point to R 2.10 instead
for lib in `ls OpenMx/libs/*/*.so`; do
install_name_tool -change /usr/local/lib/libgfortran.2.dylib \
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libgfortran.2.dylib \
$lib
# change permissions for distribution
# pack it up
You can check that you have the correct paths using otool -L:
ginaz:library$ otool -L OpenMx/libs/*/*.so
OpenMx/libs/i386/OpenMx.so:
If you are dealing with only one R version, you can change the ID of
your Fortran library instead of touching the package files:
install_name_tool -id \
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libgfortran.2.dylib
/usr/local/lib/libgfortran.2.0.0.dylib
Note, however, that this will lead to (possibly silent) errors if you
forget to change it when switching to another R version, so I prefer
to fix the package instead.
Cheers,
> I am the guy who compiles the OpenMx binaries. We would be
> delighted to place our package on CRAN, once the project is stable
> enough so that we are comfortable releasing it to the larger
> public. Let's try to track down where I made a mistake. Our
> Makevars.in file contains the line:
>
> PKG_LIBS=$(FLIBS) $(BLAS_LIBS) $(LAPACK_LIBS)
>
> In addition, on the build machine I noticed that a copy of
> libgfortran.2.dylib exists at /usr/local/lib. I believe the Xcode
> install placed a copy of it there.
R --arch=i386 CMD INSTALL OpenMx_0.2.9-1147.tar.gz
R --arch=x86_64 CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
R --arch=ppc CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
cd /Library/Frameworks/R.framework/Versions/2.10/Resources/library
done
sudo chown -Rh root:admin OpenMx
sudo chmod -R g+w OpenMx
tar fvcz ~/OpenMx_0.2.9-1147.tgz OpenMx
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
(compatibility version 1.0.0, current version 242.0.0)
OpenMx/libs/ppc/OpenMx.so:
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libgfortran.2.dylib (compatibility version 3.0.0, current version 3.0.0)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libRlapack.dylib (compatibility version 2.10.0, current version 2.10.1)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libR.dylib (compatibility version 2.10.0, current version 2.10.1)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/
CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 111.1.4)
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
(compatibility version 1.0.0, current version 242.0.0)
OpenMx/libs/x86_64/OpenMx.so:
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libgfortran.2.dylib (compatibility version 3.0.0, current version 3.0.0)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libRlapack.dylib (compatibility version 2.10.0, current version 2.10.1)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libR.dylib (compatibility version 2.10.0, current version 2.10.1)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/
CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 111.1.4)
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
(compatibility version 1.0.0, current version 242.0.0)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libgfortran.2.dylib (compatibility version 3.0.0, current version 3.0.0)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libRlapack.dylib (compatibility version 2.10.0, current version 2.10.1)
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/
libR.dylib (compatibility version 2.10.0, current version 2.10.1)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/
CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 111.1.4)
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
Simon
> The beta test users install the package using the following script: http://openmx.psyc.virginia.edu/getOpenMx.R
> .
>
>
> On Wed, Mar 3, 2010 at 9:48 AM, Tim Brick <tbrick_at_virginia.edu> wrote:
>>
>>
>>> From: Simon Urbanek <simon.urbanek_at_r-project.org>
>>> Date: March 3, 2010 8:32:52 AM MST
>>> To: tbrick_at_virginia.edu
>>> Cc: r-devel_at_stat.math.ethz.ch, R-bugs_at_r-project.org
>>> Subject: Re: [Rd] libgfortran misplaced in Mac OS X R install
>>> (PR#14226)
>>>
>>> This is not an R bug so please don't abuse R-bugs. It is likely a
>>> bug in the way OpenMx binaries are distributed by someone (you
>>> didn't even say where you got them from) - OpenMx is not even on
>>> CRAN so take that to whoever gave you the binaries. On CRAN we use
>>> the correct paths.
>>>
>>> Cheers,
>>> Simon
>>>
>>>
>>> On Mar 2, 2010, at 11:45 , tbrick_at_virginia.edu wrote:
>>>
>>>> Full_Name: Timothy Brick
>>>> Version: 2.10
>>>> OS: Mac OS X (seen on both 10.6 and 10.5)
>>>> Submission from: (NULL) (63.255.24.5)
>>>>
>>>>
>>>> When using install.packages in R on Mac OS X, packages that
>>>> require gfortran
>>>> throws an error (Example below from installation of OpenMx
>>>> package):
>>>>
>>>> Loading required package: OpenMx
>>>> Error in dyn.load(file, DLLpath = DLLpath, ...) :
>>>> unable to load shared library
>>>> '/Library/Frameworks/R.framework/Resources/library/OpenMx/libs/
>>>> i386/OpenMx.so':
>>>> dlopen(/Library/Frameworks/R.framework/Resources/library/OpenMx/
>>>> libs/i386/OpenMx.so,
>>>> 6): Library not loaded: /usr/local/lib/libgfortran.2.dylib
>>>> Referenced from: /Library/Frameworks/R.framework/Resources/
>>>> library/OpenMx/libs/i386/OpenMx.so
>>>> Reason: image not found
>>>>
>>>> libgfortran.2.dylib does exist, but in
>>>> /Library/Frameworks/R.framework/Versions/2.10/Resouces/lib/
>>>> libgfortran.2.dylib
>>>> (or /2.9/, depending on version installed).
>>>>
>>>> A workaround at present involves creating a symbolic link from
>>>> the above file to
>>>> /usr/local/lib/libgfortran.2.dylib, however this requires sudo
>>>> access and is
>>>> confusing for novice users.
>>>>
>>>> There is more discussion of this bug as it relates to OpenMx at:
>>>> http://openmx.psyc.virginia.edu/thread/316
>>>>
>>>> Posts on other forums indicate a similar issue with other
>>>> packages including
>>>> vegan and lme4:
>>>> http://r-forge.r-project.org/forum/forum.php?thread_id=728&forum_id=194
>>>> https://stat.ethz.ch/pipermail/r-sig-mac/2009-May/006210.html
>>>>
>>>
>>> Those are very old posts and those were temporary issues in the
>>> CRAN build system that have been promptly resolved.
>>>
>>>
>>
>>
>
> ______________________________________________
> R-devel_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.
Archive generated by hypermail 2.2.0, at Thu 04 Mar 2010 - 20:21:00 GMT.
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.