Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

harfbuzz/pango: update to latest releases #11948

Merged
merged 9 commits into from
Oct 7, 2021

Conversation

mascguy
Copy link
Member

@mascguy mascguy commented Aug 21, 2021

Description

  • harfbuzz: update to 2.9.0
  • pango: update to 1.48.9
  • py-pygtk: patch for latest pango

Closes:

Credit goes to @i0ntempest, who did most of the work as part of PR 11772 - gimp2: update to 2.10.24

Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 10.12.6 16G2136
Xcode 9.2 9C40b

macOS 10.13.6 17G14019
Xcode 10.1 10B61

macOS 10.14.6 18G103
Xcode 11.3.1 11C505

macOS 10.15.6 19G2021
Xcode 12.0 12A7209

macOS 10.15.7 19H1217
Xcode 12.0 12A7209

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL?
  • checked your Portfile with port lint?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?

@macportsbot
Copy link

Notifying maintainers:
@ryandesign for port harfbuzz, pango.

@macportsbot macportsbot added by: member Created by a member with commit rights maintainer: open Affects an openmaintainer port type: update labels Aug 21, 2021
@mascguy mascguy added DO_NOT_MERGE_YET wip Work in progress labels Aug 21, 2021
@mascguy mascguy mentioned this pull request Aug 21, 2021
11 tasks
@mascguy mascguy removed DO_NOT_MERGE_YET wip Work in progress labels Aug 21, 2021
@mascguy mascguy marked this pull request as ready for review August 21, 2021 16:55
graphics/harfbuzz/Portfile Outdated Show resolved Hide resolved
graphics/harfbuzz/Portfile Show resolved Hide resolved
@evanmiller
Copy link
Contributor

Attempting to build pango with your Portfile on a Tiger box I get a configure error:

Run-time dependency xrender found: YES 0.9.10
Run-time dependency appleframeworks found: NO (tried framework)

meson.build:373:2: ERROR: Dependency "appleframeworks" not found, tried framework

It's using macports-gcc-7. Any ideas?

python/py-pygtk/Portfile Outdated Show resolved Hide resolved
configure.args --enable-static \
--disable-silent-rules \
--without-xft
configure.cflags-append \
Copy link
Contributor

@Gcenx Gcenx Aug 28, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a note about why this is required, since this isn’t needed for newer versions of glib

@@ -91,10 +90,14 @@ if {[variant_isset x11]} {
require_active_variants path:lib/pkgconfig/cairo.pc:cairo x11
}

