-
Notifications
You must be signed in to change notification settings - Fork 38
xft2-dev patch to complie under macOS 15 / CLT 16.1 #1169
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
Conversation
Needed cast of NULL to (unsigned long) in xftdpy.c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does build on 14.7/Xcode 16.1 as well; however I was also able to build the latest version 2.3.8 without needing to patch any additional files; the bug in https://bugs.freedesktop.org/show_bug.cgi?id=47178 seems to have long been fixed upstream.
I will try the newer upstream version, I just didn't want to get into recreating a complex patch file. |
Updated to use upstream 2.3.8 version. Only tested on Intel 15.X system |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good apart from the Shlibs-version; built on 14.7/Xcode 16.1-arm64.
I originally tried with the old AM_CPPFLAGS
patch (the freetype one in xftglyphs.c
is already merged upstream), but that does not seem to be needed anymore either – compiled with -I../include/X11/Xft
in front in any case.
After reading the shlibs policy, I am not sure why this package would be compatibility version 6.0.0 vs 5.0.0 and not 2.0.0. What sets that version number? Is it just an incremented value as the shlib version is changed? Why would it be a major change instead of a minor change to reflect the actual code revision version? |
The compatibility version is whatever |
Is the spacing bug mentioned in the unpatched .info (now at https://gitlab.freedesktop.org/xorg/lib/libxft/-/issues/1 ) fixed? @dmacks ETA: noticed @dhomeier saying https://bugs.freedesktop.org/show_bug.cgi?id=47178 was fixed. That bug was only closed because upstream moved from bugzilla to gitlab. The moved current bug URL is at my link above. |
Doesn't matter since I think the NULL fix is fine, but upstream changed it to I cherry picked the first commit (NULL fix) and applied it to master. |
I thought I had reverted everything except the NULL fix. But anyway, thanks, and I think which value is cast to what is irrelevant. I personally prefer keeping the NULL for readability of the code, but YMMV. |
Yeah, I don't care if it's a typed NULL or 0. Anyway, I have no idea why this PR shows conflicts since I specifically cherry picked the first commit in the PR. |
I see the difference, the update to the newer upstream as suggested by dhomeier was rejected. 2.3.8 vs 2.3.0 |
Been traveling, seems like I didn't push the reversion to the previous Shlibs def. Now done. |
From the build output during deb file validation at the end:
The values before 928321f were actually correct. |
The previous ones were those for 2.3.8, these are now the 2.2.0 ones again, but I thought the update to 2.3.8 was rejected since it is not clear if the spacing problem in https://gitlab.freedesktop.org/xorg/lib/libxft/-/issues/1 has really been fixed? |
# Conflicts: # 10.9-libcxx/stable/main/finkinfo/x11/xft2-dev.info # 10.9-libcxx/stable/main/finkinfo/x11/xft2-dev.patch
% otool -L /opt/sw/lib/xft2/lib/libXft.2.3.8.dylib /opt/sw/lib/xft2/lib/libXft.2.3.8.dylib: /opt/sw/lib/xft2/lib/libXft.2.dylib (compatibility version 6.0.0, current version 6.8.0)
Set compatibility version to 6.0.0 as tool declares it % otool -L /opt/sw/lib/xft2/lib/libXft.2.3.8.dylib |
ping? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs a Shlibs tweak. There is a new teeny-version available (2.3.9), but it does not appear to have substantial changes...no harm in simply getting this ticket corrected and merged, and then work on small update sometime.
Files: lib/xft2/lib/libXft.2.*dylib | ||
Shlibs: %p/lib/xft2/lib/libXft.2.dylib 5.0.0 %n (>= 2.2.0-1) | ||
DocFiles: AUTHORS COPYING ChangeLog NEWS README | ||
Shlibs: %p/lib/xft2/lib/libXft.2.dylib 6.0.0 %n (>= 2.2.0-1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parenthetical in the Shlibs field is a package-version string that indicates when the compatibility_version value changed. "As of fink package 2.3.8-1, it jumped from 5.0.0 to 6.0.0", so it should be "(>= 2.2.0-1)" not "(>= 2.2.0-1)". The Shlibs tag is indeed confusing to lots of people!
version 2.3.8 builds just fine with the edit I listed above. However that small tweak upstream update to version 2.3.9 does not build. It is looking for xproto and xrender which appear to be virtual packages that are installed. Looks like the correct PKG_CONFIG_PATH is set. Is this because it is using ppkg-config and not system-pkgconfig which does not provide xrender and xproto?
and listing of libraries:
|
renderproto is a dependency of xrender, so I included it in the debug. This is with Xquartz 2.8.5. Your Try manually running the detections one by one to see which one breaks and if there are more details:
They should all output |
I seem to have two different versions of xproto.pc ??? But either one should satisfy the dependency.
I am going to remove Xquartz as much as I can and reinstall. |
Removing all X11 and reinstalling Xquartz 2.8.5 still has package not found.
|
It's a bug in ppkg-config. Will look into it.... |
|
Ok, that is why I seem to be beating my head against a wall. Thanks for that info. |
Updated to use pkgconf instead of ppkg-config, avoid command line bug in ppkg-config Updated Shlibs to version 6.0 for library versions >= 2.3.8
Probably need to wait until pkgconf is released, but since it is broken anyway..... |
As an intermediate data point I've built and installed the
I don't have the time or nerve to figure out which of the 76 packages may be built on either openssl300-dev or openssl110-dev only (virtually everything seems to be pulling in texlive-base and ghostscript with their full host already), but willing to continue with a pointer on how to proceed. |
From that list of packages, I suspect it's #1246. @nieder has a proposed change that could fix it (#1246 (comment)). |
Thanks, will have an eye on that. In fact, recalling |
pkgconf (PR #1254) is pushed. You can either use it directly (dependency on 'pkgconf' and passing bin/pkgconf as the pkg-config executable by whatever means) or a dependency on 'pkgconfig (>= 1.0)', which supplies the default executable location bin/pkg-config as a wrapper around bin/pkgconf. I pushed the latter to the existing xft2-dev.info via ada38da |
sounds good. I am on travel for the next couple of weeks so I will pick up when I return. |
Enjoy! I just got back from vacay (I think that's what the cool kids call it) a few days ago. |
Part vacay, part work, just saw my daughter graduated, visiting relatives, then a week of work at Los Alamos lab and then a week of more vacay... |
Thanks all! I've squash-merged this PR (some parts had already been pushed, so that was easiest fix for the conflicts). Now that pkgconfig is actually pkgconf, we also don't need any special hackery regarding that. If user already has old pkgconfig installed, that's sufficient; if they try to install pkgconfig now they get pkgconf, and don't need a special path to it. |
Needed cast of NULL to (unsigned long) in xftdpy.c to comply with stricter compiler requirements.