Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 343629 - `ebuild rpm' doesn't explicitly check for app-arch/rpm
Summary: `ebuild rpm' doesn't explicitly check for app-arch/rpm
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
Depends on:
Reported: 2010-11-01 06:21 UTC by Sergey S. Starikoff
Modified: 2015-07-17 13:11 UTC (History)
0 users

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


Note You need to log in before you can comment on or make changes to this bug.
Description Sergey S. Starikoff 2010-11-01 06:21:56 UTC
build utility tryes to execute 'rpm' command even if required for corrent finish of the operation app-arch/rpm is not installed.

Reproducible: Always

Steps to Reproduce:
1. Check the status of app-arch/rpm
$ eix -e app-arch/rpm
(it shouldn't be installed
2. Try to build rpm package.
For example:
ebuild /usr/portage/app-arch/tar/tar-1.23-r2.ebuild rpm

Actual Results:  
1. Start compiling;
2. Error:
/usr/lib/portage/bin/ line 778: rpmbuild: command not found
 * ERROR: app-arch/tar-1.23-r2 failed:
 *   Failed to integrate rpm spec file
 * Call stack:
 *, line 804:  Called dyn_rpm
 *, line 778:  Called die
 * The specific snippet of code:
 *      rpmbuild -bb --clean --rmsource "${PF}.spec" || die "Failed to
integrate rpm spec file"
 * If you need support, post the output of 'emerge --info
 * the complete build log and the output of 'emerge -pqv
 * The complete build log is located at
 * The ebuild environment file is located at
 * S: '/var/tmp/portage/app-arch/tar-1.23-r2/work/tar-1.23'

Expected Results:  
The function should first check system about support of app-arch/rpm (I think it could be done by adding 'rpm' USE flag for sys-apps/portage).
If success --- start compiling, if failed --- echo error without doing anything else.

$ emerge --info
Portage (default/linux/x86/10.0, gcc-4.4.4, glibc-2.11.2-r0, 2.6.35-gentoo-r4 i686)
System uname: Linux-2.6.35-gentoo-r4-i686-Intel-R-_Pentium-R-_4_CPU_3.00GHz-with-gentoo-1.12.13
Timestamp of tree: Mon, 01 Nov 2010 04:15:01 +0000
app-shells/bash:     4.1_p7
dev-java/java-config: 2.1.11
dev-lang/python:     2.6.5-r3, 3.1.2-r4
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 1.12.13
sys-apps/sandbox:    2.3-r1
sys-devel/autoconf:  2.13, 2.65-r1
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.4.4-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.30-r1
CFLAGS="-O2 -march=i686 -pipe"
CONFIG_PROTECT="/etc /etc/env.d/50glib2 /usr/share/X11/xkb /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /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="-O2 -march=i686 -pipe"
FEATURES="assume-digests buildsyspkg collision-protect distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="                              "
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="ru en"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
SYNC="   rsync://"
USE="X a52 ac3 acl alsa avi berkdb bzip2 cdr cli cracklib crypt cups cxx dbus djvu dri dvd flac fortran gdbm gif gtk iconv jpeg jpeg2k modules mp3 mudflap ncurses nls nptl nptlonly ogg openmp pam pcre pdf perl png pppd python qt3support readline session ssl sysfs tcpd tiff vorbis x86 xcb xorg xulrunner zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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" 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 ubx" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru en" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="sis" 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" 
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2010-11-01 07:48:37 UTC
USE flags for runtime dependencies are pointless as it was explained many times before. But sure, we could report an error more sane.
Comment 2 Sergey S. Starikoff 2010-11-02 05:47:42 UTC
(In reply to comment #1)
> USE flags for runtime dependencies are pointless as it was explained many times
> before.
Excuse me.
It is my mistake.

> But sure, we could report an error more sane.
It will be good.

But, I think, not only error message should be improved, but also the point of it's reporting: it should be reported before compillation starts.
Comment 3 Sergey S. Starikoff 2015-07-17 12:27:04 UTC
Maybe, the better solution will be to add 'rpm' USE for sys-apps/portage, with proper RDEPEND when this use enabled and disabling rpm command otherwise.
Comment 4 Zac Medico gentoo-dev 2015-07-17 13:11:29 UTC
(In reply to Sergey S. Starikoff from comment #3)
> Maybe, the better solution will be to add 'rpm' USE for sys-apps/portage,
> with proper RDEPEND when this use enabled and disabling rpm command
> otherwise.

Disabling stuff in like this in a python app doesn't make much sense. I would prefer that it check for the rpmbuild command earlier and bail out with a short error message when necessary.