Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
control: tags -1 + pending control: tags 823264 + patch I committed several changes on git branch master to either install wine32-tools, or 32-bit libwine-dev with wine64-tools, and document how to get 32-bit results. They should be in the next "wine-development" release, and if they work out well I'll apply them for "wine". On 05/30/2016 10:21 PM, Javier Serrano Polo wrote: > El dl 30 de 05 de 2016 a les 01:27 +0200, Jens Reyer va escriure: >> ${perl:Depends} | perl:any [i386], > > This might break in the future if ${perl:Depends} is substituted with > "perl, foobar". I considered this issue, but according to the manpage it resolves to only one value (perl or perlapi), see below. Greets jre -- commit 2e52d32383b040ff7118e46b441410d64f184655 Author: Jens ReyerDate: Sun Jun 5 19:13:52 2016 +0200 Document generating 32-bit results with the -tools packages. See: #824673 Thanks: Andrey Gursky and Javier Serrano Polo commit 4b5983772f8ecc8bf93c5da27f39e6d138ca4ab5 Author: Jens Reyer Date: Sun Jun 5 16:21:58 2016 +0200 Let libwine-dev prefer wine64-tools to wine32-tools. Otherwise, if libwine-dev is installed from a 32-bit and a 64-bit arch, the recommends may be resolved to wine32-tools and wine64-tools (which conflict with each other). This also prevents issues on arm64 with 32-bit libwine-dev installed while wine32-tools is not installable because of its dependencies there. commit 5854b7a988c4c4da97a5fec59058027a24544dfd Author: Jens Reyer Date: Sun Jun 5 16:29:31 2016 +0200 Make wineNN-tools multi-arch installable. Closes: #824673 Closes: #823264 (stable) Thanks: Javier Serrano Polo Add alternative dependencies to wine32-tools (i386 only) and make it M-A:foreign, so amd64 packages can depend on it. Note: perl:Depends resolves to only one value (perl or perlapi), so there's currently no risk of a malformed expression. A general fix has been requested in #824696 (debhelper: dh_perl should report perl:any when usage is architecture independent). Also make wine64-tools M-A:foreign, so 32-bit libwine-dev can depend on it. commit 2cce63ce6118bac660d7229ee8d9163d70280bbd Author: Jens Reyer Date: Sun Jun 5 16:04:26 2016 +0200 Add alternative dependency on 32-bit libwine-dev to wine64-tools. Note: Depending e.g. on libwineVERSION-dev:any doesn't work because that resolves for the host arch only.
Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
El dl 30 de 05 de 2016 a les 01:27 +0200, Jens Reyer va escriure: > I'll change the dependencies once I've verified if pkg:i386 > or pkg:amd64 are legit notations. If it helps, the lmms package has a relationship with this notation (lmms-vst-server:i386). https://bugs.debian.org/822269 is related to the notation and is fixed in Lintian. > ${perl:Depends} | perl:any [i386], This might break in the future if ${perl:Depends} is substituted with "perl, foobar". smime.p7s Description: S/MIME cryptographic signature
Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
I'll change the dependencies once I've verified if pkg:i386 or pkg:amd64 are legit notations. Package: wine32VERSION-tools Depends: gcc | gcc-multilib:amd64 [i386], ${perl:Depends} | perl:any [i386], Package: wine64VERSION-tools Depends: libwineVERSION-dev (= ${binary:Version}) | libwineVERSION-dev:i386 (>= ${source:Version}) [amd64], I'd add to README.Debian something like: Tools (winegcc, ...) and 32-/64 bit === For 32-bit output from the wine64-tools (or wine64-development-tools) on amd64 install libwine-dev:i386 (or libwine-development-dev:i386). Than use "-m32" (for winemaker --wine32). For winegcc specify additionally "-L/usr/lib/i386-linux-gnu/wine". Any review is welcome! Greets jre
Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
El dj 19 de 05 de 2016 a les 15:47 +0200, Jens Reyer va escriure: > So for winegcc there is no reason to install wine32-tools on amd64? An extra -L flag needs to be specified with wine64-tools. > What about the other tools in that package? No idea. > So you have wine64-tools with libwine-dev:i386 installed, but no > libwine-dev:amd64? Correct. > And you're sure that this is necessary and works? It works. I do not install libwine-dev:amd64 to avoid a lot of dependencies. > libwine-dev's *.h and *.idl files in /usr/include/wine/ are arch > independent, only the *.def files in /usr/lib//wine/ are arch > specific. > So for the former it doesn't matter which package is installed, and for > the latter I don't see how the 64-bit winegcc is able to find the 32-bit > files. The -L/usr/lib/i386-linux-gnu/wine flag is needed. smime.p7s Description: S/MIME cryptographic signature
Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
On 05/19/2016 01:21 AM, Javier Serrano Polo wrote: > winegcc from wine64-tools produces a 32-bit object if "-m32" is > specified, as expected. So for winegcc there is no reason to install wine32-tools on amd64? What about the other tools in that package? Obviously it would simplify matters a lot if we didn't have to care about different -tools packages. > wine64-tools needs to be installed manually to > avoid the 64-bit libwine-dev. So you have wine64-tools with libwine-dev:i386 installed, but no libwine-dev:amd64? And you're sure that this is necessary and works? Strange: libwine-dev's *.h and *.idl files in /usr/include/wine/ are arch independent, only the *.def files in /usr/lib//wine/ are arch specific. So for the former it doesn't matter which package is installed, and for the latter I don't see how the 64-bit winegcc is able to find the 32-bit files. Greets jre
Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
winegcc from wine64-tools produces a 32-bit object if "-m32" is specified, as expected. wine64-tools needs to be installed manually to avoid the 64-bit libwine-dev. gcc-multilib cannot have Multi-Arch set to "foreign" or "allowed". That would allow gcc-multilib:any. It would mean that a powerpc system could use the i386 gcc-multilib to produce ppc64 binaries. "-m32" is really necessary in amd64 to compile 32-bit programs. This could be mentioned in a README, but this is like gcc-multilib: winegcc works like gcc. Regarding perl, you may want to see https://bugs.debian.org/824696 . perl is needed for winemaker. smime.p7s Description: S/MIME cryptographic signature
Bug#823264: Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
control: block 823264 by 824673 Hi, [ This has already been requested/asked in #823264 (reported against wine). Added to CC now, but please send answers only to #824673. Blocking that bug by this one here, because we usually fix stuff in wine-development first. ] I wonder if it's really necessary to use wine32-tools at all. Or is winegcc from wine64-tools, with gcc-multilib installed, producing the same results if "-m32" is specified? If we indeed need wine32-tools: For the dependeny on gcc the following had been suggested: gcc | gcc-multilib:amd64 [i386] I successfully tested this here, but I'm not sure if specifying a specific package arch this way (":amd64") is allowed. Further gcc-multilib has no Multi-Arch field, while I'd expect "m-a:foreign" or at least "allowed" for this to work. I'll ask the multi-arch folks about that soon. Is it really necessary to explicitly specify "-m32" for compiling 32-bit apps on amd64 with wine32(-development)-tools? If yes, I wonder if this should be mentioned either in the README, or added with some logic to the winegcc wrapper script. We also discussed a possible multi-arch dependency on perl in #823264. I just noticed in dh_perl(1) that ${perl:Depends} gets resolved to perl *or* perlapi, while no other alternative value is mentioned there. So we may use: ${perl:Depends} | perl:any [i386] We may even use "perl:any" only, but I'd like to keep the variable in order to notice if anything changes there. Some way for dh_perl to handle this would be preferable. Or we depend on perl:any and recommend ${perl:Depends}. However I'd like to first know for what exactly perl is needed, and if perl:any would work for wine, or if native (i386) perl is needed for at least some things. Anyone? Greets jre
Bug#824673: wine32-development-tools:i386 cannot be installed on amd64
Package: src:wine-development Version: 1.9.8-1 Dear maintainer, the package wine32-development-tools:i386 cannot be installed on amd64 due to dependencies on gcc:i386 and perl:i386. However the tools can be used after installing gcc-multilib:amd64 and appending "-m32" accordingly, e.g.: "winegcc-development -m32". For now I have to repack the package to strip the broken dependencies. Is it possible to adjust them or this would introduce (undocumented in README.Debian.gz) well-known side effects? Thanks, Andrey