Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 659486 - sys-apps/portage: extended attributes merging error with CONFIG_EXT4_FS_SECURITY=n
Summary: sys-apps/portage: extended attributes merging error with CONFIG_EXT4_FS_SECUR...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Portage team
URL: https://archives.gentoo.org/gentoo-de...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-28 13:25 UTC by Wojciech Myrda
Modified: 2018-06-29 15:52 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wojciech Myrda 2018-06-28 13:25:41 UTC
After successful compiling process I received this error during merging

>>> Installing (1 of 23) media-libs/gstreamer-1.14.1::gentoo
 * checking 393 files for package collisions
>>> Merging media-libs/gstreamer-1.14.1 to /
--- /usr/
--- /usr/lib32/
--- /usr/lib32/pkgconfig/
>>> /usr/lib32/pkgconfig/gstreamer-1.0.pc
>>> /usr/lib32/pkgconfig/gstreamer-base-1.0.pc
>>> /usr/lib32/pkgconfig/gstreamer-check-1.0.pc
>>> /usr/lib32/pkgconfig/gstreamer-controller-1.0.pc
>>> /usr/lib32/pkgconfig/gstreamer-net-1.0.pc
--- /usr/lib32/gstreamer-1.0/
>>> /usr/lib32/gstreamer-1.0/gst-plugin-scanner
>>> /usr/lib32/gstreamer-1.0/gst-completion-helper
>>> /usr/lib32/gstreamer-1.0/libgstcoreelements.so
!!! Failed to copy extended attributes. In order to avoid this error,
!!! set FEATURES="-xattr" in make.conf.
!!! copy /tmp/portage/media-libs/gstreamer-1.14.1/image/usr/lib32/gstreamer-1.0/gst-ptp-helper -> /usr/lib32/gstreamer-1.0/gst-ptp-helper failed.
!!! Filesystem containing file '/usr/lib32/gstreamer-1.0/gst-ptp-helper#new' does not support extended attribute 'security.capability'

15 years I use Gentoo Gstreamer nor any other application ever complained about it and never any such process got interrupted that way during merging leaving it in inconsistent state as part of new package is partially merged while most still is at 1.12.4.

I am also not sure why this would show up as I use ext4 with xattr compiled in the kernel. I now also added "user_xattr" to make ebuild work, but with no luck as same error as above still shows up.

/  ext4 defaults,noatime,nodiratime,user_xattr  0 1
Comment 1 Mart Raudsepp gentoo-dev 2018-06-28 13:32:47 UTC
@Wojciech: emerge --info please.

@portage: what could be up here?
Comment 2 Wojciech Myrda 2018-06-28 13:36:43 UTC
Most stuff from overlays is disabled as I have entries as such in /etc/portage/package.mask/all

*/*::mozilla
*/*::toolchain
*/*::poly-c


emerge --info
Portage 2.3.41 (python 3.5.5-final-0, default/linux/amd64/17.0/desktop, gcc-7.3.0, glibc-2.27-r5, 4.14.51 x86_64)
=================================================================
System uname: Linux-4.14.51-x86_64-Intel-R-_Core-TM-_i7-6700K_CPU_@_4.00GHz-with-gentoo-2.6
KiB Mem:    16163780 total,   6585160 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Thu, 28 Jun 2018 05:15:01 +0000
Head commit of repository gentoo: e1964254b29fd98ed9ffb9a2631487f4469f9d50
Timestamp of repository poly-c: Wed, 27 Jun 2018 11:04:55 +0000
sh bash 4.4_p23
ld GNU ld (Gentoo 2.30 p3) 2.30.0
app-shells/bash:          4.4_p23::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.26.2::gentoo
dev-lang/python:          2.7.15-r106::stefantalpalaru, 3.4.8-r1::gentoo, 3.5.5-r1::gentoo, 3.6.5-r1::gentoo
dev-util/cmake:           3.11.4::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6::gentoo
sys-apps/openrc:          0.37::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.16.1-r1::gentoo
sys-devel/binutils:       2.30-r3::gentoo
sys-devel/gcc:            7.3.0-r3::gentoo
sys-devel/gcc-config:     1.9.1::gentoo
sys-devel/libtool:        2.4.6-r5::gentoo
sys-devel/make:           4.2.1-r3::gentoo
sys-kernel/linux-headers: 4.17::gentoo (virtual/os-headers)
sys-libs/glibc:           2.27-r5::gentoo
Repositories:

gentoo
    location: /var/portage
    sync-type: rsync
    sync-uri: rsync://192.168.101.101/gentoo-portage
    priority: -1000
    sync-rsync-verify-max-age: 24
    sync-rsync-extra-opts: 
    sync-rsync-verify-metamanifest: no
    sync-rsync-verify-jobs: 1

bobwya
    location: /var/lib/layman/bobwya
    masters: gentoo
    priority: 50

brother-overlay
    location: /var/lib/layman/brother-overlay
    masters: gentoo
    priority: 50

cg
    location: /var/lib/layman/cg
    masters: gentoo
    priority: 50

poly-c
    location: /var/lib/layman/poly-c
    masters: gentoo
    priority: 50

rion
    location: /var/lib/layman/rion
    masters: gentoo
    priority: 50

rust
    location: /var/lib/layman/rust
    masters: gentoo
    priority: 50

sabayon
    location: /var/lib/layman/sabayon
    masters: gentoo
    priority: 50

stefantalpalaru
    location: /var/lib/layman/stefantalpalaru
    masters: gentoo
    priority: 50

tlp
    location: /var/lib/layman/tlp
    masters: gentoo
    priority: 50

voyageur
    location: /var/lib/layman/voyageur
    masters: gentoo
    priority: 50

x11
    location: /var/lib/layman/x11
    masters: gentoo
    priority: 50

i7woj
    location: /usr/local/portage
    masters: gentoo
    priority: 75

ACCEPT_KEYWORDS="amd64 ~amd64 ~x86"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -DG_DISABLE_ASSERT -DNO_DEBUG -DNDEBUG -fomit-frame-pointer -ftree-vectorize -fpredictive-commoning -fgcse-after-reload"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /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=native -O2 -pipe -DG_DISABLE_ASSERT -DNO_DEBUG -DNDEBUG -fomit-frame-pointer -ftree-vectorize -fpredictive-commoning -fgcse-after-reload -fabi-version=0"
DISTDIR="/var/portage/distfiles"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news nodoc noinfo noman parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://192.168.101.101 http://gentoo.prz.rzeszow.pl"
LANG="pl_PL.utf8"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -Wl,--as-needed -Wl,--relax -Wl,--sort-common"
LINGUAS="pl"
MAKEOPTS="-j9"
PKGDIR="/var/portage/packages"
PORTAGE_CONFIGROOT="/"
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="/tmp/"
USE="X a52 aac aacs acl acpi alsa amd64 aplaymidi audio bdplus berkdb bluray branding bzip2 cairo caps cdda cdio cdr chromaprint cli colord consolekit crypt cups cxx dbus dcadec dri dts dvb dvd dvdr emboss encode exif fam ffmpeg fftw flac fluidsynth fontconfig fortran gdbm gif glade glamor gmp gnome-keyring gphoto2 gpu gstreamer gtk gtk2 gtkstyle hddtemp iconv icu inotify ithreads java jpeg jpeg2k lcms libnotify libtirpc linguas_pl llvm lm_sensors lz4 lzma lzo mad midi mkv mng modules mp3 mp4 mpeg multilib ncurses nfs nls nonfree nptl nsplugin ocr ogg openal opencl openexr opengl openh264 openmp openpgp openssl opus osmesa pam pango pcre pdf perl pm-utils png policykit postproc ppds pulseaudio python qsv qt5 rar rdp readline rtmp s3tc samba scanner sdl seccomp sound sox spell sqlite ssl startup-notification svg system-ffmpeg tcpd thread threads tiff truetype udev udf udisks unicode upower usb v4l vaapi vdpau vorbis wxwidgets x264 x265 xattr xcb xml xv xvid zlib" ABI_X86="64 32" ALSA_CARDS="hda-intel emu10k1" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon plan sheets stage words" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3 f16c" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" L10N="pl" LCD_DEVICES="bayrad cfontz cfontz633 imon imonlcd glk hd44780 lb216 lcdm001 mtxorb ncurses text picolcd" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LIRC_DEVICES="devinput" LLVM_TARGETS="BPF X86" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-0" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python2_7 python3_5" PYTHON_TARGETS="python2_7 python3_5 python3_6" QEMU_SOFTMMU_TARGETS="x86_64" QEMU_USER_TARGETS="x86_64" RUBY_TARGETS="ruby23 ruby25" SANE_BACKENDS="gt68xx plustek" USERLAND="GNU" VIDEO_CARDS="intel i965" XFCE_PLUGINS="clock power trash xkb" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Zac Medico gentoo-dev 2018-06-28 17:10:56 UTC
Looks like CONFIG_EXT4_FS_SECURITY=y is not in the kernel config.
Comment 4 Wojciech Myrda 2018-06-28 17:56:59 UTC
You are right I do not have that set. I guess if it is required checking for it in the ebuild should be added

I'll try it with that option in a sec
Comment 5 Wojciech Myrda 2018-06-28 18:20:13 UTC
I confirm with that option enabled it works. Question is could it work with out it? Regular XATTR would not do?
Comment 6 Arfrever Frehtes Taifersar Arahesis 2018-06-29 06:08:06 UTC
When using FEATURES="xattr", you are supposed to fully enable xattr support for all relevant filesystems (e.g. ${PORTAGE_TMPDIR}, ${ROOT}).
Comment 7 Wojciech Myrda 2018-06-29 06:57:05 UTC
I disagree this bug should be just closed. The least these ebuild should have been done is adding this to the ebuild

pkg_setup() {
	CONFIG_CHECK=""
        if use amd64; then
                CONFIG_CHECK="${CONFIG_CHECK} ~EXT4_FS_SECURITY"
        fi

	linux-info_pkg_setup
}
Comment 8 Wojciech Myrda 2018-06-29 06:58:18 UTC
Obviously in place of amd64 place relevant use flag
Comment 9 Zac Medico gentoo-dev 2018-06-29 07:24:49 UTC
(In reply to Wojciech Myrda from comment #7)
> I disagree this bug should be just closed. The least these ebuild should
> have been done is adding this to the ebuild
> 
> pkg_setup() {
> 	CONFIG_CHECK=""
>         if use amd64; then
>                 CONFIG_CHECK="${CONFIG_CHECK} ~EXT4_FS_SECURITY"
>         fi
> 
> 	linux-info_pkg_setup
> }

This can be helpful. We should probably do this in the sys-apps/portage ebuild when USE=xattr is enabled.
Comment 10 Arfrever Frehtes Taifersar Arahesis 2018-06-29 07:34:41 UTC
There are many different filesystems with various required kernel options for xattr support.

Examples:
9P_FS_SECURITY
CIFS_XATTR
EXT2_FS_XATTR
EXT2_FS_SECURITY
EXT4_FS_SECURITY
F2FS_FS_XATTR
F2FS_FS_SECURITY
JFFS2_FS_SECURITY
JFS_SECURITY
REISERFS_FS_XATTR
SQUASHFS_XATTR
TMPFS_XATTR

It seems tedious to maintain a hardcoded mapping in sys-apps/portage ebuilds or in Portage source code...
Comment 11 Wojciech Myrda 2018-06-29 08:22:37 UTC
Occurred to me that as the long time XFS user I never had this problem as XFS has XATTR support within itself and no extra option has to be checked for that file system. On other file systems it may be quite misleading as some have XATTR while others set SECURITY and some as F2FS set both.

Having that said whey I see it could be done
- add xattr use flag to each required file system like sys-fs/e2fsprogs or sys-fs/reiserfsprogs where kernel config check would be performed
- gstreamer as application relying on xattr support should not take easy way out to tell user disable themselves with FEATURES="-xattr", but propose appropriate way to use the feature. If not with config or use flag check than at least with `einfo` or `ewarn` which would say "Please enable XATTR support for your filesystem"
Comment 12 Mart Raudsepp gentoo-dev 2018-06-29 12:33:31 UTC
It seems we use USE=caps for this, but should use USE=filecaps for consistency
Comment 13 Mart Raudsepp gentoo-dev 2018-06-29 12:37:14 UTC
That was about gstreamer USE flag that turns on what probably sets the xattr too. But on second look, it does also depend on libcap then, so USE=caps is probably correct.

Then the gstreamer build system itself uses setcap (from libcap) to set things up, which then probably needs xattrs or something. I don't think there's anything to do for gstreamer - you get what you asked for with USE=caps; but maybe libcap should check something too then, or at least log an information.
Comment 14 Zac Medico gentoo-dev 2018-06-29 15:48:17 UTC
I've set an email to request feedback:

https://archives.gentoo.org/gentoo-dev/message/2cffbf68d768dca4c10fd8ab0c8dc59a