Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 489062 - net-misc/teamviewer - true multilib support
Summary: net-misc/teamviewer - true multilib support
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks: gx86-multilib
  Show dependency tree
 
Reported: 2013-10-22 19:11 UTC by Michael Mair-Keimberger (iamnr3)
Modified: 2014-12-25 20:07 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
teamviewer-8.0.20931.ebuild.diff (teamviewer-8.0.20931.ebuild.diff,1.75 KB, patch)
2013-10-22 19:11 UTC, Michael Mair-Keimberger (iamnr3)
Details | Diff
teamviewer-8.0.20931-r1.ebuild.diff - pure multilib (teamviewer-8.0.20931-r1.ebuild.diff,1.49 KB, patch)
2013-10-29 18:27 UTC, Michael Mair-Keimberger (iamnr3)
Details | Diff
teamviewer-9.0.32150.ebuild (teamviewer-9.0.32150.ebuild,3.50 KB, text/plain)
2014-11-02 15:04 UTC, Michael Mair-Keimberger (iamnr3)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Mair-Keimberger (iamnr3) 2013-10-22 19:11:42 UTC
Created attachment 361654 [details, diff]
teamviewer-8.0.20931.ebuild.diff

This patch adds true multilib support (all it's deps) for teamviewer. I've also checked all it's dependencies and fixed them accordingly. 

There are a few x11-libs/* which are also needed even if "system-wine" is set. 
For example with system-wine "doexe wine/drive_c/TeamViewer/*" would install "/teamviewer8/tv_bin/wine/drive_c/TeamViewer/tvwine.dll.so" which depends on libX11, libXdamage, libXext, libXfixes and libXtst.
Additional "doexe ${PN}d" installs teamviewerd which depends also on libX11 and libXau.
Comment 1 Julian Ospald 2013-10-24 12:19:42 UTC
what is this for: || ( app-emulation/emul-linux-x86-xlibs[-abi_86_32] ( foo ) )
Comment 2 Michael Mair-Keimberger (iamnr3) 2013-10-25 07:58:50 UTC
(In reply to Julian Ospald (hasufell) from comment #1)
> what is this for: || ( app-emulation/emul-linux-x86-xlibs[-abi_86_32] ( foo
> ) )

Not sure what exactly you want to know, however i'll try to explain :)
Your example is an "OR" construct.
|| ( option1 ( option2 option2 ... ) ) - were option is a package.
It's either using the emul package (which includes usually more than just one package) or using explicit those packages which are needed (in this case with abi_x86_32 enabled)

The flag [-abi_x86_32] in app-emulation/emul-linux-x86-xlibs makes sure it uses the precompiled packages which are coming with the emul package, while app-emulation/emul-linux-x86-xlibs[abi_x86_32] would depend on ALL already converted multilib versions of given emul package.

Hope that answer your question, or do i have a complete misunderstanding of your question?
Comment 3 Julian Ospald 2013-10-25 13:07:29 UTC
(In reply to Michael Mair-Keimberger (iamnr3) from comment #2)
> (In reply to Julian Ospald (hasufell) from comment #1)
> > what is this for: || ( app-emulation/emul-linux-x86-xlibs[-abi_86_32] ( foo
> > ) )
> 
> Not sure what exactly you want to know, however i'll try to explain :)
> Your example is an "OR" construct.

I wouldn't be a gentoo dev if I didn't know that.

I'm saying that I don't like those constructs. It increases chances of weird blockers and false autounmask messages for users.

I'd convert the ebuild if all deps can be satisfied without emul-linux packages.
Comment 4 Pacho Ramos gentoo-dev 2013-10-26 17:17:15 UTC
(In reply to Julian Ospald (hasufell) from comment #1)
> what is this for: || ( app-emulation/emul-linux-x86-xlibs[-abi_86_32] ( foo
> ) )

It's for letting people using new multilib stuff globally to get rid of old emul sets (and metas) when not needed
Comment 5 Julian Ospald 2013-10-26 17:19:11 UTC
(In reply to Pacho Ramos from comment #4)
> (In reply to Julian Ospald (hasufell) from comment #1)
> > what is this for: || ( app-emulation/emul-linux-x86-xlibs[-abi_86_32] ( foo
> > ) )
> 
> It's for letting people using new multilib stuff globally to get rid of old
> emul sets (and metas) when not needed

Yeah, but what's wrong with just waiting until all deps are ported and then depend on those instead of emul-linux packages at all.

Mind that this is in ~arch anyway.
Comment 6 Michael Mair-Keimberger (iamnr3) 2013-10-28 08:57:31 UTC
(In reply to Julian Ospald (hasufell) from comment #3)
> (In reply to Michael Mair-Keimberger (iamnr3) from comment #2)
> > (In reply to Julian Ospald (hasufell) from comment #1)
> > > what is this for: || ( app-emulation/emul-linux-x86-xlibs[-abi_86_32] ( foo
> > > ) )
> > 
> > Not sure what exactly you want to know, however i'll try to explain :)
> > Your example is an "OR" construct.
> 
> I wouldn't be a gentoo dev if I didn't know that.

That's why i wasn't sure what you were asking :)

> 
> I'm saying that I don't like those constructs. It increases chances of weird
> blockers and false autounmask messages for users.
> 
> I'd convert the ebuild if all deps can be satisfied without emul-linux
> packages.

Pacho already explained why i made this construct, however i can rewrite the ebuild to use pure multilib. Fortunately all deps are already converted, thus this one could be already fully ported.
Comment 7 Michael Mair-Keimberger (iamnr3) 2013-10-29 18:27:27 UTC
Created attachment 362252 [details, diff]
teamviewer-8.0.20931-r1.ebuild.diff - pure multilib

Additional the pure multilib patch.
Comment 8 tman 2013-12-08 20:24:15 UTC
it would be nice if we also have this for version 9.x too.

thanks
Comment 9 Jan Buecken 2014-08-17 13:50:53 UTC
(In reply to Julian Ospald (hasufell) from comment #5)

> Yeah, but what's wrong with just waiting until all deps are ported and then
> depend on those instead of emul-linux packages at all.

You can push the first patch today without breaking things:
A new gentoo installation does not have the abi_x86_32 useflag for the emul-linux packages by default. But many packages in portage still depends hard on emul-linux.

If you push the second patch that depends on the packages directly you will get the weird blockers and false autounmask messages you are afraid of in comment 3.

Example: I have games-fps/ut2003-2225-r4 installed, at that requires app-emulation/emul-linux-x86-xlibs. I did the effort to migrate to abi_x86_32 for every emul-linux package, but what happens if I use a default installation without the useflag and you push the second patch:
BANG: You will get a wired blocker because 
x11-libs/libX11[abi_x86_32]
and
emul-linux-x86-xlibs
provide the same file. portage does not tell you that you could use the abi_x86_32 for emul-linux-x86-xlibs to solve the conflict and you have the wired blocker you wanted to avoid. I think this is the reason why wine ebuild has such constructs.




The bug is now open for round about 10 month and can be fixed so easy with the first patch with backward compatibility. The first patch enables you to migrate things step by step: I can remove emul-linux-x86-soundlibs from my system if this package is fixed!
Comment 10 Simon Bühler 2014-10-02 18:58:42 UTC
please add to tree, thanks!
Comment 11 Michael Mair-Keimberger (iamnr3) 2014-11-02 15:04:26 UTC
Created attachment 388340 [details]
teamviewer-9.0.32150.ebuild

I've made another ebuild for the latest version 9.0.32150. It's a "true" multilib version, so there are no dependencies on emul packages.
Since teamviewer is ~arch anyway, its dependencies are multilibed too and multilib stuff start to go stable (see bug #525254), i think we could finally push a mulitlib version into the tree.

Following bugs could be closed as-well:
bug #513160 - mentioned version in this bug isn't in the tree anymore
bug #522592 - version bump request to 9.0.32150
bug #526748 - with the version bump, this bug could be close too

PS: If someone wants to try out my ebuild please don't forget to copy/rename the gentoo patch (teamviewer-9.0.32150-gentoo.patch).
Comment 12 Pacho Ramos gentoo-dev 2014-12-25 20:07:18 UTC
Deps will allow moving from old emul sets to real multilib after:
*teamviewer-9.0.30203-r1 (12 Nov 2014)

  12 Nov 2014; Ian Stakenvicius (_AxS_) <axs@gentoo.org>
  +teamviewer-9.0.30203-r1.ebuild:
  conversion to full gx86-multilib dependencies, updated manifest as upstream
  distfile apparently changed.  Note, distfile for 7.x not found, maybe should
  be removed?