Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 330061 - net-fs/openafs-1.4.12.1 installs broken headers
Summary: net-fs/openafs-1.4.12.1 installs broken headers
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Stefaan De Roeck (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-27 12:05 UTC by Andrew Savchenko
Modified: 2010-08-23 22:00 UTC (History)
2 users (show)

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


Attachments
patch to fix headers using lwp (openafs-lwp.patch,550 bytes, text/plain)
2010-08-22 18:36 UTC, Andrej Filipcic
Details
patch to move lwp into afs/ (openafs-lwpafs.patch,912 bytes, text/plain)
2010-08-23 06:45 UTC, Andrej Filipcic
Details
openafs-lwp-reloate.patch (openafs-lwp-reloate.patch,1.18 KB, patch)
2010-08-23 08:32 UTC, SpanKY
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Savchenko gentoo-dev 2010-07-27 12:05:52 UTC
Hello,

at least these headers installed by openafs-1.4.12.1 are broken:
/usr/include/rx/rx_user.h
/usr/include/ubik.h

When I build sci-physics/root-5.26.00-r4 with afs support it fails because of the following:
In file included from /usr/include/rx/rx.h:52,
                 from /usr/include/rx/rxkad_prototypes.h:15,
                 from /usr/include/rx/rxkad.h:102,
                 from /usr/include/afs/auth.h:19,
                 from /usr/include/afs/kautils.h:30,
                 from net/auth/src/AFSAuth.cxx:28:
/usr/include/rx/rx_user.h:19:17: error: lwp.h: No such file or directory
In file included from /usr/include/afs/kauth.h:64,
                 from /usr/include/afs/kautils.h:39,
                 from net/auth/src/AFSAuth.cxx:28:
/usr/include/ubik.h:145:57: error: lock.h: No such file or directory

There are no lwp.h or lock.h installed, but /usr/include/rx/rx_lwp.h is and I can't find an appropriate afs lock file at all.

*************************************************************
$ emerge --info
Portage 2.2_rc67 (default/linux/x86/10.0, gcc-4.4.4, glibc-2.11.2-r0, 2.6.34.1-yoruichi i686)
=================================================================
System uname: Linux-2.6.34.1-yoruichi-i686-AMD_Athlon-tm-_XP_3200+-with-gentoo-2.0.1
Timestamp of tree: Sat, 24 Jul 2010 07:00:01 +0000
distcc 3.1 i686-pc-linux-gnu [disabled]
ccache version 2.4 [enabled]
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/ccache:     2.4-r8
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.13, 2.65-r1
sys-devel/automake:  1.4_p6-r1, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       3.3.6-r1, 4.4.4-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
virtual/os-headers:  2.6.34
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -m32 --param l1-cache-line-size=64 --param l1-cache-size=64 --param l2-cache-size=512 -O2 -funswitch-loops -fpredictiv
e-commoning -fgcse-after-reload -fomit-frame-pointer -ftree-loop-linear -floop-interchange -floop-strip-mine -mfpmath=sse -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-reb
uild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=athlon-xp -m32 --param l1-cache-line-size=64 --param l1-cache-size=64 --param l2-cache-size=512 -O2 -funswitch-loops -fpredict
ive-commoning -fgcse-after-reload -fomit-frame-pointer -ftree-loop-linear -floop-interchange -floop-strip-mine -mfpmath=sse -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps y"
FEATURES="assume-digests ccache collision-protect distlocks fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict 
unmerge-logs unmerge-orphans userfetch userpriv usersandbox"
FFLAGS="-march=athlon-xp -m32 --param l1-cache-line-size=64 --param l1-cache-size=64 --param l2-cache-size=512 -O2 -funswitch-loops -fpredictiv
e-commoning -fgcse-after-reload -fomit-frame-pointer -ftree-loop-linear -floop-interchange -floop-strip-mine -mfpmath=sse -pipe"
GENTOO_MIRRORS=" ftp://orionis/distributions/1Linux/gentoo/portage ftp://ftp.chg.ru/pub/Linux/gentoo http://mirror.yandex.ru/gentoo-distfiles  ftp://ftp.corbina.net/pub/Linux/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo http://mirror.netcologne.de/gentoo"LANG="en_US.UTF-8" 
LC_ALL=""
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="ru en ja" 
MAKEOPTS="-j4 --load-average=5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/science /var/lib/layman/java-overlay /var/lib/layman/sunrise /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac aalib acl acpi adns afs aften aim aio alsa amr amrnb amrwb ao artworkextra audiofile bash-completion bcmath bidi binfilter blas bluetooth branding bzip2 cairo calendar caps ccache cddb cdinstall cdparanoia cdr chasen chm cjk cleartype cli clisp colordiff cracklib crypt cscope css ctype cups curl curlwrappers cvs cxx cyrillic dbus device-mapper dga dhcp dia dirac directfb djvu dmx doc dri dts dv dvd dvdr dvdread dvi ebook editor elf emf enca encode enscript ermt examples exif expat faac faad fbcon festival ffmpeg fftw firefox flac flash fontconfig foomaticdb fortran fpx freetds freetype ftp gcj gcrypt gd gdbm geoip ggi gif gimp ginac git glibc-omitfp glitz glut gmp gnuplot gnutls gpgme gphoto2 gpm gps graphite graphviz gs gsl gsm gtk gucharmap h224 h281 h323 hdf5 hdri iconv icq icu id3tag idn imagemagick imap imlib immqt-bc inkjar ipod iproute2 ipv6 jabber jack jadetex java6 javascript jbig jingle jpeg jpeg2k kdehiddenvisibility kerberos keyscrub kpathsea kqemu ladspa lame lapack lash latex lcms libcaca libnotify libsamplerate libwww lm_sensors logrotate lzma lzo mad maildir mailwrapper matroska md5sum mhash mikmod mime mjpeg mmap mmx mng modplug modules mp3 mpeg mplayer msn mudflap musepack musicbrainz mysql mysqli nas ncurses netcdf network network-cron nls nntp nocd nodrm nptlonly nsplugin nuv objc objc++ offensive ogg openal opencore-amr openexr opengl optimized-qmake oscar otr pam pango pcntl pcre pda pdf perl pgf plotutils png pop portaudio posix postproc postscript ppds pppd pronounce pstricks qt3support qt4 quicktime raw rdesktop readline recode reflection restrict-javascript rfc3779 rle rrdtool samba scanner schroedinger sdl session sharedmem shorten sip sipim slang slp smi smime sms smtp sndfile sockets socks5 soundtouch sox sparse speex spell spl sqlite sqlite3 srtp sse ssl startup-notification strong-optimization subversion supernodal svg svga sysfs syslog szip t1lib taglib tcpd theora tiff timezone timidity tordns truetype twolame type3 unicode usb utempter utils v4l v4l2 vamp vcd videos vim vim-syntax vnc vorbis wav wavpack wifi win32codecs wireshark wmf x264 x86 xattr xcb xface xft xinerama xorg xosd xpm xprint xrandr xscreensaver xv xvid yahoo yaz ziffy 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru en ja" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa nouveau" 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, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Andrej Filipcic 2010-07-28 09:47:47 UTC
The lwp part was removed from the installation due to bug #200674. It has to be checked if it can be readed.

You could try to reenable lwp by removing the following lines from the openafs ebuild:
        # don't install local copy of lwp #200674
        sed -i '/^install:/s|:.*|:|' src/lwp/Makefile.in
and then try to compile the gnome packages using lwp to see if the problem is still there.
Comment 2 SpanKY gentoo-dev 2010-07-28 16:34:05 UTC
no, we're not reading lwp.  all the random 3rd party libs need to be culled from openafs, not re-added.
Comment 3 Andrew Savchenko gentoo-dev 2010-07-28 18:27:04 UTC
1) File collision for /usr/lib/liblwp.a still exists.

2) I emerged sys-libs/lwp and this have not solved my problem (with original portage openafs build): headers are installed into /usr/include/lwp, but are looked for in /usr/include, so sci-physics/root build still fails.

3) If you want to clean openafs up from third-party libraries I'm ok with this if it does NOT break another applications.

4) With lwp from openafs root with afs compiles.
Comment 4 SpanKY gentoo-dev 2010-07-28 21:50:26 UTC
then feel free to fix openafs.  but we're not re-exporting anything.
Comment 5 Andrew Savchenko gentoo-dev 2010-07-29 09:04:23 UTC
(In reply to comment #4)
> then feel free to fix openafs.  but we're not re-exporting anything.

What do you mean by re-exporting? What do you consider as a fix? Using external lwp library will not necessary be a fix. While in general it is good idea to use external libraries instead of bundled ones, sometimes upstream have a very good reason to bundle some library alongside with the package.

A very good example is firefox: it will randomly crash with external sqlite, but works fine with internal version. As far as I know the reason for that is firefox developers can't support any random sqlite version. The same may go for openafs, at least it seems it can't use the latest lwp without non-trivial changes.

In my opinion at this moment it will be best to block lwp and openafs installation at the same time.
Comment 6 SpanKY gentoo-dev 2010-07-31 06:35:22 UTC
... except for the part where installing the crap that doesnt belong in openafs will break other packages randomly as they look for features in the host.

i dont care how openafs gets fixed, but exporting 3rd party libraries to standard locations isnt acceptable.

also, openafs has no good reason for 3rd party library bundling other than they're lazy and/or dont know how to do to right.  look in the source tree and explain to me how the 20-70 3rd party libraries are sane.  integrate with the relevant upstream projects or go home, but dumping crap all over distributions isnt acceptable anymore.
Comment 7 Andrej Filipcic 2010-08-21 11:51:42 UTC
I can build root with afs if the symlinks to /usr/include/lwp/* exist in /usr/include, meaning that the root package could be fixed by adding /usr/include/lwp includepath. So it seems the sys-libs/lwp headers are compatible, thus the fix should rather go to sys-physics/root package.
Comment 8 SpanKY gentoo-dev 2010-08-21 21:40:55 UTC
better to strip lwp out of openafs and replace it with sys-libs/lwp
Comment 9 Andrej Filipcic 2010-08-21 22:24:25 UTC
(In reply to comment #8)
> better to strip lwp out of openafs and replace it with sys-libs/lwp
The only (user-space, not kernel) references are in 
/usr/include/rx/rx_user.h:#include <lwp.h>
/usr/include/afs/icl.h:#include <lock.h>
/usr/include/ubik.h:#include <lock.h> 

If those are replaced by <lwp/.h>, root compiles and works fine. Is this an acceptable solution? The lwp used by openafs is heavily modified for use in the kernel module. There is no way to use sys-libs/lwp to build openafs-kernel.
Comment 10 SpanKY gentoo-dev 2010-08-22 01:50:08 UTC
if it's only used by the kernel module, does it need to be exposed to userspace then ?

you could copy those few required header files to afs/ and rewrite the includes to point to those copies ...
Comment 11 Andrej Filipcic 2010-08-22 18:35:36 UTC
Hm, not that simple. Than we should install the afs lwp lib as well. afs uses the same headers and source files to build both the kernel module and user space libs and binaries. If I am not mistaken, coda's lwp is stripped down afs lwp for user space anyway and is supposed to be compatible.

I have added a patch which rewrites few afs headers to include sys-libs/lwp headers and it seems to work well for sci-physics/root package.
Comment 12 Andrej Filipcic 2010-08-22 18:36:41 UTC
Created attachment 244069 [details]
patch to fix headers using lwp
Comment 13 SpanKY gentoo-dev 2010-08-22 20:25:45 UTC
installing its own afs-customized copy of lwp is OK, but it cant be using the standard paths.  the library must be in /usr/lib/afs/... and the headers in similar namespaced locations.
Comment 14 Andrej Filipcic 2010-08-22 20:42:12 UTC
Yes, but all the packages linking the afs libs would have to be modifed, like root for the afs liblwp location. If not, they would use afs lwp header files and sys-libs/lwp liblwp which is the worst thing that can happen. There is no pkg-config for openafs which would make the things easier.
Comment 15 SpanKY gentoo-dev 2010-08-22 20:54:06 UTC
if the packages already need to do -L/usr/lib/afs and -I/usr/include/afs, then there isnt a problem.

as for collisions with lwp, that is already the problem people are having today.  they cant use the standard lwp package and openafs at the same time.
Comment 16 Andrej Filipcic 2010-08-23 06:45:40 UTC
Created attachment 244147 [details]
patch to move lwp into afs/

lwp headers are moved in /usr/include/afs and lwplib is moved in /usr/lib/afs. The headers still need a rewrite for the new lwp locaction,<afs/lwp.h> for example. "/usr/lib" might need to be fixed for amd64.
Comment 17 SpanKY gentoo-dev 2010-08-23 08:32:32 UTC
Created attachment 244163 [details, diff]
openafs-lwp-reloate.patch

try this (untested) patch.  you can see the style fixes in it.  and if it's broken, you should be able to fix it for me ;).
Comment 18 Andrej Filipcic 2010-08-23 09:29:53 UTC
The patch works ok. For sci-physics root as well.
Comment 19 SpanKY gentoo-dev 2010-08-23 22:00:55 UTC
thanks, that is now in as openafs-1.4.12.1-r2