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.
what is this for: || ( app-emulation/emul-linux-x86-xlibs[-abi_86_32] ( foo ) )
(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?
(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.
(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
(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.
(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.
Created attachment 362252 [details, diff] teamviewer-8.0.20931-r1.ebuild.diff - pure multilib Additional the pure multilib patch.
it would be nice if we also have this for version 9.x too. thanks
(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!
please add to tree, thanks!
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).
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?