On 04/01/2013 22:05, Valerio Aimale wrote:
~suv, thanks for the comments.
Thanks for jumping in and helping the project to provide OS X packages again! Much appreciated :)
This is compiled from the 0.48.4 tarball with my modifications, launches with ScriptExec; it has no aspell dictionaries but -en.
On 1/3/13 1:28 PM, ~suv wrote:
On 03/01/2013 19:31, Valerio Aimale wrote:
If you could upload your changes to the packaging scripts as well as any additional scripts (not sure how you packaged the python modules), this would allow others (not using Mountain Lion yet) to test local packages... You could for example push a new branch on launchpad.net, similar to the one for this blueprint: https://blueprints.launchpad.net/inkscape/+spec/inkscape-quartz Branch: https://code.launchpad.net/~inkscape.dev/inkscape/dev-osx Or
- if you are not familiar with bzr and launchpad - you could file a
new bug report and attach a diff to the report. I'll add some quick initial comments below, based on the currently available information about your package:
I'm creating a branch, but I'll need somebody to authorize me to join the dev team in order to publish it under the ~inkscape/ team
For now, you can also push a personal branch of lp:inkscape, as described here: https://help.launchpad.net/Code/UploadingABranch
The ownership of the branch can be changed any time later on, once the team membership has been settled, and only requires to be ~inkscape.dev if others are to be allowed to commit to the same branch as well.
- the Platypus-derived ScriptExec executable might not be needed anymore
Unless code is added to the binary inkscape itself (along with further desktop integration), using a shell script as launcher will not support any features of the dock and the native launch services - at least the shell-launcher script from gtk-mac-bundler (gtk-osx) has these issues:
Bug #1045959 https://bugs.launchpad.net/inkscape/+bug/1045959 [inkscape-quartz] add DnD, 'Open with…' support for Dock & Finder icon
- in this version, the app bundle executes the sh script directly.
Do extensions which themselves call inkscape on the commandline (e.g. restack, or dimensions), work with this kind of bundle structure and naming convention(s)?
I have a ScriptExec that works, however there are more problems. Launching with ScriptExec, forks, instead of execve'ing the inkscape-bin. This causes an extra, unsightly, icon to appear in the dock. I don't particularly like it. And the extra icon can't be removed,
Ah, yes - I forgot about that, sorry (my regular local builds are not "packaged"). ScriptExec as launcher works "ok" if the binary was built with the X11-backend, but less so with Quartz-based builds.
I tried every trick known to man. I think the way to go is what GIMP does: the apple launcher launches a sh script that execve's inkscape-bin. Launcher and UI integration should be done in the executable not the launcher script.
Agreed - any help would be appreciated to add support to the main executable, similar to how GIMP or Darktable are doing it for the Quartz-based packages…
Features:
- The version I packaged runs gtk-2.0+quartz. It does not need
X11/Xquartz anymore to run. This is the direction GIMP has gone to as well.
Which version of GTK+ 2.24 is included in the bundle? If the latest 2.24.14, does it include the patches from https://trac.macports.org/ticket/37330? Without those patches, Inkscape and GIMP builds had been basically unusable for me (crash e.g. whenever a text is highlighted in a text input box).
For me a major showstopper for releasing quartz-based packages of Inkscape (at least based on the experience with my own builds on OS X Lion) is
- Bug #1046068 https://bugs.launchpad.net/inkscape/+bug/1046068 “Inkscape (GTK+/Quartz) calls output extensions or crashes when
quitting while clipboard not empty“ which tends to make Inkscape crash on quit, whenever the clipboard had been used in the current session.
Another annoying clipboard-related crash with the Quartz backend of GTK+ seems to be fixed if using GTK+ 2.24 with the latest patches from the git branch (I haven't updated the bug report yet, because MacPorts only recently included at least two of the required fixes into the gtk2 port):
- Bug #528632 https://bugs.launchpad.net/inkscape/+bug/528632 “GTK+/Quartz: crash in
Gtk::Editable_Class::set_selection_bounds_vfunc_callback (after clipboard_unset(…) )”
That patch is already applied to gtk-2.0 that comes with MacPorts 2.1.2, which is
gtk2 @2.24.14_1+no_x11+quartz (active)
However, inkscape still crashes when clicking in a text field. It might be an inkscape problem. If I can run a debug version, I'll look into it.
Odd. Works for me (with gtk-demo as well as current trunk builds, inkscape 0.48.4 compiled via MacPorts, and local builds of the 0.48.x branch) without triggering that crash, IIRC ever since I applied the initial patch Mitch had committed quickly after I pinged him about the issue with just-released 2.24.14:
http://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=4a8df7a33c298d22bf78b947d0e861fc03ec70e1
(at that time, the patch failed to build with clang, but was ok with llvm-gcc-4.2.). The second related patch
http://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=e3e055f8551ac8ee033f361261c849c612554184
by parafin (who does the Mac packages of Darktable) then fixed that too, so that building with clang worked again. Maybe it requires the third clipboard-related patch as well?
http://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=f1c105b94fc3c3572a234c93c47252a3ff82218b
to produce more stable builds for you?
<off-topic> I gave up long time ago to try to keep any of my custom MacPorts trees up-to-date with upstream port versions all the time - it was way to unstable to be used to continuously compile, compare and test e.g. inkscape trunk builds. Currently my X11-based tree has stalled at about the level of Ubuntu Precise (with regard to the version of the dependencies Inkscape uses), and the Quartz-based tree is partially as dated (libpng 1.4, boost 1.49), partially up-to-date (cairo, poppler), and partially slightly ahead of upstream MacPorts versions…
My gtk2 (and gtk3) ports with Quartz backend use custom portfiles from a local port repo, usually based on the latest upstream release and all applicable patches from the git branch. With regard to gtk2, this means that I'm using 2.24.14 + 14 patches committed after the release, downloaded from the git branch: http://git.gnome.org/browse/gtk+/log/?h=gtk-2-24
I'm a bit reluctant right now to revert them one by one in order to confirm which ones are definitely required (on my system) for more stable builds (reluctant because each update of gtk2 itself triggers time-consuming rebuilds of the local inkscape branches, even if only minor changes had been committed to the parent branch). </off-topic>
- It uses the same theme as GIMP. I think it's a good consistency
decision, and it's the theme that looks best on Mtn Lion.
Adwaita GTK2 (from gnome-themes-standard 3.6.x) isn't bad either and IMHO does integrate better with native OS X (at least on Lion), including the look of the scrollbars. But that's a minor detail at this point… ;)
For now, I'm compiling with murrine+Zukitwo+Mac themes. I think it's trivial to change it later.
Agreed :)
I'll add some questions / comments about the bundled python modules in a separate reply tomorrow…
Regards, V