Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 312055 - dev-db/mysql-5.1.45-r1 installs a perror(1) binary with a too generic name (collides with sys-freebsd/freebsd-ubin)
Summary: dev-db/mysql-5.1.45-r1 installs a perror(1) binary with a too generic name (c...
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: FreeBSD (show other bugs)
Hardware: All FreeBSD
: High normal (vote)
Assignee: Gentoo Linux MySQL bugs team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-30 10:31 UTC by Naohiro Aota
Modified: 2010-11-27 11:06 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 Naohiro Aota gentoo-dev 2010-03-30 10:31:21 UTC
/usr/bin/perror and the man page (/usr/share/man/man1/perror.1.bz2) is provided by both mysql and freebsd-ubin-8.0. 

Reproducible: Always

Steps to Reproduce:
1. emerge =freebsd-ubin-8.0
2. emerge mysql


Actual Results:  
build fail with the follwing output.

 * Detected file collision(s):
 * 
 * 	/usr/bin/perror
 * 	/usr/share/man/man1/perror.1.bz2
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * sys-freebsd/freebsd-ubin-8.0
 * 	/usr/bin/perror
 * 	/usr/share/man/man1/perror.1.bz2


Expected Results:  
This collison should be fixed.

Portage 2.2_rc67 (default/bsd/fbsd/x86/8.0, gcc-4.3.4, freebsd-lib-8.0-r0, 8.0-RELEASE i386)
=================================================================
System uname: FreeBSD-8.0-RELEASE-i386-32bit-ELF
Timestamp of tree: Mon, 29 Mar 2010 07:30:01 +0000
app-shells/bash:     4.1_p2-r1
dev-java/java-config: 2.1.9-r1
dev-lang/python:     2.5.2-r8, 2.6.5-r1, 3.1.2-r1
dev-python/pycrypto: 2.0.1-r8
dev-util/cmake:      2.8.0-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.65
sys-devel/automake:  1.9.6-r2, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1
sys-devel/gcc:       3.4.6-r2, 4.3.4, 4.4.3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  8.0
ACCEPT_KEYWORDS="x86-fbsd ~x86-fbsd"
ACCEPT_LICENSE="* -@EULA sun-bcla-java-vm skype-eula"
ACCEPT_PROPERTIES="*"
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 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"
ARCH="x86-fbsd"
AUTOCLEAN="yes"
CBUILD="i686-gentoo-freebsd7.1"
CFLAGS="-O2 -pipe -march=prescott --param l1-cache-size=16 --param l1-cache-line-size=64 -mtune=prescott"
CHOST="i686-gentoo-freebsd7.1"
CLEAN_DELAY="5"
CLICOLOR="1"
COLLISION_IGNORE="/lib/modules"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/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"
CVS_RSH="ssh"
CXXFLAGS="-O2 -pipe -march=prescott --param l1-cache-size=16 --param l1-cache-line-size=64 -mtune=prescott"
DISTDIR="/usr/portage/distfiles"
EDITOR="/usr/bin/emacs"
ELIBC="FreeBSD"
EMERGE_WARNING_DELAY="10"
EPREFIX=""
EROOT="/"
FEATURES="assume-digests chflags distlocks fixpackages news parallel-fetch preserve-libs protect-owned sfperms strict unmerge-logs unmerge-orphans userfetch"
FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}""
FTP_PASSIVE_MODE="YES"
GCC_SPECS=""
GDK_USE_XFT="1"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
GENTOO_PYTHON_PROCESS_NAME="emerge"
HOME="/root"
INFOPATH="/usr/share/info:/usr/share/binutils-data/i686-gentoo-freebsd7.1/2.20.1/info:/usr/share/gcc-data/i486-gentoo-freebsd7.1/4.3.2/info:/usr/share/gcc-data/i686-gentoo-freebsd7.1/4.3.4/info:/usr/share/info/emacs-23-vcs"
INPUT_DEVICES="keyboard mouse"
JAVAC="/etc/java-config-2/current-system-vm/bin/javac"
JAVA_HOME="/etc/java-config-2/current-system-vm"
JDK_HOME="/etc/java-config-2/current-system-vm"
KERNEL="FreeBSD"
LANG="ja_JP.UTF-8"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
LDFLAGS=""
LESS="-R -M --shift 5"
LESSOPEN="|lesspipe.sh %s"
LINGUAS="ja"
LOGNAME="naota"
LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:"
MAKE="gmake"
MANPATH="/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-gentoo-freebsd7.1/2.20.1/man:/usr/share/gcc-data/i486-gentoo-freebsd7.1/4.3.2/man:/usr/share/gcc-data/i686-gentoo-freebsd7.1/4.3.4/man:/etc/java-config/system-vm/man/:/usr/lib/php5/man/"
NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
NOCOLOR="true"
OLDPWD="/usr/lib"
OPENGL_PROFILE="xorg-x11"
PAGER="/usr/bin/lv -Ou8 -c"
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin:/usr/local/teTeX/bin:/usr/local/bin:/root/bin"
PKGDIR="/usr/portage/packages"
PORTAGE_ARCHLIST="ppc x86-openbsd ppc-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris mips-irix m68k sh x86-solaris sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib/portage/bin"
PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
PORTAGE_CONFIGROOT="/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ELOG_CLASSES="log warn error"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="save_summary echo"
PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS="5"
PORTAGE_FETCH_RESUME_MIN_SIZE="350K"
PORTAGE_GID="250"
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_PYM_PATH="/usr/lib/portage/pym"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_RSYNC_RETRIES="3"
PORTAGE_SYNC_STALE="30"
PORTAGE_TMPDIR="/usr/tmp"
PORTAGE_VERBOSE="1"
PORTAGE_WORKDIR_MODE="0700"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/layman/gentoo-bsd /usr/local/portage/layman/sunrise /usr/local/portage/pc_local"
PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
PWD="/root"
PYTHONDONTWRITEBYTECODE="1"
RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}""
ROOT="/"
ROOTPATH="/opt/bin:/usr/i486-gentoo-freebsd7.1/gcc-bin/4.3.2:/usr/i686-gentoo-freebsd7.1/gcc-bin/4.3.4"
RPMDIR="/usr/portage/rpm"
RUBY_TARGETS="ruby18"
R_HOME="/usr/lib/R"
S9XKEYS="27,100,99,115,120,113,114,13,32,104,108,107,106,121,110,117,109"
SHELL="/bin/bash"
SHLVL="2"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
TERM="screen"
USE="X acl acpi berkdb bzip2 cli cracklib crypt cxx dri emacs fortran gdbm gif gtk gzip-el iconv ipv6 java5 java6 jpeg mmx modules ncurses nls nptlonly openal opengl oss pam pcre perl png python readline reflection session source spell spl sse sse2 ssl svg tcpd toolkit-scroll-bars truetype unicode usb x86-fbsd xft xorg zlib" 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 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" ELIBC="FreeBSD" INPUT_DEVICES="keyboard mouse" KERNEL="FreeBSD" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ja" RUBY_TARGETS="ruby18" USERLAND="BSD" VIDEO_CARDS="intel" 
USER="root"
USERLAND="BSD"
USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS USERLAND VIDEO_CARDS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d"
VIDEO_CARDS="intel"
VISUAL="/bin/nano"
XDG_CONFIG_DIRS="/etc/xdg"
XDG_DATA_DIRS="/usr/local/share:/usr/share"
_="/usr/bin/emerge"
Comment 1 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2010-03-30 19:50:04 UTC
bsd: how does this get fixed in the Ports tree? MySQL needs that binary named as such for error output :-(.
Comment 2 Javier Villavicencio (RETIRED) gentoo-dev 2010-03-30 22:44:37 UTC
Ports is done easy, they install everything to /usr/local :+)

