Skip to content

Instantly share code, notes, and snippets.

@su-v
Last active February 16, 2017 18:42
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save su-v/05065ccf63bcd1e97118b053c0ba4d73 to your computer and use it in GitHub Desktop.
Save su-v/05065ccf63bcd1e97118b053c0ba4d73 to your computer and use it in GitHub Desktop.
Notes for Inkscape 0.92.1pre1 provided by tghs as tested on OS X 10.7.5.

All tests done on Mac OS X 10.7.5 Lion:

Poppler

  • Test ok: PDF import (internal, poppler/cairo)

  • Test ok: check for poppler-data (test cases: Akita bus routes.pdf, 0610116.pdf)

  • Tip: disable http(s) for poppler's cli clients to avoid pulling in curl (with openssl deps)
    Variant added to local port file last year (not in sync with latest MacPorts or latest poppler!):

    TODO: provide diff to add modified poppler port to packaging/macosx/ports (if considered useful).
    NOTE: libssl and libcrypto are also pulled in as dependencies of libgnomevfs, so the tip for poppler would probably only make sense if the inkscape build for Inkscape.app was configured with --without-gnome-vfs. Disabling (deprecated) gnome-vfs would not harm the app bundle: opening files via http/https links in the file chooser dialog never worked with Inkscape application packages for OS X, likely because the runtime requirements are not met (gnome-vfs-daemon, requires dbus session bus).

Fontconfig

Fontconfig warning: line 150: blank doesn't take any effect anymore. please remove it from your fonts.conf
Inkscape's fontconfig fonts.conf file probably should be updated to match the one shipped with latest upstream fontconfig release.
Done: r15368 packaging/macosx: Remove deprecated "blank" element from fontconfig

Pango backend

MacPorts these days always defaults to use the native backend - unclear to me why one would do that if the rest is all installed as X11-based (using fontconfig). For 'crisp' GUI font renderering, pangocairo font backend can be changed via ENV in the inner launcher script. This may also help with previews of fonts in the font family dropdown, and in the 'Text and Font' dialog if fontconfig font dirs are extended beyond what the coretext backend sees via native known Font installation directories.

97a98,101
> # test font backend rendering
> export PANGOCAIRO_BACKEND="fontconfig"
> #export PANGOCAIRO_BACKEND="coretext"
> 

Diff of changes in launcher script in Inkscape.app for testing: switch-pangocairo-backend-in-Inkscape-app-v1.diff
Done: r15371 packaging/macosx: Use fontconfig pangocairo backend for crisper UI text rendering

