Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 620774

Summary: media-libs/raspberrypi-userland-9999 with media-libs/mesa-17.1.1[egl,gles2] - file collisions in /usr/lib/libEGL.so /usr/lib/libGLESv2.so ...
Product: Gentoo Linux Reporter: Conrad Kostecki <conikost>
Component: Current packagesAssignee: Chí-Thanh Christopher Nguyễn <chithanh>
Status: RESOLVED FIXED    
Severity: normal CC: axl, crabbedhaloablution, DirtY.iCE.hu, gentoo, hd_brummy, itumaykin+gentoo, sam, tsmksubc, tupone
Priority: Normal Keywords: PullRequest
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://github.com/gentoo/gentoo/pull/18243
https://bugs.gentoo.org/show_bug.cgi?id=770994
Whiteboard:
Package list:
Runtime testing required: ---

Description Conrad Kostecki gentoo-dev 2017-06-04 11:27:36 UTC
So should be mesa compiled without USE=="egl glesv2"?

 * Messages for package media-libs/raspberrypi-userland-9999:

 * This package will overwrite one or more files that may belong to other
 * packages (see list below). You can use a command such as `portageq
 * owners / <filename>` to identify the installed package that owns a
 * file. If portageq reports that only one package owns a file then do
 * NOT file a bug report. A bug report is only useful if it identifies at
 * least two or more packages that are known to install the same file(s).
 * If a collision occurs and you can not explain where the file came from
 * then you should simply ignore the collision since there is not enough
 * information to determine if a real problem exists. Please do NOT file
 * a bug report at https://bugs.gentoo.org/ unless you report exactly
 * which two packages install the same file(s). See
 * https://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how
 * to solve the problem. And once again, please do NOT file a bug report
 * unless you have completely understood the above message.
 *
 * Detected file collision(s):
 *
 *      /usr/include/GLES2/gl2.h
 *      /usr/include/GLES2/gl2ext.h
 *      /usr/include/GLES2/gl2platform.h
 *      /usr/include/EGL/egl.h
 *      /usr/include/EGL/eglext.h
 *      /usr/include/EGL/eglplatform.h
 *      /usr/include/KHR/khrplatform.h
 *      /usr/lib/libEGL.so
 *      /usr/lib/libGLESv2.so
 *      /usr/lib/pkgconfig/egl.pc
 *      /usr/lib/pkgconfig/glesv2.pc
 *
 * Searching all installed packages for file collisions...
 *
 * Press Ctrl-C to Stop
 *
 * media-libs/mesa-17.1.1:0::gentoo
 *      /usr/include/EGL/egl.h
 *      /usr/include/EGL/eglext.h
 *      /usr/include/EGL/eglplatform.h
 *      /usr/include/GLES2/gl2.h
 *      /usr/include/GLES2/gl2ext.h
 *      /usr/include/GLES2/gl2platform.h
 *      /usr/include/KHR/khrplatform.h
 *      /usr/lib/libEGL.so
 *      /usr/lib/libGLESv2.so
 *      /usr/lib/pkgconfig/egl.pc
 *      /usr/lib/pkgconfig/glesv2.pc
 *
 * Package 'media-libs/raspberrypi-userland-9999' NOT merged due to file
 * collisions. If necessary, refer to your elog messages for the whole
 * content of the above message.
