Code: Select all
app-emulation/open-vm-tools ~ARM64Code: Select all
<app-emulation/open-vm-tools-9999 ~ARM64
Code: Select all
app-emulation/open-vm-tools **Code: Select all
app-emulation/open-vm-tools amd64
Code: Select all
~ # emerge -vp app-emulation/open-vm-tools
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 0.49 s (backtrack: 0/20).
emerge: there are no ebuilds to satisfy "x11-libs/libdrm[video_cards_vmware]".
(dependency required by "app-emulation/open-vm-tools-12.2.5::gentoo[resolutionkms]" [ebuild])
(dependency required by "app-emulation/open-vm-tools" [argument])
Code: Select all
emerge -vp x11-libs/libdrm
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 0.69 s (backtrack: 0/20).
[ebuild R ] x11-libs/libdrm-2.4.120::gentoo USE="udev -test -tools -valgrind" VIDEO_CARDS="-amdgpu -exynos -freedreno (-intel) -nouveau (-omap) -radeon -tegra -vc4 -vivante (-vmware)" 0 KiBThat output says VIDEO_CARDS=vmware is masked for this package. It may be masked for all packages on this architecture or just for this one package. Regardless, the mask overrides your request to enable it, so you end up with it disabled, and having it disabled is not acceptable to app-emulation/open-vm-tools[resolutionkms]. Disable USE=resolutionkms on app-emulation/open-vm-tools or override the mask on x11-libs/libdrm[video_cards_vmware]. As always when overriding a mask, consider that the mask may have been put there to block a known broken configuration, so overriding it may only lead you to a different error - at compile time, or possibly as a nasty bug at run time. In this specific case, it looks like the base profile masks video_cards_vmware, then the Intel-based profiles negate that mask. As a non-Intel profile, yours does not negate it, so the mask from base prevails. The mask message states # not needed on non-x86, non-amd64 systems, so overriding it is probably safe. However, as I was not the one to write the mask and have never discussed it with the person who did, this is pure speculation on my part.flysideways wrote:x11-libs/libdrm is installed and vmware has been in make.conf VIDEO_CARDS since I first built this install.Code: Select all
emerge -vp x11-libs/libdrm These are the packages that would be merged, in order: Calculating dependencies... done! Dependency resolution took 0.69 s (backtrack: 0/20). [ebuild R ] x11-libs/libdrm-2.4.120::gentoo USE="udev -test -tools -valgrind" VIDEO_CARDS="-amdgpu -exynos -freedreno (-intel) -nouveau (-omap) -radeon -tegra -vc4 -vivante (-vmware)" 0 KiB
Code: Select all
dev-libs/libdnet ~arm64
app-emulation/open-vm-tools **
Code: Select all
# emerge --nodeps -av open-vm-tools
With what error did it fail? Note I suggested amd64, not ~amd64, because there are currently no unstable keyword ebuilds of that package.eaf wrote:I had to use '**' for open-vm-tools because with ~amd64 alone it still wouldn't install,
You could rely on the implicit-ARCH behavior here:eaf wrote:libdnet also required some alterations:Code: Select all
dev-libs/libdnet ~arm64
Code: Select all
dev-libs/libdnetHow did you override this?eaf wrote:Then I too ran into VIDEO_CARDS=vmware issues around libdrm, but overrode that
This is almost always wrong. Why did you use --nodeps here?eaf wrote:and finally installed the tools via:Code: Select all
# emerge --nodeps -av open-vm-tools
This also looks incorrect to me. You probably need to add the result of pkg-config CFLAGS for the package that provides that header, which would then add /usr/include/drm to the search path.eaf wrote:Oh, and there was a compile error due to failure to include vmwgfx_drm.h. I saw the same even with building open-vm-tools manually, straight from github. Had to add a /usr/include/vmwgfx_drm.h with a single "#include <drm/vmwgfx_drm.h>"
Code: Select all
!!! All ebuilds that could satisfy "open-vm-tools" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-emulation/open-vm-tools-12.2.5::gentoo (masked by: missing keyword)
- app-emulation/open-vm-tools-12.2.0::gentoo (masked by: missing keyword)Code: Select all
!!! All ebuilds that could satisfy "x11-libs/libdrm[video_cards_vmware]" have been masked.
!!! One of the following masked packages is required to complete your request:
- x11-libs/libdrm-9999::gentoo (masked by: missing keyword)
- x11-libs/libdrm-2.4.120::gentoo (masked by: ~arm64 keyword)
I tried everything that came to mind, and what I think I found in wiki.gentoo.org, with no success.override the mask on x11-libs/libdrm[video_cards_vmware]
That is consistent with what I said above. No package is keyworded as ~arm64, so accepting that keyword does not help.eaf wrote:If I use ~arm64 instead of **, I get this:
Code: Select all
!!! All ebuilds that could satisfy "open-vm-tools" have been masked. !!! One of the following masked packages is required to complete your request: - app-emulation/open-vm-tools-12.2.5::gentoo (masked by: missing keyword) - app-emulation/open-vm-tools-12.2.0::gentoo (masked by: missing keyword)
It looks like this could have been handled by accepting the ~arm64 keyword. More importantly, when next you try to update @world, you will likely be forced to address the dependency.eaf wrote:And --nodeps was added to avoid dealing with VIDEO_CARDS:Code: Select all
!!! All ebuilds that could satisfy "x11-libs/libdrm[video_cards_vmware]" have been masked. !!! One of the following masked packages is required to complete your request: - x11-libs/libdrm-9999::gentoo (masked by: missing keyword) - x11-libs/libdrm-2.4.120::gentoo (masked by: ~arm64 keyword)
That suggests that whatever you could think of was incorrect. If you need help solving this, please show us what you did. I would expect that negating the mask via /etc/portage/profile should suffice.flysideways wrote:I tried everything that came to mind, and what I think I found in wiki.gentoo.org, with no success.Hu wrote:override the mask on x11-libs/libdrm[video_cards_vmware]

You are correct.That suggests that whatever you could think of was incorrect.
Code: Select all
-video_cards_vmwareCode: Select all
* Messages for package app-emulation/open-vm-tools-12.2.5:
* CONFIG_VMWARE_BALLOON: is not set when it should be.
* CONFIG_VMWARE_PVSCSI: is not set when it should be.
* CONFIG_X86_IOPL_IOPERM: is not set when it should be.
* Please check to make sure these options are set correctly.
* Failure to do so may cause unexpected problems.
Code: Select all
me@build ~ $ neofetch
-/oyddmdhs+:. me@build
-odNMMMMMMMMNNmhy+-` --------
-yNMMMMMMMMMMMNNNmmdhy+- OS: Gentoo Linux aarch64
`omMMMMMMMMMMMMNmdmmmmddhhy/` Host: VMware20,1 1
omMMMMMMMMMMMNhhyyyohmdddhhhdo` Kernel: 6.7.4-gentoo-dist
.ydMMMMMMMMMMdhs++so/smdddhhhhdm+` Uptime: 47 secs
oyhdmNMMMMMMMNdyooydmddddhhhhyhNd. Packages: 948 (emerge)
:oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh Shell: bash 5.2.26
.:+sydNMMMMMNNNmmmdddhhhhhhmMmy Resolution: 3456x2160
/mMMMMMMNNNmmmdddhhhhhmMNhs: DE: GNOME 45.2
`oNMMMMMMMNNNmmmddddhhdmMNhs+` WM: Mutter
`sNMMMMMMMMNNNmmmdddddmNMmhs/. WM Theme: Adwaita
/NMMMMMMMMNNNNmmmdddmNMNdso:` Theme: Adwaita [GTK2/3]
+MMMMMMMNNNNNmmmmdmNMNdso/- Icons: Adwaita [GTK2/3]
yMMNNNNNNNmmmmmNNMmhs+/-` Terminal: gnome-terminal
/hMMNNNNNNNNMNdhs++/-` CPU: Apple - (8)
`/ohdmmddhys+++/:.` GPU: 00:0f.0 VMware Device 0406
`-//////:--. Memory: 975MiB / 39092MiB
Code: Select all
rc-service vmware-tools -v start
rc-update add vmware-tools default
Code: Select all
-video_cards_vmware

Code: Select all
dmesg | grep vmwgfx
[ 2.388683] vmwgfx 0000:00:0f.0: [drm] Register MMIO at 0x0x000000003d000000 size is 4096 kiB
[ 2.388688] vmwgfx 0000:00:0f.0: [drm] VRAM at 0x0000000070000000 size is 131072 kiB
[ 2.388695] vmwgfx 0000:00:0f.0: [drm] Running on SVGA version 3.
[ 2.388698] vmwgfx 0000:00:0f.0: [drm] Capabilities: cursor, cursor bypass, alpha cursor, 3D, pitchlock, irq mask, traces, command buffers, command buffers 2, gbobject, dx, hp cmd queue, no bb restriction, cap2 register,
[ 2.388700] vmwgfx 0000:00:0f.0: [drm] Capabilities2: grow otable, intra surface copy, dx2, gb memsize 2, screendma reg, otable ptdepth2, non ms to ms stretchblt, cursor mob, mshint, cb max size 4mb, dx3, frame type, trace full fb, extra regs, lo staging,
[ 2.388701] vmwgfx 0000:00:0f.0: [drm] DMA map mode: Caching DMA mappings.
[ 2.388745] vmwgfx 0000:00:0f.0: [drm] Legacy memory limits: VRAM = 4096 kB, FIFO = 256 kB, surface = 524288 kB
[ 2.388746] vmwgfx 0000:00:0f.0: [drm] MOB limits: max mob size = 1048576 kB, max mob pages = 2097152
[ 2.388747] vmwgfx 0000:00:0f.0: [drm] Maximum display memory size is 262144 kiB
[ 2.423454] vmwgfx 0000:00:0f.0: [drm] No GMR memory available. Graphics memory resources are very limited.
[ 2.423560] vmwgfx 0000:00:0f.0: [drm] Screen Target display unit initialized
[ 2.425047] vmwgfx 0000:00:0f.0: [drm] Using command buffers with DMA pool.
[ 2.426044] vmwgfx 0000:00:0f.0: [drm] Available shader model: SM_5_1X.
[ 2.448219] [drm] Initialized vmwgfx 2.20.0 20211206 for 0000:00:0f.0 on minor 0
[ 2.451529] vmwgfx 0000:00:0f.0: [drm] fb0: vmwgfxdrmfb frame buffer deviceCode: Select all
Sanity check failed:
> app-emulation/open-vm-tools-12.2.5
> depend ~arm64 stable profile default/linux/arm64/17.0 (12 total)
> x11-libs/libdrm[video_cards_vmware]
> depend ~arm64 dev profile default/linux/arm64/17.0/hardened/selinux (1 total)
> x11-libs/libdrm[video_cards_vmware]
> rdepend ~arm64 stable profile default/linux/arm64/17.0 (12 total)
> x11-libs/libdrm[video_cards_vmware]
> rdepend ~arm64 dev profile default/linux/arm64/17.0/hardened/selinux (1 total)
> x11-libs/libdrm[video_cards_vmware]
Code: Select all
/var/db/repos/gentoo/profiles $ grep -R video_cards_vmware ./
./arch/amd64/use.mask:-video_cards_vmware
./arch/riscv/use.mask:video_cards_vmware
./arch/base/use.mask:video_cards_vmware
./arch/x86/use.mask:-video_cards_vmware
./prefix/darwin/macos/arch/x64/use.mask:-video_cards_vmwareAssignee: bug-wranglers@gentoo.org → maintainer-needed@gentoo.org

which looks likeAnyhow, I ended up fixing the libdrm issue by adding
Code: Select all
-video_cards_vmware
to the /var/db/repos/gentoo/profiles/arch/arm64/use.mask file for now. I expect it to get overwritten.
Code: Select all
snip
...
# Unmask ARM-only video-cards
-video_cards_exynos
-video_cards_freedreno
-video_cards_lima
-video_cards_nouveau
-video_cards_panfrost
-video_cards_tegra
-video_cards_v3d
-video_cards_vc4
-video_cards_amdgpu
-video_cards_radeon
-video_cards_radeonsi
-video_cards_vmware
...Code: Select all
$ grep -R video_cards_vmware ./
./prefix/darwin/macos/arch/x64/use.mask:-video_cards_vmware
./arch/arm64/use.mask:-video_cards_vmware
./arch/base/use.mask:video_cards_vmware
./arch/riscv/use.mask:video_cards_vmware
./arch/x86/use.mask:-video_cards_vmware
./arch/amd64/use.mask:-video_cards_vmware
Code: Select all
>=media-libs/mesa-24.0.3 xaThe emerged versions of open-vm-tools (12.2.5) and xf86-video-vmware (13.4.0) are the same as the stable amd64 and x86.Its two commits in one PR, if you want to make it easy for maintainers
The first commit fixes the profile, the second adds the ~arm64 keyword.

Code: Select all
-video_cards_vmwareCode: Select all
# Unmask ARM-only video-cardsFor this step, you change the KEYWORDS= line in those ebuilds so that nobody needs to accept **. I suggest changing it to add ~arm64 in both of those ebuilds, to reflect that it is still in testing, but is at least possible to use.flysideways wrote:I do not know how to express what it is that I have done by adding ** to a package_accept_keywords file for both open-vm-tools and xf86-video-vmware.


