[MacPorts] #18187: ncursesw and ncurses universal builds are incorrect
#18187: ncursesw and ncurses universal builds are incorrect ----------------------------------------+----------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: ncursesw ncurses universal | Port: ncursesw ncurses ----------------------------------------+----------------------------------- Attached are proposed changes to the universal builds of ncursesw and ncurses[[BR]] using the PortGroup muniversal. After building, there are extra pre-processor commands (__LP64__, __i386__, etc)[[BR]] in the headers which would not be there using the default universal build[[BR]] mechanism. -- Ticket URL: <http://trac.macports.org/ticket/18187> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: closed Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: fixed | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Changes (by mcalhoun@…): * status: new => closed * resolution: => fixed Comment: Fixed in r46484 (maintainer timeout). -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Changes (by ryandesign@…): * status: closed => reopened * resolution: fixed => Old description:
Attached are proposed changes to the universal builds of ncursesw and ncurses[[BR]] using the PortGroup muniversal.
After building, there are extra pre-processor commands (__LP64__, __i386__, etc)[[BR]] in the headers which would not be there using the default universal build[[BR]] mechanism.
New description: Attached are proposed changes to the universal builds of ncursesw and ncurses[[BR]] using the PortGroup muniversal. After building, there are extra pre-processor commands (!__LP64!__, !__i386!__, etc)[[BR]] in the headers which would not be there using the default universal build[[BR]] mechanism. -- Comment: This change causes it to no longer be possible to create an i386/ppc universal build. -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Changes (by ryandesign@…): * cc: ryandesign@… (added) Comment: At least on a PowerPC Mac. (You end up with just a ppc build.) On an Intel Mac, it also prevents the creation of an i386/ppc/x86_64/ppc64 universal build. (You end up with just an i386/x86_64 build.) -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by mcalhoun@…): Replying to [comment:3 ryandesign@…]:
At least on a PowerPC Mac. (You end up with just a ppc build.)
On an Intel Mac, it also prevents the creation of an i386/ppc/x86_64/ppc64 universal build. (You end up with just an i386/x86_64 build.) This is intentional.[[BR]] The configure script must run binaries to work correctly (hence "set merger_must_run_binaries yes").[[BR]] The muniversal PortGroup often has difficulty merging three architectures as it does with ncurses and ncursesw (hence "set merger_no_3_archs yes").
In the Intel case, if the user has universal_archs set to "ppc i386 ppc64 x86_64," then the ppc64 can definitely not be built and the PortGroup must choose[[BR]] two architectures from the remaining valid three.[[BR]] It chooses i386 and x86_64. What was the value of universal_archs on the PowerPC build?[[BR]] The PortGroup would have removed the i386 and x86_64 architectures. The two ports used to build using -arch, but, as can be seen in the header files, the build were incorrect.[[BR]] I figured it was better to build correctly on fewer architectures than incorrectly on all architectures. -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:4> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by mcalhoun@…): Replying to [comment:2 ryandesign@…]:
This change causes it to no longer be possible to create an i386/ppc universal build. It is still possible on an Intel Mac with universal_archs set to just i386 and ppc.
-- Ticket URL: <http://trac.macports.org/ticket/18187#comment:5> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by ryandesign@…): Replying to [comment:4 mcalhoun@…]:
What was the value of universal_archs on the PowerPC build?[[BR]] The default, i386 ppc. The PortGroup would have removed the i386 and x86_64 architectures. Yes, it did. The two ports used to build using -arch, but, as can be seen in the header files, the build were incorrect.[[BR]] I figured it was better to build correctly on fewer architectures than incorrectly on all architectures. But it is better still to build correctly for all four architectures. :) Not doing so limits the 130 ports that depend on ncurses and ncursesw to a similar fate.
-- Ticket URL: <http://trac.macports.org/ticket/18187#comment:6> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by mcalhoun@…): Replying to [comment:6 ryandesign@…]:
Replying to [comment:4 mcalhoun@…]:
What was the value of universal_archs on the PowerPC build?[[BR]] The default, i386 ppc. The PortGroup would have removed the i386 and x86_64 architectures. Yes, it did. So it seems that at least the PortGroup is behaving as intended (cold comfort for some).
The two ports used to build using -arch, but, as can be seen in the header files, the build were incorrect.[[BR]] I figured it was better to build correctly on fewer architectures than incorrectly on all architectures. But it is better still to build correctly for all four architectures. :) Touche.[[BR]] Any ideas on how to accomplish such a thing?
Personally, I would not object to allowing Intel/PowerPC universal to fade away.[[BR]] The concept has always had a difficult time fitting in with the MacPorts model of "download, compile, and run." I do not think the maintainer of these ports has weighed in on this issue. -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by cerieljacobs@…): port install ncurses +universal (universal=x86_64) hangs on executing run_tic.sh: mkdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_ncurses/work/destroot-x86_64/opt/local/share/tabset DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_ncurses/work/destroot-x86_64 \ prefix=/opt/local \ exec_prefix=/opt/local \ bindir=/opt/local/bin \ top_srcdir=.. \ srcdir=. \ datadir=/opt/local/share \ ticdir=/opt/local/share/terminfo \ source=terminfo.tmp \ THIS_CC="/usr/bin/gcc-4.0 -m64" \ THAT_CC="/usr/bin/gcc-4.0 -m64" \ /bin/sh ./run_tic.sh ** Building terminfo database, please wait... Running tic to install /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_ncurses/work/destroot-x86_64/opt/local/share/terminfo ... You may see messages regarding extended capabilities, e.g., AX. These are extended terminal capabilities which are compiled using tic -x If you have ncurses 4.2 applications, you should read the INSTALL document, and install the terminfo without the -x option. ^C -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:9> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by mcalhoun@…): Replying to [comment:9 cerieljacobs@…]:
port install ncurses +universal (universal=x86_64) hangs on executing run_tic.sh: It turns out that portconfigure.tcl sets --host and --target if there is only one universal architecture.[[BR]] This causes ncursesw to install i686-apple-darwin9-tic (on my machine) instead of tic.[[BR]] r46928 should fix this behavior.
You will have to rebuild ncursesw with the universal option.[[BR]] Just to be safe, you might want to rebuild any ports which have been build with just one universal architecture and use the muniversal PortGroup. Please let me know if this fixes the problem. -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:10> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by mcalhoun@…): Are there any ideas about how to create a i386/ppc/x86_64/ppc64 universal build?[[BR]] If not, can this ticket be closed (assuming the [comment:9 previous] problem is fixed)? -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:11> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by cerieljacobs@…): I am using MacPorts from binary distribution. Tomorrow I will install MacPorts from SVN and try to see if this fixes the problem. Thanks for your fast response. -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:12> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: reopened Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by cerieljacobs@…): Checked out revision 46976, and that fixes the problem. $ port install ncurses +universal executes without problems. -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:13> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: closed Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: fixed | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Changes (by mcalhoun@…): * status: reopened => closed * resolution: => fixed Comment: r47312 should now allow 4-way universal build.[[BR]] r47312 has only been tested on an Intel/Leopard machine.[[BR]] Please reopen if the change fails to work on a different system. -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:15> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18187: ncursesw and ncurses universal builds are incorrect ------------------------------------+--------------------------------------- Reporter: mcalhoun@… | Owner: imajes@… Type: defect | Status: closed Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: fixed | Keywords: ncursesw ncurses universal Port: ncursesw ncurses | ------------------------------------+--------------------------------------- Comment(by anthony.c.smith@…): Replying to [comment:15 mcalhoun@…]:
r47312 should now allow 4-way universal build.[[BR]]
r47312 has only been tested on an Intel/Leopard machine.[[BR]] Please reopen if the change fails to work on a different system.
Still stalling on ppc64 destbuild... You may see messages regarding extended capabilities, e.g., AX. These are extended terminal capabilities which are compiled using tic -x If you have ncurses 4.2 applications, you should read the INSTALL document, and install the terminfo without the -x option. ...when building under Intel (Core 2 Duo)/Leopard as a 4-way universal build. Built MacPorts from r47390. sudo port -v install ncursesw +universal -- Ticket URL: <http://trac.macports.org/ticket/18187#comment:16> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (1)
-
MacPorts