Comment 1 Conrad Kostecki gentoo-dev 2017-06-04 11:27:58 UTC
Portage 2.3.6 (python 3.6.1-final-0, default/linux/arm/13.0/armv7a, gcc-6.3.0, glibc-2.24-r1, 4.12.0-raspberrypi-v7+ armv7l)
=================================================================
System uname: Linux-4.12.0-raspberrypi-v7+-armv7l-ARMv7_Processor_rev_4_-v7l-with-gentoo-2.3
KiB Mem:      880512 total,    369908 free
KiB Swap:    2097148 total,   2096380 free
Timestamp of repository gentoo: Sat, 03 Jun 2017 19:15:01 +0000
sh bash 4.4_p12
ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1
app-shells/bash:          4.4_p12::gentoo
dev-lang/perl:            5.24.1-r2::gentoo
dev-lang/python:          2.7.13::gentoo, 3.4.6::gentoo, 3.5.3::gentoo, 3.6.1-r1::gentoo
dev-util/cmake:           3.8.2::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.26.3::gentoo
sys-apps/sandbox:         2.10-r4::gentoo
sys-devel/autoconf:       2.69-r3::gentoo
sys-devel/automake:       1.13.4-r1::gentoo, 1.14.1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo, 2.27::gentoo
sys-devel/gcc:            4.9.4::gentoo, 6.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r4::gentoo
sys-devel/make:           4.2.1-r1::gentoo
sys-kernel/linux-headers: 4.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.24-r1::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.de.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-extra-opts: --exclude-from=/etc/portage/rsync_excludes

archeron
    location: /usr/local/portage
    masters: gentoo

ACCEPT_KEYWORDS="arm ~arm"
ACCEPT_LICENSE="*"
CBUILD="armv7a-hardfloat-linux-gnueabi"
CFLAGS="-march=armv8-a+crc -mcpu=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mtune=cortex-a53 -O3 -masm-syntax-unified -mfloat-abi=hard -mfp16-format=ieee -mneon-for-64bits -mstructure-size-boundary=8 -mthumb -mtls-dialect=gnu2 -pipe -fomit-frame-pointer"
CHOST="armv7a-hardfloat-linux-gnueabi"
CONFIG_PROTECT="/boot/cmdline.txt /boot/config.txt /etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=armv8-a+crc -mcpu=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mtune=cortex-a53 -O3 -masm-syntax-unified -mfloat-abi=hard -mfp16-format=ieee -mneon-for-64bits -mstructure-size-boundary=8 -mthumb -mtls-dialect=gnu2 -pipe -fomit-frame-pointer -fvisibility-inlines-hidden"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask=n --quiet-build=n --with-bdeps=y"
FCFLAGS="-O2 -pipe -march=armv7-a"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -march=armv7-a"
GENTOO_MIRRORS="ftp://ftp.halifax.rwth-aachen.de/gentoo/"
INSTALL_MASK="/etc/xinetd.d/* /usr/lib/systemd/system/*"
LANG="de_DE.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,now"
MAKEOPTS="-j5 -l4"
PKGDIR="/usr/portage/packages"
PORTAGE_BUNZIP2_COMMAND="pbunzip2"
PORTAGE_BZIP2_COMMAND="pbzip2"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-9e"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X acl alsa arm armv5te armv6 armv6t2 berkdb bluetooth bzip2 cairo caps cjk cracklib crypt curl cvs cxx dbus fbcon gif gmp gnutls gpm iconv icu idn imlib ipv6 jit jpeg lzma lzo mp3 ncurses neon nls nntp nptl opengl openmp pam pcre perl png readline slang ssl subversion suid svg symlink threads tiff udev unicode usb vim-syntax xattr xface xml zlib" CPU_FLAGS_ARM="edsp thumb thumb2 v4 v5 v6 v7 vfp" CURL_SSL="openssl" ELIBC="glibc" INPUT_DEVICES="libinput" KERNEL="linux" L10N="de de_DE" LINGUAS="de de_DE" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_6" USERLAND="GNU" VIDEO_CARDS="fbdev vc4"
USE_PYTHON="2.7 3.6"
Unset:  CC, CPPFLAGS, CTARGET, CXX, LC_ALL
Comment 2 Andrej Kouril 2017-11-11 00:14:08 UTC
Same issue with media-libs/raspberrypi-userland-9999 and media-libs/mesa-17.1.8 shouldn't raspberrypi-userland get some USE flag ? :)
Comment 3 tt_1 2018-11-07 20:01:01 UTC
Whats the status on this with current git version - is it still broken?
Comment 4 tt_1 2018-11-10 13:10:38 UTC
Current git is still broken. 

But it's possible to get it merged by cutting a new version, I happen to chose 3cd60d4 (3cd60d45bc7c9d3ec8daee574bc99027cb1bab9e)