Font Features

  • Done: check whether $PANGOCAIRO_BACKEND affects the new font features
    (preview in Text and Font dialog, and on-canvas)
    AFAICT opentype font features on-canvas work with either backend if supported by the font (examples are the Linux Libertine fonts, or Mozilla's Fira Sans). The font preview in 'Text and font' (and in the font family dropdown menu) may differ:
    • coretext backend (current): common ligatures (e.g. 'fl') with a font like Lucida Grande render in the 'Text and Font' preview, but not on-canvas. Another font with special AAT features is Zapfino (compare the preview of the word Zapfino to what is rendered on-canvas). Some fonts fail to render as preview (e.g. all Linux Libertine fonts).
    • fontconfig backend: font preview and on-canvas text are mostly in sync (but may differ from how text is rendered elsewhere in native applications which use Apple's font backend).
  • TODO (for later): Once Inkscape switches entirely to Quartz backend on macOS, internal font handling in Inkscape at that point will likely require partial rewrite (to support native coretext backend in pango/harfbuzz (?)), and further investigation of the full scope of supported font features (Apple's coretext does support (some) opentype features, but it appears that coretext via pango/harfbuzz does not?).
    Create list with commonly-used fonts known to include Advanced Typography Tables supported in
    • fontconfig/freetype/pango (OpenType) only,
    • coretext (AAT) only,
    • both.

Import Clip Art

Menu entry is defunct (bug #943148), should be disabled in official packages, see commit r13679 in the stable release branch for 0.91.
Done: r15367 menus: ifdef out OCL menu entries for macOS builds

Adwaita GTK2

With Inkscape 0.91, I made the decision to bundle the standard Adwaita GTK2 theme from GNOME with Inkscape.app instead of the by now somewhat "old-fashioned" customized Clearlooks Quicksilver theme which differs a lot more from the native appareance on more recent OS X versions than standard Adwaita. The only change I included at the time with Inkscape.app (0.91) was a workaround to address a minor glitch which is likely caused by code / widgets imported into Inkscape from GIMP (GimpSpinScale), otherwise the theme was included as designed and distributed by upstream GNOME.

Last year (between GNOME 3.18 and 3.20), the GTK2 version of Adwaita was refactored to better match with GNOME's default (built-in) GTK3 theme (Adwaita) - many small details changed: lot of widgets received wider margins or padding, the menu bar was adopted to the GTK3 appearance, the radio and check buttons were redesigned etc.
Bugzilla reports tracking the initial rework:

Inkscape incompatibilities:

  • Tool icons are cut off:
    first seen after Adwaita GTK2 was refactored for GNOME 3.20.

  • GimpSpinScale widgets:
    Examples: opacity and blur sliders in Fill and Stroke, parameter sliders in extension dialogs.

    Original Patched
    gimpspinscale-orig gimpspinscale-patched

Upstream changes (gnome-themes-standard):

  • Missing menu borders:
    (mentioned by Windell in message on the devel mailing list)
    Among the changes of the rework was the removal of the menu border, as was also mentioned at the time in the original report in GNOME bugzilla which tracked the redesign of the menubar: Bug 747679 - Make menubar like gtk3 theme. Since then, related reports have been filed in GNOME's bugzilla but have not been addressed. As far as I understand, the lack of a visible border is less noticeable on main Linux desktops where a compositor adds dropshadows to the menus:
  • Checkbox changed appareance:
    (mentioned by Windell in message on the devel mailing list)
    The changed checkbox a is another decision made by designers of the GNOME standard theme (Adwaita GTK2) to better match the GTK3 theme - is there a specific reason that the new clipped checkmarks are detriment to Inkscape's usage on OS X, and that Inkscape packagers for OS X should modify certain aspects of the theme and its assets to restore or mimic parts of the older Adwaita GTK2 theme?
    Upstream reports tracking the rework:

Proposed fixes for Inkscape.app:

Done: r15374 packaging/macosx: Add app bundle patching mechanism
Done: r15375 packaging/macosx: Add su_v's theme patches

Extensions

  • Test ok: Render > Gears > Gear
  • Test ok: Raster extensions (ImageMagick++)
  • Check nested calls to inkscape via Popen in extension scripts:
    • Test ok: Extensions > Arrange > Restack (launches inkscape cli to query all objects)
    • Test ok: Save as GIMP XCF maintaining layers (*.xcf) (spawns inkscape to export layer to PNG - does spawned process correctly find share/inkscape/ui/units.xml?)

Input Formats

  • Test ok: PDF with internal import, import via poppler/cairo
  • Test ok: CDR with internal import (librevenge, libcdr)
  • Test ok: UniConvertor (CDR import, simple test case: Frenchcurve.cdr)
  • Test ok: UniConvertor (AI import (Adobe Illustrator 8.0 and below), simple test case: logo.ai)
  • Test ok: various raster graphics formats provided via GdkPixbuf
  • Test ok: EMF, WMF, VSD(X), VDX, WPG, XAML,
  • Test ok: PostScript formats (PS, EPS) are not listed in the file type selector of the file chooser dialog.
    (This is expected: Ghostscript (for ps2pdf) is a large dependency and not included in the app bundle)
  • TODO (help needed): test bitmap import (with resolution taken from image) on OS X 10.8 and later
    (see also bug #1398521, #1410793)

Output Formats

SVG Fonts

  • Test ok: draw glyph, add new SVG font, check preview for glyph

Print preview

  • Test ok: launches PDF in Apple's Preview.app

Spellcheck

  • Test ok: spellcheck text on-canvas (en_US)
    (previous crash with 0.91 is fixed, see also bug #1497020)
  • Test fail (IIRC expected): spellcheck in 'Text and Font > Text'
    related console message: gtkspell error: enchant error for language: en_US.UTF-8

Tablet

  • Test ok: basic tablet usage with pressure sensitivity (Wacom BAMBOO CTH-470)

Links in GUI text, labels

About screen

Version string is Inkscape 0.92.1pre1 r (missing revno): bug in builds from bzr branch based on osx-build.sh?
Done: r15372 CMake: Populate bzr rev number for autotools build

Packaging: osx-build.sh

From the build info pasted inline for the gallery item:

LibWPD ---
LibWPG ---
Libcdr ---
Libvisio ---

I recall that the version check functions had flaws, and I can see that the libs are included in the app bundle:

-rwxr-xr-x   1 su_v  staff    163084 Feb  7 13:40 librevenge-0.0.0.dylib*
-rwxr-xr-x   1 su_v  staff    104036 Feb  7 13:40 librevenge-stream-0.0.0.dylib*
-rwxr-xr-x   1 su_v  staff    516516 Feb  7 13:40 libwpd-0.10.10.dylib*
-rwxr-xr-x   1 su_v  staff     98244 Feb  7 13:40 libwpg-0.3.3.dylib*
-rwxr-xr-x   1 su_v  staff    607536 Feb  7 13:40 libcdr-0.1.1.dylib*
-rwxr-xr-x   1 su_v  staff    488324 Feb  7 13:40 libvisio-0.1.1.dylib*

Possibly the info can be fixed with a simple revbump for the pkg-config check, or by updating/fixing the port names used for the port version check?
Done: r15370 packaging/macosx: Update package versions in osx-build.sh

Packaging: Info.plist

Minor detail: update copyright years
Done: r15369 packaging/macosx: Bump copyright years

Later Notes (todo)

Inkscape-0.92.1-tghs_1-x11-10.7-x86_64-notes.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment