| Summary: | =dev-lang/parrot-5.6.0 - FEATURES=userpriv - Can't write-open packfile-c.pod: Permission denied at /usr/bin/perldoc line 10. | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | James Cloos <cloos> |
| Component: | [OLD] Development | Assignee: | Gentoo Perl team <perl> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | normal | CC: | Martin.vGagern, Sergiy.Borodych |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | build log | ||
1) Please attach the complete build log. 2) Please comment with the output of `emerge --info =dev-lang/parrot-5.1.0`. Created attachment 355834 [details] build log Same here, without FEATURES=userpriv. It used to work at some point in the past. $ emerge --info =dev-lang/parrot-5.6.0 Portage 2.2.0_alpha196 (default/linux/amd64/13.0/desktop/kde, gcc-4.7.3, glibc-2.17, 3.10.4-gentoo x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.10.4-gentoo-x86_64-AMD_Phenom-tm-_II_X4_945_Processor-with-gentoo-2.2 KiB Mem: 15672916 total, 8618676 free KiB Swap: 6836220 total, 6836220 free Timestamp of tree: Mon, 12 Aug 2013 22:45:01 +0000 ld GNU ld (GNU Binutils) 2.23.2 distcc 3.1 x86_64-pc-linux-gnu [disabled] ccache version 3.1.9 [disabled] app-shells/bash: 4.2_p45 dev-java/java-config: 2.2.0::java dev-lang/python: 2.6.8-r2, 2.7.5-r1, 3.2.5-r1, 3.3.2-r1 dev-util/ccache: 3.1.9 dev-util/cmake: 2.8.11.1 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.6, 1.12.6, 1.13.4, 1.14 sys-devel/binutils: 2.23.2 sys-devel/gcc: 3.4.6-r2, 4.1.2, 4.5.4, 4.6.4, 4.7.3 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.9 (virtual/os-headers) sys-libs/glibc: 2.17 Repositories: sunrise-enabled ldc bump gentoo java generated sage-on-gentoo bugfix mvg-java-experimental mvgLocal ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA dlj-1.1 sun-bcla-java-vm Oracle-BCLA-JavaSE skype-eula skype-4.0.0.7-copyright googleearth AdobeFlash-10.3 AdobeFlash-11.x PUEL" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=amdfam10 -O2 -ggdb -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/maven-bin-3.1/conf /usr/share/polkit-1/actions /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=amdfam10 -O2 -ggdb -pipe" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://mirror.opteamax.de/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://mirror.netcologne.de/gentoo/" LANG="de_DE.utf8" LDFLAGS="-Wl,--as-needed" MAKEOPTS="-j5" PKGDIR="/usr/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" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/sunrise-enabled /usr/portage/local/layman/ldc /usr/portage/local/bump /usr/portage /usr/portage/local/layman/java /usr/portage/local/generated /usr/portage/local/layman/sage-on-gentoo /usr/portage/local/bugfix /usr/portage/local/mvg-java /usr/portage/local/mvg" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa amd64 apache2 audacious audiofile avahi bash-completion bcmath berkdb branding bzip2 c++ cairo cdda cdparanoia cdr chroot cli consolekit cracklib crypt css cups curl cxx dba dbus declarative dhcp doc dri dts dv dvd dvdr emacs emboss encode escreen exif fam fastcgi ffmpeg fftw firefox flac flatfile fortran ftp gcc-libffi gd gdbm gif gimp gnutls gphoto2 gpm graphviz gs gstreamer gtk gtk3 hal hbci html iconv icu idn imagemagick ipv6 iso14755 ithreads jabber jack java jpeg jpeg2k kde kerberos kipi kpathsea kvm ladspa latex lcms ldap leim libnotify lirc lm_sensors logrotate lzma lzo mad maildir mhash midi mikmod mime mjpeg mmx mng modules mozxmlterm mp3 mp4 mpeg mpeg2 mplayer mudflap multilib mysql ncurses network nls nptl nsplugin numpy objc odbc ofx ogg openexr opengl openmp pam pango pcre pdf perl phonon php plasma plotutils png policykit povray ppds procmail python qt3support qt4 quicktime rdesktop readline real recode sasl scanner sdl session sip sipim smime sndfile snmp sockets socks5 sox speex spell sqlite sse sse2 ssl startup-notification subversion svg tcl tcpd theora threads thunderbird tiff timidity tokenizer transcode translator truetype type1 udev udisks unicode upower usb userlocales v4l v4l2 vhosts vorbis vpx win32codecs wmf wxwidgets x264 xanim xattr xcb xcomposite xine xinerama xinetd xml xmp xprint xscreensaver xulrunner xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="bt87x emu10k1x hda-intel usb-audio via82xx via82xx-modem" APACHE2_MODULES="actions alias asis auth_basic auth_digest 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 filter headers include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_connect proxy_ftp proxy_http rewrite setenvif speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="prefork" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="lvm" ELIBC="glibc" FRITZCAPI_CARDS="fcpci" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev joystick keyboard mouse wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en de en_US en_GB" LIRC_DEVICES="devinput" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_6 python2_7 python3_2 python3_3" RUBY_TARGETS="ruby19 ruby20 jruby" USERLAND="GNU" VIDEO_CARDS="nouveau nv radeon fbdev v4l vesa vga" 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" USE_PYTHON="2.6 2.7 3.2 3.3" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ================================================================= Package Settings ================================================================= USE="(consolekit) doc gdbm (multilib) nls opengl pcre (policykit) ssl unicode -examples -gmp" ABI_X86="64" dev-lang/parrot-5.6.0 was built with the following: $ emerge -pqv =dev-lang/parrot-5.6.0 [ebuild R ] dev-lang/parrot-5.6.0 USE="doc gdbm nls opengl pcre ssl unicode -examples -gmp" Same with USE=-doc looks like a dup of #454058 Essentially, it calls "perldoc" during "make install"/src_install, and perldoc will drop privs to UID=nobody if UID=0 ( Which appears to be the case even under FEATURES=userpriv ), and that specific invocation of `perldoc` can't write to the portage directory as UID=nobody (In reply to Kent Fredric from comment #4) > looks like a dup of #454058 Your patch mentioned in bug #454058 comment #16 works for me. Applied as follows: # ebuild /usr/portage/dev-lang/parrot/parrot-5.6.0.ebuild clean prepare # wget -qO- https://github.com/parrot/parrot/pull/973.patch \ | patch -p1 -d /var/tmp/portage/dev-lang/parrot-5.6.0/work/parrot-5.6.0 # ebuild /usr/portage/dev-lang/parrot/parrot-5.6.0.ebuild merge If parrot were to call epatch_user, I could drop that patch into a directory to ensure it will get applied for every subsequent build, and I won't have to worry about this issue here in the future. I see that your patch was merged at first, but then got reverted again in https://github.com/parrot/parrot/commit/226d49da937540e52db01765d43d64bf900a0a17 without any indication as to WHY it was reverted. Guess it failed to build on SOME platform, but as long as it works on Gentoo, I'm happy with that patch. Closed as duplicate then. I will push this patch in cvs soon. *** This bug has been marked as a duplicate of bug 454058 *** (In reply to Martin von Gagern from comment #5) > (In reply to Kent Fredric from comment #4) > > looks like a dup of #454058 > > Your patch mentioned in bug #454058 comment #16 works for me. Applied as > follows: > > # ebuild /usr/portage/dev-lang/parrot/parrot-5.6.0.ebuild clean prepare > # wget -qO- https://github.com/parrot/parrot/pull/973.patch \ > | patch -p1 -d /var/tmp/portage/dev-lang/parrot-5.6.0/work/parrot-5.6.0 > # ebuild /usr/portage/dev-lang/parrot/parrot-5.6.0.ebuild merge > > If parrot were to call epatch_user, I could drop that patch into a directory > to ensure it will get applied for every subsequent build, and I won't have > to worry about this issue here in the future. > > I see that your patch was merged at first, but then got reverted again in > https://github.com/parrot/parrot/commit/ > 226d49da937540e52db01765d43d64bf900a0a17 without any indication as to WHY it > was reverted. Guess it failed to build on SOME platform, but as long as it > works on Gentoo, I'm happy with that patch. The reason upstream gave me on the related bug, was that the patch breaks building on win32, where the ">" redirection doesn't work. But thats no reason not to apply this patch in unix. Though really, the core of the problem is that upstream are generating documentation during 'make install' instead of during 'make', which would eliminate the problem for us, because then UID would not = 0. (In reply to Kent Fredric from comment #7) > Though really, the core of the problem is that upstream are generating > documentation during 'make install' instead of during 'make', which would > eliminate the problem for us, because then UID would not = 0. FEATURES=-userpriv would still be in trouble, right? I agree that Parrot upstream should get their build phases straight, but building as root should be possible nevertheless. I also agree that perldoc itself should not unconditionally switch UID, as you already argued in https://rt.cpan.org/Public/Bug/Display.html?id=87837 All of this is someone else's problem, though, as Gentoo builds should be happy with your patch. Looking forward to having this in portage. |
>>> Install parrot-5.1.0 into /var/tmp/portage/dev-lang/parrot-5.1.0/image/ category dev-lang make -j6 -j1 install-dev DESTDIR=/var/tmp/portage/dev-lang/parrot-5.1.0/image/ DOC_DIR=/usr/share/doc/parrot-5.1.0 gmake -C docs gmake[1]: Entering directory `/var/tmp/portage/dev-lang/parrot-5.1.0/work/parrot-5.1.0/docs' /usr/bin/perl5.16.3 -MExtUtils::Command -e mkpath ops /usr/bin/perl5.16.3 -MExtUtils::Command -e touch doc-prep /usr/bin/perldoc -ud packfile-c.pod ../src/packfile/api.c Can't write-open packfile-c.pod: Permission denied at /usr/bin/perldoc line 9. gmake[1]: *** [packfile-c.pod] Error 13 gmake[1]: Leaving directory `/var/tmp/portage/dev-lang/parrot-5.1.0/work/parrot-5.1.0/docs' make: *** [docs.dummy] Error 2 emake failed my perl is 5.16.3 and Pod-Perldoc is 3.190.0.