jpeg-mmx-0.1.6 headers conflict with those from media-libs/jpeg. Reproducible: Always Steps to Reproduce: 1. emerge jpeg-mmx Actual Results: attempts to place headers in /usr/include Expected Results: place headers in /usr/include/jpeg-mmx The ebuild attempts to place the headers in /usr/include/jpeg-mmx using the --includedir configure option but makefile.cfg is not set up for this option. The simplest solution appears to be to use make install-headers includedir="${D}"/usr/include/jpeg-mmx || die in src_install.
I confirm the bug: >>> Completed installing jpeg-mmx-0.1.6 into /var/tmp/portage/jpeg-mmx-0.1.6/image/ * checking 15 files for package collisions existing file /usr/include/jerror.h is not owned by this package existing file /usr/include/jconfig.h is not owned by this package existing file /usr/include/jmorecfg.h is not owned by this package existing file /usr/include/jpeglib.h is not owned by this package * spent 0.26232790947 seconds checking for file collisions * This package is blocked because it wants to overwrite * files belonging to other packages (see messages above). * If you have no clue what this is all about report it * as a bug for this package on http://bugs.gentoo.org package media-libs/jpeg-mmx-0.1.6 NOT merged No package files given... Grabbing a set. ~ # equery belongs /usr/include/jerror.h [ Searching for file(s) /usr/include/jerror.h in *... ] media-libs/jpeg-6b-r5 (/usr/include/jerror.h)
fixed with 0.1.6-r1
Created attachment 66474 [details] access violation summary
The following access violation error occurred when performing 'emerge -uD world' the only update was to the 'media-libs/jpeg-mmx' package: ./libtool --mode=link gcc -o jpegtran jpegtran.lo rdswitch.lo cdjpeg.lo transupp.lo libjpeg-mmx.la gcc -o .libs/jpegtran jpegtran.o rdswitch.o cdjpeg.o transupp.o -Wl,--rpath -Wl,/usr/lib .libs/libjpeg-mmx.so creating djpeg ./libtool --mode=link gcc -o wrjpgcom wrjpgcom.lo gcc -o wrjpgcom wrjpgcom.o creating jpegtran >>> Test phase [not enabled]: media-libs/jpeg-mmx-0.1.6-r1 >>> Install jpeg-mmx-0.1.6-r1 into /var/tmp/portage/jpeg-mmx-0.1.6-r1/image/ category media-libs /bin/install -c -m 644 jconfig.h /usr/include/jpeg-mmx/jconfig.h ACCESS DENIED open_wr: /usr/include/jpeg-mmx/jconfig.h /bin/install: cannot create regular file `/usr/include/jpeg-mmx/jconfig.h': Permission denied make: *** [install-headers] Error 1 !!! ERROR: media-libs/jpeg-mmx-0.1.6-r1 failed. !!! Function src_install, Line 39, Exitcode 2 !!! headers !!! If you need support, post the topmost build error, NOT this status message. --------------------------- ACCESS VIOLATION SUMMARY --------------------------- LOG FILE = "/var/log/sandbox/sandbox-media-libs_-_jpeg-mmx-0.1.6-r1-10339.log" open_wr: /usr/include/jpeg-mmx/jconfig.h --------------------------------------------------------------------------------
jpeg-mmx-0.1.6-r1 shouldn't have changed the includedir to prefix... with make install-headers includedir="${D}"/usr || die "headers" it works..
Yes, that does cause the build to complete, but it still installed the headers in the /usr/include directory instead of the /usr/include/jpeg-mmx directory. Modifying the line to be: make install-headers includedir="${D}"/usr/include/jpeg-mmx || die "headers" seemed to do the trick. I also had to re-emerge media-libs/jpeg to get the standard headers back in the correct place (/usr/include).
From bug: http://bugs.gentoo.org/show_bug.cgi?id=103210 --- jpeg-mmx-0.1.6-r1.ebuild.old 2005-08-21 11:17:48.000000000 +0200 +++ jpeg-mmx-0.1.6-r1.ebuild 2005-08-21 11:16:13.000000000 +0200 @@ -27,7 +27,7 @@ src_compile() { econf \ - --includedir=usr/include/jpeg-mmx \ + --includedir='${prefix}/include/jpeg-mmx' \ --enable-shared \ --enable-static \ || die "configure failed"