Code: Select all
* Package: app-emulation/open-vm-tools-12.2.5:0
* Repository: local
* USE: X arm64 deploypkg dnet elibc_glibc fuse icu kernel_linux pam resolutionkms ssl vgauth
* FEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox
* Determining the location of the kernel source code
* Found kernel source directory:
* /usr/src/linux
* Found sources for kernel version:
* 6.7.10-gentoo-dist
* Checking for suitable kernel configuration options ...
* CONFIG_VMWARE_BALLOON: is not set when it should be.
* CONFIG_VMWARE_PVSCSI: is not set when it should be.
* CONFIG_X86_IOPL_IOPERM: is not set when it should be.
[ !! ]
* Please check to make sure these options are set correctly.
* Failure to do so may cause unexpected problems.
>>> Unpacking source...
>>> Unpacking open-vm-tools-12.2.5-21855600.tar.gz to /var/tmp/portage/app-emulation/open-vm-tools-12.2.5/work
>>> Source unpacked in /var/tmp/portage/app-emulation/open-vm-tools-12.2.5/work
>>> Preparing source in /var/tmp/portage/app-emulation/open-vm-tools-12.2.5/work/open-vm-tools-12.2.5-21855600 ...
* Applying 10.1.0-Werror.patch ...
/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/temp/environment: line 1258: /var/tmp/portage/app-emulation/open-vm-tools-12.2.5/files/10.1.0-Werror.patch: No such file or directory
/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/temp/environment: line 1261: /var/tmp/portage/app-emulation/open-vm-tools-12.2.5/files/10.1.0-Werror.patch: No such file or directory
[ !! ]
* ERROR: app-emulation/open-vm-tools-12.2.5::local failed (prepare phase):
* patch -p1 -p2 failed with /var/tmp/portage/app-emulation/open-vm-tools-12.2.5/files/10.1.0-Werror.patch
*
* Call stack:
* ebuild.sh, line 136: Called src_prepare
* environment, line 2805: Called eapply '-p2' '/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/files/10.1.0-Werror.patch' '/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/files/11.3.5-icu.patch'
* environment, line 1326: Called _eapply_patch '/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/files/10.1.0-Werror.patch'
* environment, line 1264: Called __helpers_die 'patch -p1 -p2 failed with /var/tmp/portage/app-emulation/open-vm-tools-12.2.5/files/10.1.0-Werror.patch'
* isolated-functions.sh, line 112: Called die
* The specific snippet of code:
* die "$@"
*
* If you need support, post the output of `emerge --info '=app-emulation/open-vm-tools-12.2.5::local'`,
* the complete build log and the output of `emerge -pqv '=app-emulation/open-vm-tools-12.2.5::local'`.
* The complete build log is located at '/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/temp/environment'.
* Working directory: '/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/work/open-vm-tools-12.2.5-21855600'
* S: '/var/tmp/portage/app-emulation/open-vm-tools-12.2.5/work/open-vm-tools-12.2.5-21855600'
Code: Select all
* Package: dev-tcltk/tktable-2.10.8:0
* Repository: local
* USE: arm64 elibc_glibc kernel_linux
* FEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox
>>> Unpacking source...
>>> Unpacking tktable-2.10.8.tar.gz to /var/tmp/portage/dev-tcltk/tktable-2.10.8/work
>>> Source unpacked in /var/tmp/portage/dev-tcltk/tktable-2.10.8/work
>>> Preparing source in /var/tmp/portage/dev-tcltk/tktable-2.10.8/work/tktable-2.10.8 ...
* Applying tktable-2.10-parallelMake.patch ...
/var/tmp/portage/dev-tcltk/tktable-2.10.8/temp/environment: line 290: /var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10-parallelMake.patch: No such file or directory
/var/tmp/portage/dev-tcltk/tktable-2.10.8/temp/environment: line 293: /var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10-parallelMake.patch: No such file or directory
[ !! ]
* ERROR: dev-tcltk/tktable-2.10.8::local failed (prepare phase):
* patch -p1 failed with /var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10-parallelMake.patch
*
* Call stack:
* ebuild.sh, line 136: Called src_prepare
* environment, line 469: Called default
* phase-functions.sh, line 872: Called default_src_prepare
* phase-functions.sh, line 948: Called __eapi8_src_prepare
* environment, line 271: Called eapply '--' '/var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10-parallelMake.patch' '/var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10.8-clang6.patch'
* environment, line 358: Called _eapply_patch '/var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10-parallelMake.patch'
* environment, line 296: Called __helpers_die 'patch -p1 failed with /var/tmp/portage/dev-tcltk/tktable-2.10.8/files/tktable-2.10-parallelMake.patch'
* isolated-functions.sh, line 112: Called die
* The specific snippet of code:
* die "$@"
*
* If you need support, post the output of `emerge --info '=dev-tcltk/tktable-2.10.8::local'`,
* the complete build log and the output of `emerge -pqv '=dev-tcltk/tktable-2.10.8::local'`.
* The complete build log is located at '/var/tmp/portage/dev-tcltk/tktable-2.10.8/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-tcltk/tktable-2.10.8/temp/environment'.
* Working directory: '/var/tmp/portage/dev-tcltk/tktable-2.10.8/work/tktable-2.10.8'
* S: '/var/tmp/portage/dev-tcltk/tktable-2.10.8/work/tktable-2.10.8'