[MacPorts] #39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port ----------------------------+-------------------------------- Reporter: maverick.woo@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Keywords: | Port: gtkmm ----------------------------+-------------------------------- The first build succeeded, and then it immediately triggered a rebuild. Log file will be attached. (I should note that my variants.conf contains "+no_x11 -x11 +quartz" if it matters---I am trying to avoid X and use quartz as much as possible.) Output of port install gtkmm after clean: {{{ ---> Computing dependencies for gtkmm ---> Fetching archive for gtkmm ---> Attempting to fetch gtkmm-2.24.3_2.darwin_11.x86_64.tbz2 from http://packages.macports.org/gtkmm ---> Attempting to fetch gtkmm-2.24.3_2.darwin_11.x86_64.tbz2.rmd160 from http://packages.macports.org/gtkmm ---> Installing gtkmm @2.24.3_2 ---> Activating gtkmm @2.24.3_2 ---> Cleaning gtkmm ---> Updating database of binaries: 100.0% ---> Scanning binaries for linking errors: 100.0% ---> Found 22 broken file(s), matching files to ports ---> Found 1 broken port(s), determining rebuild order ---> Rebuilding in order gtkmm @2.24.3 ---> Computing dependencies for gtkmm ---> Cleaning gtkmm ---> Scanning binaries for linking errors: 100.0% ---> Found 22 broken file(s), matching files to ports ---> Found 1 broken port(s), determining rebuild order ---> Rebuilding in order gtkmm @2.24.3 ---> Computing dependencies for gtkmm ---> Cleaning gtkmm ---> Deactivating gtkmm @2.24.3_2 ---> Cleaning gtkmm ---> Uninstalling gtkmm @2.24.3_2 ---> Cleaning gtkmm ---> Computing dependencies for gtkmm ---> Fetching distfiles for gtkmm ---> Verifying checksum(s) for gtkmm ---> Extracting gtkmm ---> Applying patches to gtkmm ---> Configuring gtkmm ---> Building gtkmm Error: org.macports.build for port gtkmm returned: command execution failed Please see the log file for port gtkmm for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_gtkmm/gtkmm/main.log ---> Scanning binaries for linking errors: 100.0% ---> No broken files found. }}} -- Ticket URL: <https://trac.macports.org/ticket/39320> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Changes (by larryv@…): * owner: macports-tickets@… => devans@… Comment: Thanks. In the future, please Cc relevant port maintainers. -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Comment (by egall@…): Error: {{{ :info:build libtool: link: cannot find the library `/opt/local/lib/libXrender.la' or unhandled argument `/opt/local/lib/libXrender.la' :info:build make[2]: *** [extra_defs_gen/generate_extra_defs] Error 1 :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_gtkmm/gtkmm/work/gtkmm-2.24.3/tools' :info:build make[1]: *** [all-recursive] Error 1 :info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_gtkmm/gtkmm/work/gtkmm-2.24.3' :info:build make: *** [all] Error 2 :info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_gtkmm/gtkmm/work/gtkmm-2.24.3' :info:build Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_gtkmm/gtkmm/work/gtkmm-2.24.3" && /usr/bin/make -j4 -w all :info:build Exit code: 2 }}} OP, does the file `/opt/local/lib/libXrender.la` actually exist on your system? On my system it comes from `xrender`: {{{ eric-gallagers-macbook-pro:~ root# port provides /opt/local/lib/libXrender.la /opt/local/lib/libXrender.la is provided by: xrender }}} ...which should have been dragged in as a recursive dependency: {{{ eric-gallagers-macbook-pro:~ root# port rdeps gtkmm The following ports are dependencies of gtkmm @2.24.3_2+universal: ... graphviz ... pango cairo ... xrender }}} Perhaps an explicit dependency on `xrender` should be added? -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Comment (by maverick.woo@…): xrender was never installed because I explicitly set up my variants.conf to avoid X as much as possible. On my system, "port rdeps gtkmm @2.24.3_2" does not list xrender as a dependency. I hope I am not wrong here, but from the output, apparently gtkmm builds just fine in the first pass without xrender... -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:3> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Comment (by devans@…): What variants are you using to avoid X11 ? Should be +no_x11 -x11 +quartz for quartz rendering gtkmm just provides bindings to gtk2 and its dependendents so you need to make sure they are all built with the correct variants. In this case xrender is a dependency of cairo when it is built for X11. {{{ port rdeps gtkmm }}} should show no X11 dependencies if your variants.conf is set as above. -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Comment (by maverick.woo@…): I have indeed specified those variants in my variants.conf from day 1. So, all the ports I have already installed are "as quartz as it gets". The output of "ports rdeps gtkmm" does not include xrender or any X dependencies (that I know of). I actually spent a bit more time tonight. It turns out that this dependency is from pangomm's libpangomm-1.4.la, which lists libXrender.la as a dependency... Does this make the problem more tractable? Thanks. -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Comment (by devans@…): Yes, thanks. I was able to reproduce the problem by first installing gtkmm with variants for +x11 and then trying again with variants for +quartz as you are doing. This results in pango cairo gtk2 being rebuilt for +quartz but cairomm and pangomm are not rebuilt because they don't have a +quartz variant. Thus a dependency in pangomm that was created by the +x11 build can persist in the +quartz build. You can probably fix your problem by forcing a rebuild of cairomm and pangomm before trying the build gtkmm again {{{ sudo port -n upgrade --force cairomm pangomm sudo port -f install gtkmm }}} -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:7> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to broken port -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Comment (by maverick.woo@…): The two commands above did not fix the problem, but they did give me the right hint: this is a case where I need build from source. After "port uninstall pangomm", I did a "port install -s pangomm". I verified that this gives me a libpangomm-1.4.la that no longer contains any dependency on libXrender.la. Afterwards, I was able to install gtkmm just fine. I am happily running inkscape on quartz now. Thanks all! -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to implicit pangomm variant mismatch -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: fixed | Keywords: Port: gtkmm | -----------------------------+---------------------- Changes (by devans@…): * status: new => closed * resolution: => fixed Comment: The lesson to remember here is that, at this time, the available binary archives are only built (if at all) for a given port's default variants. In the case of pangomm this is effectively +x11 because that's pango's default. I have committed a fix in r106728 that: * adds variants +quartz +x11 (default +x11) to cairomm, pangomm and gtkmm since these ports effectively inherit the variants of their dependents. * adds checks that require variants of a given port's dependents to match its own variants Thanks for your report and for your help working through this problem. -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:9> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to implicit pangomm variant mismatch -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Changes (by cal@…): * status: closed => reopened * resolution: fixed => Comment: This breaks the upgrade path for all users that have pango and cairo installed with +quartz, requiring manual intervention: {{{ ---> Computing dependencies for pangomm ---> Fetching archive for pangomm Error: org.macports.archivefetch for port pangomm returned: path:lib/pkgconfig/cairo.pc:cairo cairomm pango must be installed without +quartz. Please see the log file for port pangomm for details: /opt/local/var/macports/logs/_opt_dports_x11_pangomm/pangomm/main.log Error: Unable to upgrade port: 1 }}} While manually running {{{ sudo port upgrade --enforce-variants pangomm -x11 +quartz }}} works, it would be easier, if the Port checked whether pango or cairo were already installed and changed its `default_variants` depending on their installed variants. After all, there's no point in setting a `default_variant` that will not be installable on a user's system. -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:10> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to implicit pangomm variant mismatch -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: | Keywords: Port: gtkmm | -----------------------------+---------------------- Comment (by egall@…): Replying to [comment:10 cal@…]:
This breaks the upgrade path for all users that have pango and cairo installed with +quartz, requiring manual intervention:
{{{ ---> Computing dependencies for pangomm ---> Fetching archive for pangomm Error: org.macports.archivefetch for port pangomm returned: path:lib/pkgconfig/cairo.pc:cairo cairomm pango must be installed without +quartz. Please see the log file for port pangomm for details:
/opt/local/var/macports/logs/_opt_dports_x11_pangomm/pangomm/main.log
Error: Unable to upgrade port: 1 }}}
While manually running {{{ sudo port upgrade --enforce-variants pangomm -x11 +quartz }}} works, it would be easier, if the port checked whether pango or cairo were already installed and changed its `default_variants` depending on their installed variants. After all, there's no point in setting a `default_variant` that will not be installable on a user's system.
Made a separate issue for this: #39397 -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:11> MacPorts <http://www.macports.org/> Ports system for OS X
#39320: gtkmm @2.24.3_2 - triggers rebuild due to implicit pangomm variant mismatch -----------------------------+---------------------- Reporter: maverick.woo@… | Owner: devans@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.1.3 Resolution: fixed | Keywords: Port: gtkmm | -----------------------------+---------------------- Changes (by devans@…): * status: reopened => closed * resolution: => fixed Comment: Fix committed in r107000 that allows cairo and pango to have both +quartz and +x11 variants when building cairomm, pangomm, gtkmm. This should fix the problem or at least it does so for me. Feel free to reopen if I've missed something. -- Ticket URL: <https://trac.macports.org/ticket/39320#comment:12> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts