Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 523804 - rm goes interactive during src_prepare
Summary: rm goes interactive during src_prepare
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL: http://paludis.exherbo.org/trac/
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-26 14:11 UTC by Christian Burger
Modified: 2014-10-01 15:36 UTC (History)
0 users

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


Attachments
patch to fix the wait (file_523804.txt,366 bytes, text/plain)
2014-09-26 14:11 UTC, Christian Burger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Burger 2014-09-26 14:11:42 UTC
Created attachment 385514 [details]
patch to fix the wait

In all_ruby_prepare() a file name "metadata" is to be deleted. The file has only read permissions for user, group and others, thus the user is asked if that's alright.

There is no indication what the user should do, the ebuild seemingly stops --- never mind, that an ebuild should go through without user interaction.

I assume the same goes for polyglot-0.3.4, but I did not verify that.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-09-26 17:45:39 UTC
Lots of ebuilds call `rm' and this particular ebuild isn't special. If you have an alias set up for rm, that is probably the cause of this problem.

1) Please post your `emerge --info' output in a comment.
2) Please explain where this --interactive rm call originates.
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2014-09-26 17:46:22 UTC
Comment on attachment 385514 [details]
patch to fix the wait

As said, "fixing" every last ebuild in the tree is not the solution. Your problem is local.
Comment 3 Christian Burger 2014-09-27 12:58:54 UTC
Sorry, I probably wasn't explicit enough. I am pretty sure the problem lies within the compressed package and is not "local". But before I explain some more, here is my 'emerge --info' first, though I use Paludis:

Portage 2.2.8-r1 (hardened/linux/amd64, gcc-4.7.3, glibc-2.19-r1, 3.15.8-hardened-server04 x86_64)
=================================================================
System uname: Linux-3.15.8-hardened-server04-x86_64-AMD_Turion-tm-_II_Neo_N40L_Dual-Core_Processor-with-gentoo-2.2
KiB Mem:     3921744 total,   1231108 free
KiB Swap:    2097148 total,   2095924 free
Timestamp of tree: Fri, 26 Sep 2014 00:45:01 +0000
ld GNU ld (Gentoo 2.23.2 p1.0) 2.23.2
distcc 3.1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          4.2_p48-r1::<unknown repository>
dev-lang/python:          2.7.7::<unknown repository>, 3.2.5-r6::<unknown repository>, 3.3.5-r1::<unknown repository>
dev-util/pkgconfig:       0.28-r1::<unknown repository>
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4::<unknown repository>
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.11.6, 1.12.6::<unknown repository>, 1.13.4::<unknown repository>
sys-devel/binutils:       2.23.2::<unknown repository>
sys-devel/gcc:            4.6.4::<unknown repository>, 4.7.3-r1::<unknown repository>
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1::<unknown repository>
sys-devel/make:           3.82-r4::<unknown repository>
sys-kernel/linux-headers: 3.13::<unknown repository> (virtual/os-headers)
sys-libs/glibc:           2.19-r1::<unknown repository>
Repositories: gentoo 5till9
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news 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://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
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="/var/db/paludis/repositories/5till9"
USE="acl amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri gdbm hardened iconv ipv6 justify mmx modules multilib ncurses nls nptl openmp pam pax_kernel pcre readline session sse sse2 ssl tcpd unicode urandom xattr xtpax zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" 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 ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" 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:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON



The package was downloaded from 
ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo/distfiles/polyglot-0.3.5.gem

If you inspect this package with 
$ tar -tvf /usr/portage/distfiles/polyglot-0.3.5.gem 
-r--r--r-- wheel/wheel     597 2014-05-30 04:22 metadata.gz
-r--r--r-- wheel/wheel    3611 2014-05-30 04:22 data.tar.gz
-r--r--r-- wheel/wheel     420 2014-05-30 04:22 checksums.yaml.gz
you will see that the files are -- as previously stated -- read-only, and their uncompressed counterparts will be read-only too:
$ ls -l /var/tmp/paludis/dev-ruby-polyglot-0.3.5/work/all/
total 16
-r--r--r-- 1 paludisbuild paludisbuild  420 Sep 27 00:04 checksums.yaml.gz
-r--r--r-- 1 paludisbuild paludisbuild 3611 Sep 27 00:04 data.tar.gz
-r--r--r-- 1 paludisbuild paludisbuild 1221 Sep 27 00:04 metadata
drwxr-xr-x 3 paludisbuild paludisbuild 4096 Sep 27 00:04 polyglot-0.3.5

Other contents of packages like dev-ruby/rack-1.4.5 are writable for the user:
$ tar -tvf /usr/portage/distfiles/rack-1.4.5.gem 
-rw-r--r-- wheel/wheel  199272 1970-01-01 01:00 data.tar.gz
-rw-r--r-- wheel/wheel    2018 1970-01-01 01:00 metadata.gz

And no, I have no alias on 'rm'. You could fix the problem also with a
# chmod u+w metadata
before the 'rm' command in the ebuild instead of changing that to "rm -f" -- which might show, that it is not local ... I think it's standard behaviour of rm to ask if the file is read-only.
Comment 4 Jeroen Roovers (RETIRED) gentoo-dev 2014-09-27 15:27:37 UTC
Oh, so it's like this:
~/portage/dev-ruby/polyglot-0.3.5/work/all # rm metadata
rm: remove write-protected regular file ‘metadata’? y

In that case, paludis should stop commands from going interactive.
Comment 5 Christian Burger 2014-10-01 15:36:14 UTC
(In reply to Jeroen Roovers from comment #4)
> Oh, so it's like this:
> ~/portage/dev-ruby/polyglot-0.3.5/work/all # rm metadata
> rm: remove write-protected regular file ‘metadata’? y

It kinda is; without the prompt. Probably because stderr is redirected.

> In that case, paludis should stop commands from going interactive.

Hmm, I see. I can try it with a Paludis bug report, but I have the slight feeling that I might get told it's an ebuild-defect. I am using Paludis for about four years now, and it's the first ebuild that displayed that behaviour. 

The usage of "-f" is not that unusual in an ebuild:
# egrep -r 'rm (.* )?-[a-eg-zA-Z]*f' /usr/portage/ | grep \.ebuild | wc -l
7028

We'll see. Thanks for your time.