[Bug 43971] New: Wine 2.20 Bcrypt compilation fails under older linux systems while Wine 2.0.3 compiles fine
https://bugs.winehq.org/show_bug.cgi?id=43971 Bug ID: 43971 Summary: Wine 2.20 Bcrypt compilation fails under older linux systems while Wine 2.0.3 compiles fine Product: Wine Version: 2.20 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: bcrypt Assignee: wine-bugs(a)winehq.org Reporter: vfrederix(a)gmail.com Distribution: --- LOG: make[1]: Entering directory `/home/frd/Software_Packages/source_compile/wine/builds/wine-2.20/dlls/bcrypt' gcc -c -o bcrypt_main.o bcrypt_main.c -I. -I../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe \ -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers \ -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith \ -Wlogical-op -gdwarf-2 -gstrict-dwarf -fno-omit-frame-pointer -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 bcrypt_main.c:830:1: error: ‘key’ defined as wrong kind of tag { ^ make[1]: *** [bcrypt_main.o] Error 1 make[1]: Leaving directory `/home/frd/Software_Packages/source_compile/wine/builds/wine-2.20/dlls/bcrypt' make: *** [dlls/bcrypt] Error 2 GCC version: 4.8.1 Configure output: configure: libgnutls development files too old, bcrypt encryption won't be supported. So why is bcrypt compilling ? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 Kol <kol(a)MV8660.spb.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kol(a)MV8660.spb.edu --- Comment #1 from Kol <kol(a)MV8660.spb.edu> --- I see this bug when compiling latest versions of Wine and Wine-staging by GCC 4.8.1. I think that for some reasons the compiler refuses "key" as the name of a struct type. My workaround is to rename all instances of "struct key" to "struct key_type" in the file "bcrypt_main.c". -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 Hans Leidekker <hans(a)meelstraat.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |Zenitur(a)yandex.ru --- Comment #2 from Hans Leidekker <hans(a)meelstraat.net> --- *** Bug 44205 has been marked as a duplicate of this bug. *** -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #3 from Hans Leidekker <hans(a)meelstraat.net> --- Where and how is 'key' defined on your system? FWIW, I don't see this if I compile bcrypt with GCC 4.8.4 on Debian 9. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #4 from Ken Sharp <imwellcushtymelike(a)gmail.com> --- What distro are you using? And what version are those packages? I can compile way, way further back with Ubuntu 16.04 and GCC 5.4. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #5 from Zhenya <Zenitur(a)yandex.ru> --- Hello Wine developers! I'd prepared a VirtualBox image file with this case. This is a SUSE Enterprise 11 installed. Just unpack it using "xz -d SLE_11_SP4.vdi.xz" command, then run it! The default file-roller doesn't unpack it on my OS. Root password is "sourceengine2". cd /usr/src/packages/SPECS rpmbuild -ba wine.spec Download link: https://yadi.sk/d/AxWNQd1W3Pmtso -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #6 from Kol <kol(a)MV8660.spb.edu> --- This is not a Wine bug nor a compiler bug, but is an incompatibility between recent Wine versions and old version of GnuTLS. On my very old system equipped with GnuTLS 2.4.2 in the file <gnutls/gnutls.h> in the definition of type "gnutls_retr_st" there is a union member union key { ... } key; which is in contradiction with "struct key" in "bcrypt_main.c". In newer versions of GnuTLS this union type becomes nameless: union { ... } key; So the solution is or to upgrade GnuTLS, or simply to replace the string "union key" with "union" in the file "/usr/include/gnutls/gnutls.h". -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #7 from Zhenya <Zenitur(a)yandex.ru> --- It's really GnuTLS 2.4.1 in my SLES 11. Thank you, Kol! In my build log (attached in dublicate bug) there is a configure output string: configure: libgnutls 64-bit development files too old, bcrypt encryption won't be supported. So, old GnuTLS isn't using by Wine anyway. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #8 from Kol <kol(a)MV8660.spb.edu> --- Yes, but the file "dlls/bcrypt/bcrypt_main.c" from the Wine source includes the header file "/usr/include/gnutls/gnutls.h" with the contradictory definition unconditionally, even when old GnuTLS is not really used. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #9 from Hans Leidekker <hans(a)meelstraat.net> --- Created attachment 59986 --> https://bugs.winehq.org/attachment.cgi?id=59986 proposed fix Thanks for clearing that up. This patch should fix your build. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 Hans Leidekker <hans(a)meelstraat.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |60c31439287179c4a1414b63578 | |97bec8c387450 Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #10 from Hans Leidekker <hans(a)meelstraat.net> --- Fix committed as 60c31439287179c4a1414b6357897bec8c387450. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #11 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 3.0-rc4. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #12 from Zhenya <Zenitur(a)yandex.ru> --- Confirmed, now it compiles: https://build.opensuse.org/package/show/home:linux4humans:wine-staging/wine -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #13 from Zhenya <Zenitur(a)yandex.ru> --- P.S. Some warnings when compile Wine 3.2 using my VM image: gcc-4.8 -m64 -c -o schannel_gnutls.o schannel_gnutls.c -I. -I../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe \ -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers \ -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith \ -Wlogical-op -gdwarf-2 -gstrict-dwarf -DLDAP_DEPRECATED=1 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 schannel_gnutls.c: In function ‘schannel_get_cipher_algid’: schannel_gnutls.c:309:5: warning: case value ‘92’ not in enumerated type ‘gnutls_cipher_algorithm_t’ [-Wswitch] case GNUTLS_CIPHER_AES_192_CBC: return CALG_AES_192; ^ schannel_gnutls.c:308:5: warning: case value ‘93’ not in enumerated type ‘gnutls_cipher_algorithm_t’ [-Wswitch] case GNUTLS_CIPHER_AES_128_GCM: return CALG_AES_128; ^ schannel_gnutls.c:310:5: warning: case value ‘94’ not in enumerated type ‘gnutls_cipher_algorithm_t’ [-Wswitch] case GNUTLS_CIPHER_AES_256_GCM: ^ schannel_gnutls.c: In function ‘schannel_get_mac_algid’: schannel_gnutls.c:336:9: warning: case value ‘93’ not in enumerated type ‘gnutls_cipher_algorithm_t’ [-Wswitch] case GNUTLS_CIPHER_AES_128_GCM: return CALG_SHA_256; ^ schannel_gnutls.c:337:9: warning: case value ‘94’ not in enumerated type ‘gnutls_cipher_algorithm_t’ [-Wswitch] case GNUTLS_CIPHER_AES_256_GCM: return CALG_SHA_384; ^ schannel_gnutls.c:331:5: warning: case value ‘200’ not in enumerated type ‘gnutls_mac_algorithm_t’ [-Wswitch] case GNUTLS_MAC_AEAD: ^ schannel_gnutls.c: In function ‘schan_imp_get_key_signature_algorithm’: schannel_gnutls.c:412:5: warning: case value ‘12’ not in enumerated type ‘gnutls_kx_algorithm_t’ [-Wswitch] case GNUTLS_KX_ECDHE_RSA: return CALG_RSA_SIGN; ^ schannel_gnutls.c:413:5: warning: case value ‘13’ not in enumerated type ‘gnutls_kx_algorithm_t’ [-Wswitch] case GNUTLS_KX_ECDHE_ECDSA: return CALG_ECDSA; ^ -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=43971 --- Comment #14 from Zhenya <Zenitur(a)yandex.ru> --- Hello again! Thank you for a fix of this bug. I see that Wine 3.0 is successfully compiling on my SLES 11. I see that libGnuTLS 2.4 supports bcrypt, but it was error when Wine trying to use it. #6 says that "key" variable is already defined in libGnuTLS 2.4 headers but isn't defined in 2.6 and later. Can you add a condition for < 2.6? Somethink like "if libGnuTLS < 2.6 then define key2, else define key"? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org