On 07/01/2013 08:13, Valerio Aimale wrote:
This is a good example of Mac OSX integration. Not complete, but, I'd say a good start.
https://rapidshare.com/files/2004754462/Inkscape-r9943-10.7%2B-x86_64.dmg
Many thanks for sharing this third build/package!
AFAICT the basics for the menubar integration are fine (Inkscape's dynamic sub-menus, for example), and working with multiple files from within the same Inkscape process is better supported, too.
1) Issues noticed with 'Inkscape-r9943-10.7+-x86_64' (on OS X 10.7):
- Menubar (blocker): Closing a second window opened from within Inkscape may empty the global menubar. The content of the menubar is restored e.g. when opening a new window again (with the keyboard shortcut, or button on the commands bar), or when switching between other document windows if there are still multiple ones open.
Steps to reproduce: 1) launch Inkscape.app (with default preferences) 2) open new (second) window with 'Ctrl+N' 3) close second window with 'Ctrl+W' --> the menubar now has only one menu ('Inkscape'), which basically allows to quit the application, but nothing else.
- Menubar: Menu items with a 'checkmark' (toggle state) don't update if the setting is changed (e.g. 'View > Display mode > { … | Normal | No Filters | Outline }' or don't reflect the initial state (e.g. items in 'View > Show/Hide').
- Extension modules: Import of lxml fails on Lion: system libs (libxml2 and libxslt) shipping with Lion [1] provide older versions than those that the python module was linked against:
$ otool -L /tmp/Inkscape-r9943-10.7+-x86_64.app/Contents/Resources/python/site-packages/lxml/etree.so /tmp/Inkscape-r9943-10.7+-x86_64.app/Contents/Resources/python/site-packages/lxml/etree.so: @executable_path/../lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.27.0) @executable_path/../lib/libexslt.0.dylib (compatibility version 9.0.0, current version 9.16.0) @executable_path/../lib/libxml2.2.dylib (compatibility version 11.0.0, current version 11.0.0) @executable_path/../lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
$ otool -L /usr/lib/libxml2.2.dylib /usr/lib/libxml2.2.dylib: /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.3.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 46.1.0) $ otool -L /usr/lib/libxslt.1.dylib /usr/lib/libxslt.1.dylib: /usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.24.0) /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.3.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 46.1.0) $ otool -L /usr/lib/libexslt.0.dylib /usr/lib/libexslt.0.dylib: /usr/lib/libexslt.0.dylib (compatibility version 9.0.0, current version 9.13.0) /usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.24.0) /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.3.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 46.1.0)
Rewriting the paths of *.so files in the bundled python modules doesn't help for compatibility with Lion (AFAIU for the spawned python process, "@executable_path" does not resolve relative to the path of the main Inkscape binary to make '/usr/bin/python' load libraries from inside the Inkscape application bundle, and the same libs loaded from '/usr/lib' are not compatible):
The fantastic lxml wrapper for libxml2 is required by this extension.
Technical details: dlopen(/tmp/Inkscape-r9943-10.7+-x86_64.app/Contents/Resources/python/site-packages/lxml/etree.so, 2): Library not loaded: @executable_path/../lib/libxml2.2.dylib Referenced from: /tmp/Inkscape-r9943-10.7+-x86_64.app/Contents/Resources/python/site-packages/lxml/etree.so Reason: Incompatible library version: etree.so requires version 11.0.0 or later, but libxml2.2.dylib provides version 10.0.0
- ...
At first sight the package otherwise seems to be at about the state of gellule's blueprint/branch (which was based on Inkscape trunk from Aug 2012), with similar (known) issues (see below).
I'll be more verbose tomorrow and replay to all emails. Too late now.
Thanks - looking forward to more detailed information… :)
Regards, V
----- 2) Known issues with 'gtk-mac-integration' (from gtk-osx) (originally tracked in bug #721448 and bug #738973):
- Menubar: thousands of console messages about "object class `GtkLabel' has no property named `accel-closure'" (bug #1043266)
- Menubar: menus display no keyboard shortcuts (bug #1043266 (gtk-osx), bug #998276 (Unity))
- Menubar: 'File > Open Recent' always opens file listed at the top (bug #1043266 (gtk-osx), bug #708185 (Unity), bug #752674 (Unity))
- Bundle: Missing Dock & Finder integration (bug #1045963)
- ...
3) Known issues with GTK+/Quartz:
- Quartz backend: Modifiers (Ctrl <-> Alt/Cmd) not swapped (bug #1043266, #438603)
- Quartz backend: screen updates may be slow or delayed (compared to X11-based builds) - noticeable e.g. with the pen tool, which is rather slow (delayed screen updates when rendering the red & green path handles?) if the window size is big (e.g. maximised) and the rulers are visible; or when rotating shapes interactively (the constantly updating status bar messages possibly cause additional delays, and the rotation arrows don't update until the LBM press is released).
- Blocker: Clipboard: Random calls to output extensions (or crash) on quit after having used the clipboard within the current session (bug #1046068)
- Clipboard: Import/export via system clipboard doesn't work as expected (bug #546934)
- ...
4) Other features related to OS X & packaging:
- Adjust menu structure if using 'gtk-mac-integration' on osx: move items like 'Preferences' and 'Input Devices' to the 'Inkscape' application menu (similar to GIMP 2.8.2 with GTK+/Quartz)
- Adjust location for preferences, shared and cached items (XDG spec) to the structure recommended by Apple (~/Library/*) if compiled with Quartz backend (or possibly only if linked with 'gtk-mac-integration')
- Fonts: there should be no more issues with current versions of pango and/or fontconfig which would prevent re-enabling the system fonts directory in 'Contents/Resources/etc/fonts/fonts.conf': <!-- <dir>/System/Library/Fonts</dir> --> (dfonts are handled ok; Helvetica on >= 10.7 seems fixed, bug #408190)
- ...
5) Issues with gellule's branch/bundling script solved (or improved) with your package(s):
- add gtk-themes support: new default theme, same as current GIMP 2.8.2 package for OS X (bug #1045963)
- include python modules for extensions (still needs support for Lion) (bug #1042597)
----- [1] According to information at Apple's opensource site: - OS X 10.7.5: libxml2-21.15.1, libxslt-10.10 http://opensource.apple.com/release/mac-os-x-1075/ - OS X 10.8.2: libxml2-22.3, libxslt-11.3 http://opensource.apple.com/release/mac-os-x-1082/