So simply bump it locally, the package seems to abondend.
Comment 5 Alexandru N. Barloiu 2019-02-17 11:35:30 UTC
Personally I kept mesa and raspberrypi-userland built as packages and would switch from one to the other because, some packages will only build with the headers from mesa (kodi for instance), others only with the headers from the userland (omxplayer and libsdl2 for instance). I think they should be installed to another location like /opt/vc/include like they once were.
Comment 6 Conrad Kostecki gentoo-dev 2019-02-19 20:17:51 UTC
I can, if interessted, submit a PR for a new updated eBuild.
I've changed that, so eselect opengl is supported and installed into "/opt/vc".
Comment 7 Kővágó, Zoltán 2019-12-15 22:03:24 UTC
Please do. For example, currently it's impossible to have X and omxplayer or mpv with USE=raspberry-pi installed at the same time, because xorg-server depends on mesa[egl] and omxplayer/mpv depends on raspberrypi-userland.

I can confirm that the issue still persists with mesa-19.1.8
Comment 8 Adrian 2020-02-04 04:42:13 UTC
I am also keen to have a raspberry pi with xorg and omxplayer installed.

The install directory can be changed back to /opt/vc with the current live ebuild by changing the line to -DVMCS_INSTALL_PREFIX="/opt/vc". This prevents the file collision.

Whether other packages such as omxplayer will need changes to use it however is work in progress. I am not sure how to support eselect opengl though.

I am also testing whether the arm64 support added upstream in https://github.com/raspberrypi/userland/issues/314 will allow a 64 bit userland. I have managed to compile for arm64 by adding -DARM64=ON.

If I ever get it all working together properly, I will submit a patch.
Comment 9 Larry the Git Cow gentoo-dev 2020-11-23 04:52:02 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d7fbeb6481a6ffda252f343cc3eeee03533fbad5

commit d7fbeb6481a6ffda252f343cc3eeee03533fbad5
Author:     Peter Alfredsen <crabbedhaloablution@icloud.com>
AuthorDate: 2020-11-13 13:27:58 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2020-11-23 04:42:03 +0000

    media-libs/raspberrypi-userland: Version bump 0_pre20201022
    
    * Add -0_pre20201022, also update -9999 to same standard.
    * Patches described in ebuild.
    * raspberrypi-userland produces libEGL and libbrcmEGL, libGLESv2 and
    libbrcmGLESv2 libraries. Only the libbrcm variants are actually
    needed, plus the other variants collide with libglvnd.
    Thanks to KalleBlom on IRC for reporting.
    * More closely sync with Raspbian which libs we don't install.
    The source for this package is a mess. We build all kinds of things that
    just aren't installed, and by default install many things that
    shouldn't be.
    * Many .so files are not built on arm64, but currently we install
    the .pc files anyway. Fix by including the .pc files in the ARM64
    conditional.
    
    Closes: https://bugs.gentoo.org/754249
    Closes: https://bugs.gentoo.org/718366
    Closes: https://bugs.gentoo.org/671492
    Closes: https://bugs.gentoo.org/620774
    Signed-off-by: Peter Alfredsen <crabbedhaloablution@icloud.com>
    Package-Manager: Portage-3.0.9, Repoman-3.0.2
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/raspberrypi-userland/Manifest           |   1 +
 .../files/raspberrypi-userland-include.patch       |  19 ++
 .../files/raspberrypi-userland-libdir.patch        | 316 +++++++++++++++++++++
 .../files/raspberrypi-userland-libfdt-static.patch |  22 ++
 .../files/raspberrypi-userland-pkgconf-arm64.patch |  38 +++
 .../raspberrypi-userland-0_pre20201022.ebuild      |  69 +++++
 .../raspberrypi-userland-9999.ebuild               |  65 +++--
 7 files changed, 511 insertions(+), 19 deletions(-)
Comment 10 Conrad Kostecki gentoo-dev 2020-11-23 07:54:51 UTC
Great, really many thanks!