Bug#824673: wine32-development-tools:i386 cannot be installed on amd64

2016-06-05 Thread Jens Reyer
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 Reyer 
Date:   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

2016-05-30 Thread Javier Serrano Polo
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

2016-05-29 Thread Jens Reyer
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

2016-05-19 Thread Javier Serrano Polo
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

2016-05-19 Thread Jens Reyer
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

2016-05-18 Thread Javier Serrano Polo
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

2016-05-18 Thread Jens Reyer
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

2016-05-18 Thread Andrey Gursky
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