Question regarding lib dependencies, esp gettext
Hi, I recently contributed a port for tuxmath. It uses gettext and iconv for i18n, as well as SDL and friends. The currently listed dependencies are as follows: depends_lib port:libsdl \ port:libsdl_image \ port:libsdl_mixer \ port:libsdl_ttf \ port:gettext I'm wondering if I need to list gettext - it is not needed for "./configure; make; make install" for my package. Gettext is needed to run a "make dist" on tuxmath, but that isn't part of the MacPorts install process, so I don't think gettext is needed as either a "depends_lib" or "depends_build". At runtime, tuxmath does need both gettext and iconv, but they seem to be included with Leopard itself. However, I can't say for sure if they were present before I installed XCode. I take it that Portfiles do not need to list standard system libraries as dependencies - do gettext and iconv fall into this category? If so, I plan to just eliminate gettext from my list of dependencies. Thanks, -- David Bruce
On Feb 27, 2008, at 12:42, David Bruce wrote:
I recently contributed a port for tuxmath. It uses gettext and iconv for i18n, as well as SDL and friends. The currently listed dependencies are as follows:
depends_lib port:libsdl \ port:libsdl_image \ port:libsdl_mixer \ port:libsdl_ttf \ port:gettext
I'm wondering if I need to list gettext - it is not needed for "./ configure; make; make install" for my package. Gettext is needed to run a "make dist" on tuxmath, but that isn't part of the MacPorts install process, so I don't think gettext is needed as either a "depends_lib" or "depends_build".
At runtime, tuxmath does need both gettext and iconv, but they seem to be included with Leopard itself. However, I can't say for sure if they were present before I installed XCode.
I take it that Portfiles do not need to list standard system libraries as dependencies - do gettext and iconv fall into this category? If so, I plan to just eliminate gettext from my list of dependencies.
It is MacPorts policy to use its own software, not system software, wherever possible. See the FAQ: http://trac.macosforge.org/projects/macports/wiki/ FAQ#WhyisMacPortsusingitsownlibraries I just installed tuxmath 1.6.1_1 and it does indeed link with gettext and libiconv as libraries: $ otool -L /opt/local/bin/tuxmath /opt/local/bin/tuxmath: /opt/local/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.2.0) /opt/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.9) /System/Library/Frameworks/CoreFoundation.framework/Versions/ A/CoreFoundation (compatibility version 150.0.0, current version 368.32.0) /opt/local/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.2.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0) /opt/local/lib/libSDL_image-1.2.0.dylib (compatibility version 2.0.0, current version 2.5.0) /opt/local/lib/libSDL_mixer-1.2.0.dylib (compatibility version 3.0.0, current version 3.6.0) /opt/local/lib/libSDL_ttf-2.0.0.dylib (compatibility version 7.0.0, current version 7.3.0) $ (You see libiconv.2.dylib, and gettext is libintl.8.dylib.) Therefore both port:libiconv and port:gettext should be listed as library dependencies of tuxmath. (Though gettext itself depends on libiconv, so you only need to list libiconv as a dependency of tuxmath if tuxmath uses libiconv independently of gettext. I'm not sure how to determine whether this is the case, other than asking the tuxmath developers or delving into the tuxmath source code.)
Hi Ryan, On Wednesday 27 February 2008 02:16:02 pm Ryan Schmidt wrote:
It is MacPorts policy to use its own software, not system software, wherever possible. See the FAQ:
http://trac.macosforge.org/projects/macports/wiki/ FAQ#WhyisMacPortsusingitsownlibraries
Therefore both port:libiconv and port:gettext should be listed as library dependencies of tuxmath.
Thanks - so port:gettext will stay.
(Though gettext itself depends on libiconv, so you only need to list libiconv as a dependency of tuxmath if tuxmath uses libiconv independently of gettext. I'm not sure how to determine whether this is the case, other than asking the tuxmath developers or delving into the tuxmath source code.)
That's easy, seeing as how I am also the upstream developer ;) Tuxmath does not currently directly call any function from libiconv, but may in the future, so I'll add port:libiconv to be safe. Thanks, -- David Bruce
participants (2)
-
David Bruce
-
Ryan Schmidt