pre-configure {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a note about why this is required, since this isn’t needed for newer versions of glib

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@i0ntempest Zhenfu, any thoughts?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be a mistake that I forgot to remove, it was used to force meson to not build glib as a subproject. Since we now have an updated glib this should be able to be removed without problems.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@i0ntempest Isn't that also the case for -Wno-error,-Wimplicit-fallthrough as I’ve not needed that for my updated version of pango.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That cflag was indeed needed to build on my system when I tried, did another version came out? If yes it might not be needed anymore.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have glib-2.68.4 installed on my end and haven't needed this cflag on Mojave

@mascguy mascguy force-pushed the mascguy-harfbuzz-pango branch 2 times, most recently from 20d8b68 to 290ee59 Compare August 28, 2021 17:51
@mascguy
Copy link
Member Author

mascguy commented Aug 29, 2021

Attempting to build pango with your Portfile on a Tiger box I get a configure error:

Run-time dependency xrender found: YES 0.9.10
Run-time dependency appleframeworks found: NO (tried framework)

meson.build:373:2: ERROR: Dependency "appleframeworks" not found, tried framework

It's using macports-gcc-7. Any ideas?

Hey Evan, I'll happily try to help, once the overall changes are complete. (Still looking at a few things, based on the outstanding comments.)

In the interim, is there a lower-level Meson log with detail?

@evanmiller
Copy link
Contributor

@mascguy There is a lower level Meson log, but it contains no other information about “appleframeworks” besides what I posted. I can try a verbose mode if you have any pointers.

@mascguy
Copy link
Member Author

mascguy commented Aug 29, 2021

@mascguy There is a lower level Meson log, but it contains no other information about “appleframeworks” besides what I posted. I can try a verbose mode if you have any pointers.

This is the first time I've dealt with Meson before. So until I'm a bit more familiar with it, I won't be much help.

@Gcenx
Copy link
Contributor

Gcenx commented Aug 29, 2021

if host_system == 'darwin'
  has_core_text = cc.links('''#include <Carbon/Carbon.h>
                              int main (void) {
                                CTGetCoreTextVersion ();
                                return 0;
                              }''',
                           name: 'CoreText availability',
                           dependencies: dependency('appleframeworks', modules: 'ApplicationServices'))
  if has_core_text
    pango_conf.set('HAVE_CORE_TEXT', 1)
  endif

  pango_deps += dependency('appleframeworks', modules: [ 'CoreFoundation', 'ApplicationServices' ])
endif

So I’d guess it’s not finding ApplicationServices

mascguy referenced this pull request Aug 29, 2021
* Make 'gobject-introspection' a build-only dep; re-enable license_noconflict.
@mascguy
Copy link
Member Author

mascguy commented Aug 29, 2021

Update: We finally have a working pango-devel - based on this PR - after creating a corresponding Devel version of harfbuzz. (It seems that these two are more intertwined than first expected.)

So that's a sigh of relief.

However, we still need to test and validate components dependent on these two. And that will require updating some ports to use a path-style dependency on harfbuzz, to support using the Devel version of the latter. (Whether those changes are committed to master, vs. simply testing locally with them, is still TBD. And if anyone has any thoughts/opinions on that, please don't hesitate to chime in!)

@evanmiller
Copy link
Contributor

One more issue with pango-devel and meson: the GObject Introspection dylib location is incorrect:

$ g-ir-inspect --print-shlibs Pango
shlib: ./pango/libpango-1.0.0.dylib

It should look like GLib's, with the full installed path instead of the relative build path:

$ g-ir-inspect --print-shlibs GLib
shlib: /opt/local/lib/libglib-2.0.0.dylib
shlib: /opt/local/lib/libgobject-2.0.0.dylib

I am working on a patch for Meson to address this.

@evanmiller
Copy link
Contributor

The weeds get pretty thick with the GObject Introspection bug – which affects many, many ports – but #12209 should work around it for pango-devel and other Meson-based projects.

@evanmiller
Copy link
Contributor

All of my PPC-related concerns have now been addressed 👍

@mascguy
Copy link
Member Author

mascguy commented Oct 7, 2021

Observers: Since I'm now taking on co-maintainership of these ports - and in the interest of moving forward - I'm merging this. And I'll certainly take ownership of any fallout.

@mascguy mascguy merged commit a161ba1 into macports:master Oct 7, 2021
@mascguy mascguy deleted the mascguy-harfbuzz-pango branch October 7, 2021 16:44
@evanmiller
Copy link
Contributor

Maybe close https://trac.macports.org/ticket/63496 while you're at it

@i0ntempest
Copy link
Member

Found something weird: the pygtk-2.0.pc file in revision 4 of py27-pygtk is broken, line 6 should have ${exec_prefix} but instead it has ${PYTHON_EXEC_PREFIX} which is undefined and causes GIMP build to fail.

@jmroot
Copy link
Member

jmroot commented Oct 7, 2021

The variables set by automake aren't really designed to be used outside of the makefiles it generates, and this is the sort of thing that can happen if you do that. The new variable needs to be substituted in to the .pc file with a line like this in the input file:

PYTHON_EXEC_PREFIX=@PYTHON_EXEC_PREFIX@

@mascguy
Copy link
Member Author

mascguy commented Oct 7, 2021

Thanks so much guys, appreciate the help!

My initial pass at fixing this, involves patching configure.ac. Partly because that's how a number of other Python ports do it, and using the 'PYTHON_EXEC_PREFIX' approach resulted in issues. (And simply need to fix this ASAP, to stop the bleeding.) But certainly open to a simpler/better approach, once the dust settles.

The commit is: 1a0234c

@mascguy
Copy link
Member Author

mascguy commented Oct 8, 2021

And my apologies to anyone bitten by the issue with py-pygtk: Despite our best efforts, we somehow missed this. But this is all on me, as it wasn't included in Zhenfu's changeset for the GIMP update PR; it was a late addition by Yours Truly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
by: member Created by a member with commit rights maintainer: open Affects an openmaintainer port type: update
Development

Successfully merging this pull request may close these issues.

8 participants