And I think they both do exactly the same thing, they just print standard error codes as perror(3) does.
I'd say a check for userland_BSD and a test -f the installed file to skip/remove installing the binary and manpage from mysql should be enough.
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2010-03-31 00:42:45 UTC
No, the perror shipped by MySQL includes all the MySQL error codes as well:
# perror -- `seq -65535 65535` 2>/dev/null
MySQL error code -30999: DB_INCOMPLETE: Sync didn't finish
MySQL error code -30998: DB_KEYEMPTY: Key/data deleted or never created
MySQL error code -30997: DB_KEYEXIST: The key/data pair already exists
MySQL error code -30996: DB_LOCK_DEADLOCK: Deadlock
MySQL error code -30995: DB_LOCK_NOTGRANTED: Lock unavailable
MySQL error code -30994: DB_NOSERVER: Server panic return
MySQL error code -30993: DB_NOSERVER_HOME: Bad home sent to server
MySQL error code -30992: DB_NOSERVER_ID: Bad ID sent to server
MySQL error code -30991: DB_NOTFOUND: Key/data pair not found (EOF)
MySQL error code -30990: DB_OLD_VERSION: Out-of-date version
MySQL error code -30989: DB_RUNRECOVERY: Panic return
MySQL error code -30988: DB_VERIFY_BAD: Verify failed; bad format
OS error code   0:  Success
OS error code   1:  Operation not permitted
...
OS error code 119:  No XENIX semaphores available
OS error code 120:  Is a named type file
MySQL error code 120: Didn't find key on read or update
OS error code 121:  Remote I/O error
MySQL error code 121: Duplicate key on write or update
OS error code 122:  Disk quota exceeded
MySQL error code 122: Internal (unspecified) error in handler
OS error code 123:  No medium found
MySQL error code 123: Someone has changed the row since it was read (while the table was locked to prevent it)
OS error code 124:  Wrong medium type
MySQL error code 124: Wrong index given to function
OS error code 125:  Operation canceled
MySQL error code 125: Undefined handler error 125
OS error code 126:  Required key not available
MySQL error code 126: Index file is crashed
OS error code 127:  Key has expired
MySQL error code 127: Record file is crashed
OS error code 128:  Key has been revoked
MySQL error code 128: Out of memory in engine
OS error code 129:  Key was rejected by service
MySQL error code 129: Undefined handler error 129
OS error code 130:  Owner died
MySQL error code 130: Incorrect file format
OS error code 131:  State not recoverable
MySQL error code 131: Command not supported by database
MySQL error code 132: Old database file
MySQL error code 133: No record read before update
MySQL error code 134: Record was already deleted (or record file crashed)
...

etc.
Comment 4 Diego Elio Pettenò (RETIRED) gentoo-dev 2010-04-01 15:13:35 UTC
Robin would it be feasible to either rename perror to mysql-perror or move it in a sub-path (/usr/libexec/mysql) so that they wouldn't collide?
Comment 5 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2010-08-09 00:38:26 UTC
(In reply to comment #4)
> Robin would it be feasible to either rename perror to mysql-perror or move it
> in a sub-path (/usr/libexec/mysql) so that they wouldn't collide?
Can we rename it just on fbsd?
Comment 6 Diego Elio Pettenò (RETIRED) gentoo-dev 2010-08-09 01:08:52 UTC
Unlikely, given there it's a system binary/command.
Comment 7 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2010-08-09 01:54:27 UTC
I mean rename the mysql perror, but only on fbsd.
Comment 8 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2010-09-01 19:01:21 UTC
flameeyes: reping.

I propose the following:
use fbsd && mv .../perror .../perror-mysql
Comment 9 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2010-11-27 11:06:29 UTC
No answer from BSD team in nearly 4 months.