Opened 12 years ago
Closed 9 years ago
#36497 closed defect (wontfix)
qt4-mac @4.8.3_1 +quartz Unable to build on Tiger
Reported by: | ccarey@… | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.2 |
Keywords: | tiger | Cc: | ryandesign (Ryan Carsten Schmidt), ultrajoe@…, ifn22@… |
Port: | qt4-mac |
Description
The qt4-mac @4.8.3_1 +quartz
port is unable to build on Tiger because of a missing kCTFontFamilyNameAttribute
constant in Core Text. According to Apple’s Core Text Reference Collection, this constant is only present in Leopard and above. According to Nokia, Tiger is no longer a Tier 2 platform in Qt 4.8, the way that it was in Qt 4.7.
My recommendation would be to prevent Tiger from trying to upgrade past Qt 4.7 — I was able to compile qt4-mac @4.7.4_1 +quartz
on Tiger by patching its shadereffectitem.cpp
file, but since I only kept the modified file, I don’t think that I’d posted the patch. If Tiger is prevented from trying to upgrade past Qt 4.7, then I should be able to redownload @4.7.4_1 to be able to post my patch.
Change History (9)
comment:1 follow-up: 2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… added |
---|---|
Owner: | changed from macports-tickets@… to michaelld@… |
comment:2 Changed 12 years ago by ccarey@…
Replying to ryandesign@…:
If qt 4.8 can't build on Tiger, our options would be: […]
Even if Qt 4.8 can't be brought to Tiger, I would hope that qt4-mac 4.7.4_1
would remain available for building on Tiger. (Does your third option above allow that?) Ideally the 4.7 “branch” (is that the proper terminology within MacPorts?) would continue to receive select updates afterwards, e.g. implementation of a +psql92
variant now that PostgreSQL 9.2 has been released.
[…] Or if we can patch qt 4.8 to still build and work on Tiger, and that's not too much work, then of course we can do that.
If Qt 4.8 can be brought to Tiger, all the better. I had interpreted the lack of all Qt 4.8 versions to date building cleanly on Tiger as a sign that it would be too much effort to keep it working on Tiger, which is why I’d suggested stopping qt4-mac
on Tiger at 4.7. I’m not familiar with Core Text at all, and the current documentation indicates that most of the API was introduced in Leopard, so I wasn’t sure if Qt 4.8 introduced changes which would require a large emulation layer to bring back to Tiger — whether Nokia’s dropping of Tiger’s Tier 2 status was simply a measure of convenience for them, or if they didn’t want to put in the effort of emulating “Leopardisms” within Tiger.
If the only reason you haven't attached a patch is that you can't get back to qt4-mac 4.7, then wiki:howto/InstallingOlderPort should help you do that.
I wasn’t sure if patches to outdated versions of a particular port would still be welcomed. If they would be welcomed, then I’ll reïnstall 4.7.4_1 and submit the patch for its shadereffectitem.cpp
file.
comment:3 Changed 12 years ago by jmroot (Joshua Root)
Port: | qt4-mac added; q4-mac removed |
---|
comment:4 Changed 12 years ago by michaelld (Michael Dickens)
Sorry this has taken so long to get to. If you want to reinstall 4.7.4_1 and create a patch then I'd be willing to work with you to see if we can get Qt 4.8 running on Tiger; it will likely take a few iterations of creating patches to get it to work, if we can get it working at all without significant effort.
comment:5 follow-up: 7 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
On 10.4.11 PPC G4, I see this error with qt4-mac @4.8.4_1+quartz:
kernel/qnetworkproxy_mac.cpp: In function ?QNetworkProxy proxyFromDictionary(const __CFDictionary*)?: kernel/qnetworkproxy_mac.cpp:159: error: ?kCFProxyTypeKey? was not declared in this scope kernel/qnetworkproxy_mac.cpp:160: error: ?kCFProxyTypeNone? was not declared in this scope kernel/qnetworkproxy_mac.cpp:162: error: ?kCFProxyTypeFTP? was not declared in this scope kernel/qnetworkproxy_mac.cpp:164: error: ?kCFProxyTypeHTTP? was not declared in this scope kernel/qnetworkproxy_mac.cpp:166: error: ?kCFProxyTypeHTTPS? was not declared in this scope kernel/qnetworkproxy_mac.cpp:168: error: ?kCFProxyTypeSOCKS? was not declared in this scope kernel/qnetworkproxy_mac.cpp:172: error: ?kCFProxyHostNameKey? was not declared in this scope kernel/qnetworkproxy_mac.cpp:173: error: ?kCFProxyUsernameKey? was not declared in this scope kernel/qnetworkproxy_mac.cpp:174: error: ?kCFProxyPasswordKey? was not declared in this scope kernel/qnetworkproxy_mac.cpp:176: error: ?kCFProxyPortNumberKey? was not declared in this scope
These require 10.5 or newer too.
comment:7 Changed 12 years ago by ifn22@…
Replying to ryandesign@…:
On 10.4.11 PPC G4, I see this error with qt4-mac @4.8.4_1+quartz:
I get the same error. Is there a workaround? Can the older qt4-mac satisfy the dependency for py-pyqt4?
comment:8 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ifn22@… added |
---|
The workaround for now is to install the older qt4-mac @4.7.x by following wiki:howto/InstallingOlderPort. There is no guarantee this will be sufficient as a dependency for any port, though I would expect it to work for most.
comment:9 Changed 9 years ago by michaelld (Michael Dickens)
Resolution: | → wontfix |
---|---|
Status: | new → closed |
As per another ticket, I'm not going to tweak qt4-mac 4.8.7 to allow building on 10.5 or earlier OS X, which are not officially supported, unless someone provides me with patches. As Ryan notes, you can try building using the older port.
MacPorts doesn't really have a mechanism to prevent a particular platform from upgrading past a certain version. If qt 4.8 can't build on Tiger, our options would be:
Or if we can patch qt 4.8 to still build and work on Tiger, and that's not too much work, then of course we can do that. If the only reason you haven't attached a patch is that you can't get back to qt4-mac 4.7, then wiki:howto/InstallingOlderPort should help you do that.