Re: [gentoo-dev] Multilib project newsletter #n

2014-07-02 Thread Michał Górny
Dnia 2014-07-02, o godz. 07:24:09
Ulrich Mueller  napisał(a):

> > On Tue, 01 Jul 2014, Ian Stakenvicius wrote:
> 
> > On 01/07/14 06:44 PM, Ciaran McCreesh wrote:
> >>> || ( amd64? (
> >> 
> >> I thought we were trying to discourage that abomination...
> 
> > It's still necessary, unfortunately, until such time as everything
> > in the tree no longer needs/depends on the emul-* packages (see news
> > item #8 for progress). Otherwise, end-users would end up with
> > dependency collisions.
> 
> Sure, the second block is needed, but the point is that foo? ( )
> conditionals inside a || ( ) group should be avoided.
> 
> I wonder if the dependency couldn't be written like this, without the
> amd64? () conditional:
> 
> || (
> (
> >=dev-libs/glib-2.34.3:2[abi_x86_32(-)]
> >=virtual/opengl-7.0-r1[abi_x86_32(-)]
> )
> (
> app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
> app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
> )
> )
> 
> emul-linux-x86-* doesn't have keywords other than amd64, so it won't
> match on non-amd64 anyway.

It would but I wanted to be on the safe side when one of the developers
broke deps. I really don't want autounmask to try to keyword
emul-linux-x86 on x86 :). But maybe '-*' in the ebuild is enough.

As a note, something like this won't work properly because of
portage's broken dep resolver:

  || (
dev-libs/foo[abi_x86_32(-)]
dev-libs/foo[abi_ppc_32(-)]
  )

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


Re: [gentoo-dev] Multilib project newsletter #n

2014-07-01 Thread Ian Stakenvicius
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 02/07/14 01:24 AM, Ulrich Mueller wrote:
>> On Tue, 01 Jul 2014, Ian Stakenvicius wrote:
> 
>> On 01/07/14 06:44 PM, Ciaran McCreesh wrote:
 || ( amd64? (
>>> 
>>> I thought we were trying to discourage that abomination...
> 
>> It's still necessary, unfortunately, until such time as
>> everything in the tree no longer needs/depends on the emul-*
>> packages (see news item #8 for progress). Otherwise, end-users
>> would end up with dependency collisions.
> 
> Sure, the second block is needed, but the point is that foo? ( ) 
> conditionals inside a || ( ) group should be avoided.
> 

Ahh, sorry, missed that point entirely.


> I wonder if the dependency couldn't be written like this, without
> the amd64? () conditional:
> 
> || ( (
>> =dev-libs/glib-2.34.3:2[abi_x86_32(-)] 
>> =virtual/opengl-7.0-r1[abi_x86_32(-)]
> ) ( app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] 
> app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)] ) )
> 
> emul-linux-x86-* doesn't have keywords other than amd64, so it
> won't match on non-amd64 anyway.
> 

LGTM, will test tomorrow and confirm.

-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.22 (GNU/Linux)

iF4EAREIAAYFAlOzm3cACgkQ2ugaI38ACPCloQD/fKfmTkG9yp+e/D+tK7Xmiepb
SKPlIk9tcoUzF0h8aToBAIqAjG8hcRKzuwoHOytpEekxVV29HWgWe+2xD6Q37T/r
=XYoV
-END PGP SIGNATURE-



Re: [gentoo-dev] Multilib project newsletter #n

2014-07-01 Thread Ulrich Mueller
> On Tue, 01 Jul 2014, Ian Stakenvicius wrote:

> On 01/07/14 06:44 PM, Ciaran McCreesh wrote:
>>> || ( amd64? (
>> 
>> I thought we were trying to discourage that abomination...

> It's still necessary, unfortunately, until such time as everything
> in the tree no longer needs/depends on the emul-* packages (see news
> item #8 for progress). Otherwise, end-users would end up with
> dependency collisions.

Sure, the second block is needed, but the point is that foo? ( )
conditionals inside a || ( ) group should be avoided.

I wonder if the dependency couldn't be written like this, without the
amd64? () conditional:

|| (
(
>=dev-libs/glib-2.34.3:2[abi_x86_32(-)]
>=virtual/opengl-7.0-r1[abi_x86_32(-)]
)
(
app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
)
)

emul-linux-x86-* doesn't have keywords other than amd64, so it won't
match on non-amd64 anyway.

Ulrich


pgpOHbIf0x_q9.pgp
Description: PGP signature


Re: [gentoo-dev] Multilib project newsletter #n

2014-07-01 Thread Ian Stakenvicius
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 01/07/14 06:44 PM, Ciaran McCreesh wrote:
> On Wed, 2 Jul 2014 00:38:53 +0200 Michał Górny 
> wrote:
>> || ( amd64? (
> 
> I thought we were trying to discourage that abomination...
> 

It's still necessary, unfortunately, until such time as everything in
the tree no longer needs/depends on the emul-* packages (see news item
#8 for progress). Otherwise, end-users would end up with dependency
collisions.

However, with the way dependencies can be ordered now, once emul-*
packages are lastrite'd we can finally drop that from all of the ebuilds.


-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.22 (GNU/Linux)

iF4EAREIAAYFAlOzeuUACgkQ2ugaI38ACPDiqQD+LFuZVwv7bsaw78iISRQ8dc+l
pFU+8HnJ2zMuQe7ntmwBAJ2keeY9QKAd0i1Cztv0HaBHoafXH6ld/BmkT1onA7Q1
=jJfw
-END PGP SIGNATURE-



Re: [gentoo-dev] Multilib project newsletter #n

2014-07-01 Thread Ciaran McCreesh
On Wed, 2 Jul 2014 00:38:53 +0200
Michał Górny  wrote:
>   || (
> amd64? (

I thought we were trying to discourage that abomination...

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] Multilib project newsletter #n

2014-07-01 Thread Michał Górny
Hello, developers and users.

I'm pretty sure that all of you are waiting with bated breaths for news
on the multilib project, so I've scrambled this quick newsletter
listing our latest achievements, issues and other things you may want
to know.

In random order:

1. hasufell fixed the header wrapping issues with libsdl that triggered
build failures in programs using SDL without pkg-/sdl-config [1]. Well,
to be more exact, he removed wrapping completely, and along with it
the x86 Hermes blitter assembly and support for libggi & directfb that
created differences in  and is no longer available
in SDL2 anyway.

2. pesa is still working on Qt4 in the project overlay [2]. He's making
progress all the time but there's still a lot to do -- and if you're
wondering, the current version doesn't support multilib properly yet
(fails on wrapped headers for a start).

3. Conversions of the remaining emul-linux-x86 libraries are stalled
as 'likely unnecessary'. In other words, please do not enable multilib
on some package just because it was in emul-linux-x86 since the dawn
of Gentoo. Convert it only when something else requires it.

4. I cleaned up all arch/ profiles to support multilib consistently,
and blueness handled most of hardened/*/{musl,uclibc}. A matrix of what
needed to be done is on the wiki [4]. Most importantly, this means that
from now on you can consistently match ${ABI} inside ebuilds
independently of whether the profile is multilib or not. In multilib
ebuilds you can also match ${MULTILIB_ABI_FLAG} (TODO: export it
globally as well for non-multilib ebuilds?).

5. We (I and _AxS_) also made the native ABI flag implicit USE. This
means that from now on, every ebuild on x86 pretends to have abi_x86_32
-- even if it's not multilib. This allows the USE-deps to match earlier
versions of packages for people who do not need multilib.

6. _AxS_ found out that -- thanks to the above -- we can write
dependencies for x86 binary packages much simpler. Some details are
on the wiki [5]. Long story short, the modern deps go like:

  || (
(
  >=dev-libs/glib-2.34.3:2[abi_x86_32(-)]
  >=virtual/opengl-7.0-r1[abi_x86_32(-)]
)
amd64? (
  app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
  app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
)
  )

Once the emul-linux-x86 are gone, it will be enough to drop
the 'amd64?' block and the outer || ().

7. I have made sys-libs/lib-compat installable on amd64 and replaced
emul-linux-x86-compat with a metapackage (since the two installed
the same binary thing). I've also fixed sys-libs/lib-compat-loki to
install its libraries in lib32 rather than lib64 (QA, whert art
thou?!). Note that this may break stuff that relied on the wrong
location but we're likely going to p.mask both for security
and license issues anyway [6,7,8].

8. We also started fixing ebuilds to support multilib deps but it's
really hard work. There is a progress tracker on the wiki [9] but it
lists only packages that depend on emul-linux-x86... and there are
32-bit games keyworded amd64 with no emul-linux-x86 deps. And most of
games have incorrect, broken, mis-synced and otherwise horrible deps
anyway.

9. Following some known shortcomings and a Funtoo request, I've added
'exception' support to multilib-dep-fixor [10]. In particular, it
allows us to force lower-known-safe versions of packages than it used
to put before. If you feel like it goes too high, and you know EAPI=5
(or multilib) was there for a long time, please suggest adding another
exception.

10. Oh, and in case anyone was wondering -- stable tree is still
silently broken, and arch teams are slacking in fixing the remaining
stabilizations [11]. Would someone mind dropping some of the packages
back to ~arch?

11. If all goes well, we may be able to mask emul-linux-x86 for removal
this summer.

[1]:https://bugs.gentoo.org/show_bug.cgi?id=512430
[2]:http://git.overlays.gentoo.org/gitweb/?p=proj/qt.git;a=summary
[3]:https://bugs.gentoo.org/show_bug.cgi?id=510042
[4]:https://wiki.gentoo.org/wiki/Multilib_porting_status#Profile_fixing_status
[5]:https://wiki.gentoo.org/wiki/Project:Multilib/Tips_%26_tricks#Binary_Package_Dependencies
[6]:https://bugs.gentoo.org/show_bug.cgi?id=510960
[7]:https://bugs.gentoo.org/show_bug.cgi?id=510962
[8]:https://bugs.gentoo.org/show_bug.cgi?id=504952
[9]:https://wiki.gentoo.org/wiki/Multilib_porting_status#Dependency_update_status
[10]:https://bitbucket.org/mgorny/multilib-dep-fixor
[11]:https://bugs.gentoo.org/show_bug.cgi?id=507148

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature