Opened 9 years ago

Last modified 9 years ago

#50838 new defect

Problem installing VLC - clean macports

Reported by: onaforeignshore@… Owned by: RJVB (René Bertin)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: mojca (Mojca Miklavec)
Port: VLC gtk2 py-pygtk

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I am trying to install VLC, but I am running into errors... See ticket #45822 (summary below).

VLC +dbus+full+jack+qtkit+quartz+shout+smb+svg

Error: Requested variants "+quartz" do not match those the build was started with: "+x11".
Error: Please use the same variants again, or run 'port clean gtk2' first to remove the existing partially completed build.
Error: Failed to install gtk2

After installing gtk2 +x11 and restarting VLC install:

--->  Fetching archive for py27-pygtk
Error: org.macports.archivefetch for port py27-pygtk returned: gtk2 must be installed with +quartz.
Error: Failed to install py27-pygtk

At this point I cleared the MacPorts out again and restarted with: port install VLC +dbus+full+jack+qtkit+quartz+shout+smb+svg+x11

--->  Computing dependencies for VLCError: librsvg: Variant x11 conflicts with quartz
Error: Unable to execute port: Error evaluating variants

I will be willing to help fix the issue if required

Attachments (2)

install-VLC.log (129.2 KB) - added by onaforeignshore@… 9 years ago.
VLC +qtkit+quartz log file
install-VLC-vd.log (20.1 MB) - added by onaforeignshore@… 9 years ago.
VLC +qtkit+quartz log file (full)

Change History (11)

comment:1 Changed 9 years ago by RJVB (René Bertin)

From the other ticket:

proliferation of +quartz to ports that don't properly support it (and work if they have been installed previously with the default +x11, but not when you install a dependent port with that option).

It's probably more subtle than that. I'm pretty certain those dependencies do support +quartz or +x11 properly, but many will not support both at the same time. I have never tried to install all my GTk(2) ports in +quartz mode but I would presume (hope) that they all either support +quartz (instead of +x11) or else raise an explicit error if that's not the case. There may also be a VLC dependency A that also depend on one of VLC's other dependencies (B), but require +x11 even if VLC itself doesn't use anything x11-related in A. Avahi would be an example of that (see below).

Your first error probably holds part of the clue to what is going wrong here:

Error: Requested variants "+quartz" do not match those the build was started with: "+x11".

Supposing you indeed started from scratch, this means that an attempt was made to install GTk2 before, apparently as a result of installing something that does not have a +quartz variant (I *think* that variants stop propagating when a port is requested that doesn't have the variants in question). For some reason this GTk2 install failed, otherwise you would not get a message about a build that "was started with".

AFAICS, GTk2 and py27-pygtk are pulled in as dependencies of libglade2 which is needed because of VLC dependency avahi . Avahi has x11 as a default port, though that gets unset if +quartz is requested. So that doesn't explain who might have tried to install GTk2 +x11.

Version 0, edited 9 years ago by RJVB (René Bertin) (next)

comment:2 Changed 9 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added
Owner: changed from macports-tickets@… to rjvbertin@…
Port: VLC gtk2 py-pygtk added
Version: 2.3.4

comment:3 Changed 9 years ago by mojca (Mojca Miklavec)

Keywords: VLC removed

comment:4 Changed 9 years ago by onaforeignshore@…

I did a sudo port clean all and then a sudo port -f uninstall installed. Next I did sudo port install bash and now I am running sudo port -vd install VLC +qtkit+quartz >& install-VLC.log. Will post the log if it fails, otherwise I will clean it again and start adding variants until it fails

comment:5 Changed 9 years ago by onaforeignshore@…

Build failed... have attached the log file

comment:6 Changed 9 years ago by RJVB (René Bertin)

Error: org.macports.destroot for port gtk2 returned:
DEBUG: Error code: NONE
DEBUG: Backtrace:
    while executing
"system -nice 0 $fullcmdstring"
    ("eval" body line 1)
    invoked from within
"eval system $notty $nice \$fullcmdstring"
    invoked from within
"command_exec destroot"
    (procedure "portdestroot::destroot_main" line 2)
    invoked from within
"portdestroot::destroot_main org.macports.destroot"
    ("eval" body line 1)
    invoked from within
"eval $procedure $targetname"
Warning: targets not executed for gtk2: org.macports.activate org.macports.destroot org.macports.install
Error: Failed to install gtk2
DEBUG: could not read "/opt/local/share/man/man3p/warnings::register.3pm": no such file or directory
    while executing
"::file type $file"
Please see the log file for port gtk2 for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gnome_gtk2/gtk2/main.log

That looks like an error in port:gtk2, possibly because the +quartz variant doesn't install certain files which are expected to be present in the destroot but more probably because a post-destroot block omits a ${destroot} variable somewhere.

Another thing: I should have asked you to post the output of

sudo port -vy install VLC

first. Not that it shows variant propagation reliably, but it would have given a more succinct overview of the order in which dependencies get pulled in.

Changed 9 years ago by onaforeignshore@…

Attachment: install-VLC.log added

VLC +qtkit+quartz log file

comment:7 Changed 9 years ago by onaforeignshore@…

I replaced the log file with the

sudo port -vy install VLC +qtkit+quartz

version for you

comment:8 in reply to:  6 ; Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)

Replying to rjvbertin@…:

Error: org.macports.destroot for port gtk2 returned:
DEBUG: Error code: NONE
DEBUG: Backtrace:
    while executing
"system -nice 0 $fullcmdstring"
    ("eval" body line 1)
    invoked from within
"eval system $notty $nice \$fullcmdstring"
    invoked from within
"command_exec destroot"
    (procedure "portdestroot::destroot_main" line 2)
    invoked from within
"portdestroot::destroot_main org.macports.destroot"
    ("eval" body line 1)
    invoked from within
"eval $procedure $targetname"
Warning: targets not executed for gtk2: org.macports.activate org.macports.destroot org.macports.install
Error: Failed to install gtk2
DEBUG: could not read "/opt/local/share/man/man3p/warnings::register.3pm": no such file or directory
    while executing
"::file type $file"
Please see the log file for port gtk2 for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gnome_gtk2/gtk2/main.log

That looks like an error in port:gtk2, possibly because the +quartz variant doesn't install certain files which are expected to be present in the destroot but more probably because a post-destroot block omits a ${destroot} variable somewhere.

It seems extremely unlikely to me that a missing ${destroot} would have gone unnoticed so long. I'm not sure what led you to this conclusion. Certainly not the portion of the main.log file quoted above, which contains no relevant information; the real error is earlier.

Changed 9 years ago by onaforeignshore@…

Attachment: install-VLC-vd.log added

VLC +qtkit+quartz log file (full)

comment:9 in reply to:  8 Changed 9 years ago by RJVB (René Bertin)

Replying to ryandesign@…:

Error: org.macports.destroot for port gtk2 returned:

...

Error: Failed to install gtk2 DEBUG: could not read "/opt/local/share/man/man3p/warnings::register.3pm": no such file or directory

I don't think that read attempt should try to access ${prefix} but ${destroot}${prefix} instead. You're right though that it's probably not occurring in a post-destroot block.

However, this sort of regression will typically go undetected when upgrading an existing build.

the real error is earlier.

I scanned from the end and didn't scan too far beyond the cited portion. If not this than what's the real error?

Note: See TracTickets for help on using tickets.