Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#25548 closed defect (fixed)

wine, wine-devel, wine-crossover-games: add gnutls support

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

Description

It appears that the wine-devel is compiled without gnutls support, it appears to be an error, because the secur32 dll appears to need it, this is what happens when you don't compile with gnutls:

void SECUR32_initSchannelSP(void)
{
    ERR("libgnutls not found, SSL connections will fail\n");
}

note that the main wine package appears to have a similar problem.

Change History (10)

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

Cc: jwa@… added
Keywords: gnutls wine wine-devel removed
Owner: changed from macports-tickets@… to ryandesign@…
Port: wine added

Please remember to cc the maintainers.

comment:2 Changed 10 years ago by ryandesign (Ryan Schmidt)

Sorry, I didn't understand: What steps do I need to follow to observe the problem on my system?

comment:3 Changed 10 years ago by geoffl@…

Pick an application that uses the appropriate API I guess - what I did was run etax 2010 for this financial year (Australian crappy written tax software from the government) which gave me the error. etax actually hasn't worked too well under wine for the last couple of years and I had hoped they fixed it for this year but apparently not ... anyway that was what I saw on the console. For what it's worth, etax still doesn't run properly (unimplemented certificate function in wine) after I compile wine with gnutls but at least that message went away.

The Secur32 dll is wrapped around a define based on whether you have libgnutls compiled in, if you don't then the warning message is displayed, and you seem to lose a bunch of functions.

What I did was change --without-gnutls to --with-gnutls, installed libgnutls and rebuilt wine, then the problem went away from the console.

comment:4 Changed 10 years ago by ryandesign (Ryan Schmidt)

Based on how we have the curl port set up, I thought openssl and gnutls were alternative implementations of SSL, and that you only needed one or the other, and since wine already uses openssl, I didn't think it needed to use gnutls. But you say it works fine when both are enabled?

comment:5 Changed 10 years ago by geoffl@…

Based on what I know those libraries do, I'd have thought the same, but you actually do need both. In particular it seems openssl is used for everything except for schannel.c in secur32 dll implementation, which requires gnutls. Seems a bit silly to have to require gnutls for just the secur32 dll implementation, maybe we can tell the wine guys. That's based on my understanding of what I read in the wine source.

I did build the port with both ssl and gnutls enabled, and it works fine. In particular once I built with gnutls the console error message listed in the original bug report went away.

comment:6 Changed 10 years ago by ryandesign (Ryan Schmidt)

Cc: jeremyhu@… added
Port: wine-crossover-games added
Resolution: fixed
Status: newclosed
Summary: wine-devel incorrectly compiled with --without-gnutlswine, wine-devel, wine-crossover-games: add gnutls support

Thanks, I added gnutls support to wine-devel in r69827, to wine-crossover-games in r69830, and to wine in r69831.

comment:7 Changed 10 years ago by dershow

Resolution: fixed
Status: closedreopened

Now I can't upgrade wine-devel. Although, I am not sure if this really should go here, or in a new ticket for opencdk. But, in either case, if I try to upgrade from 1.2-rc7 to 1.2-rc7_1 I get an odd error. First, it seems that it does the install of opencdk:

--->  Computing dependencies for opencdk
--->  Fetching opencdk
--->  Attempting to fetch opencdk-0.6.6.tar.bz2 from http://distfiles.macports.org/opencdk
--->  Verifying checksum(s) for opencdk
--->  Extracting opencdk
--->  Configuring opencdk
--->  Building opencdk
--->  Staging opencdk into destroot
--->  Installing opencdk @0.6.6_0
--->  Activating opencdk @0.6.6_0
--->  Cleaning opencdk

But then later it does the following:

--->  Computing dependencies for wine-devel
--->  Dependencies to be installed: gnutls lzo opencdk
--->  Fetching lzo
--->  Verifying checksum(s) for lzo
--->  Extracting lzo
--->  Configuring lzo
--->  Building lzo
--->  Staging lzo into destroot
--->  Installing lzo @1.08_0+universal
--->  Deactivating lzo @1.08_0
--->  Cleaning lzo
--->  Activating lzo @1.08_0+universal
--->  Cleaning lzo
--->  Fetching opencdk
--->  Verifying checksum(s) for opencdk
--->  Extracting opencdk
--->  Configuring opencdk
--->  Building opencdk
Error: Target org.macports.build returned: shell command failed
Log for opencdk is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_opencdk/main.log
Error: The following dependencies failed to build: gnutls opencdk
Error: Unable to upgrade port: 1
To report a bug, see <http://guide.macports.org/#project.tickets>

So, something odd is happening where wine-devel is trying to install opencdk as a dependency twice, and the second time it is failing (probably because it is already installed from the first attempt).

So now if I check, it is installed:

port installed opencdk
The following ports are currently installed:
  opencdk @0.6.6_0 (active)

but if I try to upgrade, it tries to reinstall it:

udo port upgrade outdated
Password:
--->  Computing dependencies for wine-devel
--->  Dependencies to be installed: gnutls opencdk
--->  Building opencdk
Error: Target org.macports.build returned: shell command failed
Log for opencdk is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_opencdk/main.log
Error: The following dependencies failed to build: gnutls opencdk
Error: Unable to upgrade port: 1

Any ideas?

Thanks,

comment:8 Changed 10 years ago by dershow

Cc: dersh@… added

Cc Me!

comment:9 Changed 10 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: reopenedclosed

New ticket for opencdk, please, and attach the log it mentions so we can see what happened.

I guess opencdk is built once non-universal, then it tries to upgrade it to universal but fails. So the bug might be "opencdk cannot build universal if opencdk is already installed nonuniversal". In which case the workaround is to deactivate your existing opencdk, then clean it, then install it universal.

comment:10 Changed 10 years ago by dershow

Thanks. I did create the new ticket:

#25738

I also tried what you suggested. However, the "gotcha" is that just building opencdk @universal, seems to work fine. But, if I then try to upgrade wine-devel, I again get the error. So I am not really sure if this is a wine-devel problem or a opencdk problem

Note: See TracTickets for help on using tickets.