Opened 14 years ago

Closed 14 years ago

#25349 closed defect (fixed)

wine, wine-devel, wine-crossover-games add xrender library dependency

Reported by: kthenriksson@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.9.1
Keywords: Cc: jyrkiwahlstedt, jeremyhu (Jeremy Huddleston Sequoia)
Port: wine, wine-devel, wine-crossover-games

Description

The configure script explicitly checks for xrender, and so there should be a direct dependency. In addition the direct dependency is needed for the new architecture checking magic to work properly.

Change History (5)

comment:1 Changed 14 years ago by jmroot (Joshua Root)

Cc: jwa@… added
Owner: changed from macports-tickets@… to ryandesign@…

Please remember to cc the maintainers. The dependency via xorg-libXcursor should be fine AFAICT.

comment:2 Changed 14 years ago by kthenriksson@…

Sorry for not ccing.

I noticed that my xrender -universal was not upgraded when I installed wine-devel, but it's possible that I had xorg-libXcursor +universal activated at the time, which would be why wine-devel did not touch xrender. So I guess the error was on my end.

It's long seemed strange to me though that dependencies don't care about ports being deactivated, only uninstalled. It seems like there should be a warning or an error to prevent the situation I got into with xrender above. If deactivating a port will break something, the user should be told I think.

comment:3 in reply to:  2 ; Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to kthenriksson@…:

The configure script explicitly checks for xrender, and so there should be a direct dependency.

Perhaps. But as Joshua said, wine-devel depends on xorg-libXcursor which depends on xrender so there should not have been a problem.

In addition the direct dependency is needed for the new architecture checking magic to work properly.

I don't think that's correct.

Replying to kthenriksson@…:

I noticed that my xrender -universal was not upgraded when I installed wine-devel, but it's possible that I had xorg-libXcursor +universal activated at the time, which would be why wine-devel did not touch xrender. So I guess the error was on my end.

It should not have been possible for you to install xorg-libXcursor +universal if its dependency xrender was not installed universal. Did you install them with MacPorts 1.8.x or 1.9.x? 1.9.x should have definitely prevented the problem; if it was with 1.8.x I would have expected xorg-libXcursor to have failed to build.

It's long seemed strange to me though that dependencies don't care about ports being deactivated, only uninstalled. It seems like there should be a warning or an error to prevent the situation I got into with xrender above. If deactivating a port will break something, the user should be told I think.

As of MacPorts 1.9, MacPorts does now warn if you try to deactivate a port that's being used by another port.

comment:4 in reply to:  3 ; Changed 14 years ago by kthenriksson@…

Replying to ryandesign@…:

It should not have been possible for you to install xorg-libXcursor +universal if its dependency xrender was not installed universal. Did you install them with MacPorts 1.8.x or 1.9.x? 1.9.x should have definitely prevented the problem; if it was with 1.8.x I would have expected xorg-libXcursor to have failed to build.

Well what happened is that xrender was installed +universal but it was also installed -universal and it was activated -universal. A sequence that results in this is

  1. port install xorg-libXcursor +universal
  2. port install xrender

For good measure, install all dependencies for wine-devel +universal before running the second command above. Once this is done, install wine-devel. There will be no error message at any point during this process, until the wine build fails because it can't find xrender.

If this seems implausible, imagine that wine-devel is already installed and then you manually install xrender as above. This results in the same problem when attempting to upgrade wine-devel.

comment:5 in reply to:  4 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jeremyhu@… added
Port: wine wine-crossover-games added
Resolution: fixed
Status: newclosed
Summary: wine-devel should have a library dependency on port:xrenderwine, wine-devel, wine-crossover-games add xrender library dependency

Replying to kthenriksson@…:

imagine that wine-devel is already installed and then you manually install xrender as above. This results in the same problem when attempting to upgrade wine-devel.

Nothing I can change in any port will prevent that course of action from resulting in that problem, so don't do that. :) It was an error for you to install xrender nonuniversal when you already had xrender installed universal and other ports installed that required xrender to be installed universal.

I agree that we are explicitly requesting xrender support (via the --with-xrender configure argument) so I added the xrender dependency to wine-devel in r69827, to wine-crossover-games in r69830, and to wine in r69831.

Note: See TracTickets for help on using tickets.