[Haskell-cafe] Ease of Haskell development on OS X?
Ross Mellgren
rmm-haskell at z.odi.ac
Sat Mar 21 16:51:14 EDT 2009
Did the configure for gtk2hs claim that it was going to build
svgcairo? If something is wrong with the librsvg install, it won't.
-Ross
On Mar 21, 2009, at 4:49 PM, Colin Adams wrote:
> OK - I added the --with-user-pkginfo flag.
> It nearly all works now - but still no svgcairo - ./configure
> doesn't find it.
>
> 2009/3/21 Ross Mellgren <rmm-haskell at z.odi.ac>:
>> (back to the list)
>>
>> Answers inline:
>>
>> On Mar 21, 2009, at 2:42 PM, Colin Adams wrote:
>>
>>> Yes, that was the problem, and swapping the PATH order does the
>>> trick.
>>> Thanks.
>>
>> no prob.
>>
>>> I must still have the macports stuff installed. Can you tell me
>>> how to
>>> get rid of it?
>>
>> if you really want to get rid of it I believe you just have to rm -rf
>> /opt/local and remove any initialization hooks for /opt/local out of
>> /etc/profile and ~/.bash_profile
>>
>>> However I still can't install my program - I get missing
>>> dependencies
>>> for gtk glib cairo and svgcairo.
>>
>> I'm not really that savvy with the package registration magics --
>> on my
>> system after doing sudo make install for gtk2hs, I get the packages
>> properly
>> registered. You can check the registered packages with ghc-pkg
>> list. It
>> could be that the package is registered local for your user, but
>> the cabal
>> install line you're using for the application includes --global (or
>> your
>> cabal configuration) so it won't look in the user config.
>>
>> I think Duncan answered some questions about this same problem
>> recently,
>> though I don't have a mailing list reference.
>>
>>> I tried some of the gtk2hs demos - they work, but, for instance, the
>>> actionmenu demo does not put the menus up at the top of the
>>> screen, so
>>> it doesn't look like the framework integration has worked.
>>
>> Even with the integration everything is still GTK-ish. There's a
>> separate
>> framework that comes with the .dmg called ige-mac-integration that
>> allows
>> applications to meld with the mac environment better, but no gtk2hs
>> bindings
>> for this exist at the moment. Bindings would have to be created,
>> and then
>> you'd have to modify the application to make use of them
>> (presumably with
>> CPP or similar switch to control whether you want mac support, or
>> just plain
>> GTK)
>>
>> -Ross
>>
>>> 2009/3/21 Ross Mellgren <rmm-haskell at z.odi.ac>:
>>>>
>>>> I think there must be a version inconsistency with your GLib
>>>> framework --
>>>> either not the most recent copy of the GTK+ DMG, or your path is
>>>> flipped
>>>> around and you're using a ports version.
>>>>
>>>> Run glib-mkenums --version to see what version you have... I have
>>>>
>>>> rmm at Hugo:~/tmpgtk/GLib.framework/Resources/dev/bin$ ./glib-mkenums
>>>> --version
>>>> glib-mkenums version glib-2.18.1
>>>> glib-mkenums comes with ABSOLUTELY NO WARRANTY.
>>>> You may redistribute copies of glib-mkenums under the terms of
>>>> the GNU General Public License which can be found in the
>>>> GLib source package. Sources, examples and contact
>>>> information are available at http://www.gtk.org
>>>>
>>>> Particularly, the error you're getting is because your version of
>>>> glib-mkenums doesn't expand @ENUMPREFIX@ -- if I run glib-mkenums
>>>> with no
>>>> arguments, my version reports @ENUMPREFIX@ as a valid subtitution:
>>>>
>>>> rmm at Hugo:~/tmpgtk/GLib.framework/Resources/dev/bin$ ./glib-mkenums
>>>> Usage: glib-mkenums [options] [files...]
>>>> --fhead <text> output file header
>>>> --fprod <text> per input file production
>>>> --ftail <text> output file trailer
>>>> --eprod <text> per enum text (produced prior to value
>>>> itarations)
>>>> --vhead <text> value header, produced before
>>>> iterating over
>>>> enum values
>>>> --vprod <text> value text, produced for each enum
>>>> value
>>>> --vtail <text> value tail, produced after iterating
>>>> over
>>>> enum
>>>> values
>>>> --comments <text> comment structure
>>>> --template file template file
>>>> -h, --help show this help message
>>>> -v, --version print version informations
>>>> Production text substitutions:
>>>> @EnumName@ PrefixTheXEnum
>>>> @enum_name@ prefix_the_xenum
>>>> @ENUMNAME@ PREFIX_THE_XENUM
>>>> @ENUMSHORT@ THE_XENUM
>>>> @ENUMPREFIX@ PREFIX
>>>> @VALUENAME@ PREFIX_THE_XVALUE
>>>> @valuenick@ the-xvalue
>>>> @type@ either enum or flags
>>>> @Type@ either Enum or Flags
>>>> @TYPE@ either ENUM or FLAGS
>>>> @filename@ name of current input file
>>>>
>>>>
>>>> Does yours?
>>>>
>>>> You might try moving /Library/Frameworks/GLib.framework/Resources/
>>>> dev/bin
>>>> to
>>>> the front of your path before make'ing pango --
>>>>
>>>> cd pango-1.24.0
>>>> export PATH=/Library/Frameworks/GLib.framework/Resources/dev/bin:
>>>> $PATH
>>>> make
>>>>
>>>> Hope this helps,
>>>>
>>>> -Ross
>>>>
>>>> On Mar 21, 2009, at 1:52 PM, Colin Adams wrote:
>>>>
>>>>> Attached.
>>>>>
>>>>>
>>>>>
>>>>> 2009/3/21 Ross Mellgren <rmm-haskell at z.odi.ac>:
>>>>>>
>>>>>> (taking this off list, to avoid noise)
>>>>>>
>>>>>> Could you attach pango-1.24.0/pango/pango-enum-types.h?
>>>>>> Something hokey
>>>>>> is
>>>>>> going on -- this file is shipped with pango-1.24.0 but may be
>>>>>> overwritten
>>>>>> if
>>>>>> your glib-mkenums does it differently. In any case, since it's
>>>>>> (possibly)
>>>>>> machine generated I would have to see what's going on at those
>>>>>> lines to
>>>>>> make
>>>>>> progress.
>>>>>>
>>>>>> Also, if you could cd pango-1.24.0/pango, and run:
>>>>>>
>>>>>> gcc -E -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Pango\"
>>>>>> -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENGINE
>>>>>> -DSYSCONFDIR=\"/usr/local/etc\"
>>>>>> -DLIBDIR=\"/usr/local/lib\" -I.. -DG_DISABLE_CAST_CHECKS
>>>>>> -I/Library/Frameworks/GLib.framework/Headers
>>>>>> -I/Library/Frameworks/Cairo.framework/Headers -I/usr/X11/
>>>>>> include
>>>>>> -DFC_WEIGHT_EXTRABLACK=215 -Wall -MT fonts.lo -MD -MP -MF
>>>>>> .deps/fonts.Tpo
>>>>>> -c -o fonts.i fonts.c
>>>>>>
>>>>>> and attach fonts.i, that might shed more light. However, since
>>>>>> the
>>>>>> error
>>>>>> you're getting is a preprocessor one, gcc -E may fail as well.
>>>>>>
>>>>>> -Ross
>>>>>>
>>>>>> On Mar 21, 2009, at 1:37 PM, Colin Adams wrote:
>>>>>>
>>>>>>> In file included from ../pango/pango.h:31,
>>>>>>> from pango-impl-utils.h:28,
>>>>>>> from fonts.c:30:
>>>>>>> ../pango/pango-enum-types.h:12:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:14:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:17:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:19:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:22:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:25:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:27:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:29:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:31:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:33:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:36:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:38:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:41:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:43:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:45:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:48:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:51:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:54:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> In file included from ../pango/pango.h:31,
>>>>>>> from pango-impl-utils.h:28,
>>>>>>> from glyphstring.c:26:
>>>>>>> ../pango/pango-enum-types.h:12:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:14:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:17:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:19:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:22:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:25:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:27:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:29:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:31:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:33:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:36:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:38:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:41:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:43:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:45:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:48:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:51:9: error: macro names must be
>>>>>>> identifiers
>>>>>>> ../pango/pango-enum-types.h:54:9: error: macro names must be
>>>>>>> identifiers
>>>>>>>
>>>>>>>
>>>>>>> 2009/3/21 Ross Mellgren <rmm-haskell at z.odi.ac>:
>>>>>>>>
>>>>>>>> I didn't get any errors like that (nor do I remember ever
>>>>>>>> having
>>>>>>>> them),
>>>>>>>> though if you want to paste them here maybe I can help with
>>>>>>>> them.
>>>>>>>>
>>>>>>>> -Ross
>>>>>>>>
>>>>>>>> On Mar 21, 2009, at 1:27 PM, Colin Adams wrote:
>>>>>>>>
>>>>>>>>> If I try this, pango fails to compile with lots of error
>>>>>>>>> messages
>>>>>>>>> about error: macro names must be identifiers.
>>>>>>>>>
>>>>>>>>> I think I've seen this before - some well-known Mac OSX
>>>>>>>>> problem?
>>>>>>>>> (I'm
>>>>>>>>> a linux man myself - so I'm not used to the mac)
>>>>>>>>>
>>>>>>>>> 2009/3/21 Ross Mellgren <rmm-haskell at z.odi.ac>:
>>>>>>>>>>
>>>>>>>>>> I tried making this work, but librsvg requires pango, and
>>>>>>>>>> pango is
>>>>>>>>>> a
>>>>>>>>>> huge
>>>>>>>>>> pain in the ass -- I managed to get the whole thing to
>>>>>>>>>> compile, but
>>>>>>>>>> now
>>>>>>>>>> it
>>>>>>>>>> can't find any fonts, apparently due to some dynaloading
>>>>>>>>>> issues.
>>>>>>>>>>
>>>>>>>>>> I think if you need any of the extended modules (e.g.
>>>>>>>>>> svgcairo, gl)
>>>>>>>>>> that
>>>>>>>>>> the
>>>>>>>>>> DMG doesn't directly support then you're best served by
>>>>>>>>>> shedding a
>>>>>>>>>> couple
>>>>>>>>>> tears and going with macports.
>>>>>>>>>>
>>>>>>>>>> The steps I used to get the broken version were (FYI --
>>>>>>>>>> doing this
>>>>>>>>>> causes
>>>>>>>>>> all fonts to load as the no-character square in all gtk2hs
>>>>>>>>>> apps):
>>>>>>>>>>
>>>>>>>>>> export
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig:/usr/local/lib/
>>>>>>>>>> pkgconfig:/Library/Frameworks/Cairo.framework/Resources/dev/
>>>>>>>>>> lib/pkgconfig:/Library/Frameworks/GLib.framework/Resources/
>>>>>>>>>> dev/lib/pkgconfig:/Library/Frameworks/Gtk.framework/
>>>>>>>>>> Resources/dev/lib/pkgconfig
>>>>>>>>>>
>>>>>>>>>> export
>>>>>>>>>> PATH=$PATH:/Library/Frameworks/GLib.framework/Resources/dev/
>>>>>>>>>> bin
>>>>>>>>>>
>>>>>>>>>> cd pango-1.24.0
>>>>>>>>>> CFLAGS="-DFC_WEIGHT_EXTRABLACK=215" ./configure --prefix=/
>>>>>>>>>> usr/local
>>>>>>>>>> make -j4
>>>>>>>>>> sudo make install
>>>>>>>>>>
>>>>>>>>>> cd librsvg-2.26.0
>>>>>>>>>> ./configure --prefix=/usr/local
>>>>>>>>>> make -j4
>>>>>>>>>> sudo make install
>>>>>>>>>>
>>>>>>>>>> cd gtk2hs-0.10.0
>>>>>>>>>> ./configure --disable-gio
>>>>>>>>>> make -j4
>>>>>>>>>> sudo make install
>>>>>>>>>>
>>>>>>>>>> Running apps linked with this version of gtk2hs gets:
>>>>>>>>>>
>>>>>>>>>> (svgviewer:43314): Pango-CRITICAL **: No modules found:
>>>>>>>>>> No builtin or dynamically loaded modules were found.
>>>>>>>>>> PangoFc will not work correctly.
>>>>>>>>>> This probably means there was an error in the creation of:
>>>>>>>>>> '/usr/local/etc/pango/pango.modules'
>>>>>>>>>> You should create this file by running:
>>>>>>>>>> pango-querymodules > '/usr/local/etc/pango/pango.modules'
>>>>>>>>>>
>>>>>>>>>> (svgviewer:43314): Pango-WARNING **: failed to choose a font,
>>>>>>>>>> expect
>>>>>>>>>> ugly
>>>>>>>>>> output. engine-type='PangoRenderATSUI', script='latin'
>>>>>>>>>>
>>>>>>>>>> So if anyone knows what Pango is trying to do, maybe they
>>>>>>>>>> could
>>>>>>>>>> help
>>>>>>>>>> resolve
>>>>>>>>>> this.
>>>>>>>>>>
>>>>>>>>>> I'm probably going to ditch the use of GTK in my own
>>>>>>>>>> project and
>>>>>>>>>> use
>>>>>>>>>> FFI
>>>>>>>>>> bindings to Carbon/Win32, since I don't really need widgets
>>>>>>>>>> for my
>>>>>>>>>> own
>>>>>>>>>> stuff
>>>>>>>>>> and the whole family of GTK related packages is a total
>>>>>>>>>> pain in the
>>>>>>>>>> ass
>>>>>>>>>> (as
>>>>>>>>>> are most things in the GNU family of software, IMO)
>>>>>>>>>>
>>>>>>>>>> -Ross
>>>>>>>>>>
>>>>>>>>>> On Mar 21, 2009, at 10:13 AM, Colin Paul Adams wrote:
>>>>>>>>>>
>>>>>>>>>>>>>>>> "Ross" == Ross Mellgren <rmm-haskell at z.odi.ac> writes:
>>>>>>>>>>>
>>>>>>>>>>> Ross> While there is not a .dmg for Gtk2Hs, you can use
>>>>>>>>>>> a .dmg
>>>>>>>>>>> Ross> installed GHC with a .dmg installed Gtk, and then
>>>>>>>>>>> build
>>>>>>>>>>> Ross> gtk2hs straight on top of that, without having to
>>>>>>>>>>> deal with
>>>>>>>>>>> Ross> the dual-GHC macports mess..
>>>>>>>>>>>
>>>>>>>>>>> Ross>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://www.haskell.org/haskellwiki/Gtk2hs#Using_the_GTK.2B_OS_X_Framework
>>>>>>>>>>>
>>>>>>>>>>> I just tried this.
>>>>>>>>>>>
>>>>>>>>>>> The configure enables cairo, but does not enable svgcairo.
>>>>>>>>>>> Is
>>>>>>>>>>> there
>>>>>>>>>>> anyway round this, or do I have to revert to the macports
>>>>>>>>>>> gtk? (my
>>>>>>>>>>> application uses svgcairo)
>>>>>>>>>>> --
>>>>>>>>>>> Colin Adams
>>>>>>>>>>> Preston Lancashire
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Haskell-Cafe mailing list
>>>>>>>>>> Haskell-Cafe at haskell.org
>>>>>>>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>> <pango-enum-types.h>
>>>>
>>>>
>>
>>
More information about the Haskell-Cafe
mailing list