During the installation process of app-text/ghostscript-gpl-8.6[23], a file is copied to image/usr/share/ghostscript/8.63/lib, causing lib to become that file and not to be a directory. All subsequent copies of files into that folder get lost - except the last file copied ends up being named /usr/share/ghostscript/8.63/lib . Therefore, no ghostcript commands I need to use work if I upgrade to one of these packages. This includes CUPS based printing and just using ps2pdf14: $ ps2pdf14 alexander.ps GPL Ghostscript 8.62: Can't find initialization file gs_init.ps. $ cat /usr/share/ghostscript/8.62/lib /* XPM */ static char * gs_t_xpm[] = { /* width height ncolors cpp [x_hot y_hot] */ ... (remaining output is cut - contains a nice picture of a flame :-) ) Reproducible: Always Steps to Reproduce: 1. ARCH=amd64 2. ghostscript useflags: USE=X bindist cjk cups djvu gtk -jpeg2k 3. $ emerge =ghostscript-gpl-8.63 4. $ ps2pdf14 alexander.ps Actual Results: GPL Ghostscript 8.62: Can't find initialization file gs_init.ps. Expected Results: I expected the file to be converted... The commands from ghostscript-gpl's install-script that create the image/usr/share/ghostscript/8.63/lib as a file rather than a folder are as follows: ./src/instcopy -c -m 644 ./contrib/japanese/dmp_init.ps /var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share/ghostscript/8.63/lib || exit 1 ./src/instcopy -c -m 644 ./contrib/japanese/dmp_site.ps /var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share/ghostscript/8.63/lib || exit 1 ./src/instcopy -c -m 644 ./contrib/japanese/escp_24.src /var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share/ghostscript/8.63/lib || exit 1 for f in ./contrib/uniprint/*.upp; do \ ./src/instcopy -c -m 644 $f /var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share/ghostscript/8.63/lib || exit 1; \ done They are run before the mkdir command is run: mkdir -p /var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share/ghostscript/8.63/lib mkdir: cannot create directory `/var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share/ghostscript/8.63/lib': File exists make: [install-libdata] Error 1 (ignored) I tried running with USE=-cjk , but it still copied files from contrib/japanese/* before making the directory
Created attachment 175375 [details] installation log search this log for the string '8.63/lib'. The first 10 hits will yield the excerpts from the log I posted in my first comment. This was with USE=cjk, but USE=-cjk yielded essentially the same thing.
0Oops - I left USE=cjk in the summary even though it doesn't affect this bug
Please also attach your emerge --info and the output of: grep DESTDIR /usr/portage/app-text/ghostscript-gpl/ghostscript-gpl-8.63.ebuild Strange thing is your build.log seems to miss the make -jX DESTDIR line. >>> Install ghostscript-gpl-8.63 into /var/tmp/portage/app-text/ghostscript-gpl-8.63/image/ category app-text make -j2 DESTDIR=/var/tmp/portage/app-text/ghostscript-gpl-8.63/image/ install-so install mkdir -p /var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share
(In reply to comment #3) > Please also attach your emerge --info and the output of: > grep DESTDIR /usr/portage/app-text/ghostscript-gpl/ghostscript-gpl-8.63.ebuild Thanks for the help. Output of grep is small enough to throw here: $ grep DESTDIR /usr/portage/app-text/ghostscript-gpl/ghostscript-gpl-8.63.ebuild emake DESTDIR="${D}" install-so install || die "emake install failed" emake DESTDIR="${D}" install || die "emake ijs install failed"
Created attachment 175647 [details] my emerge info for 2008/12/17
Please retry with saner *FLAGS, for example "-O2 -pipe -march=athlon64".
Happened here too, even with CFLAGS="-O2 -pipe" MAKEOPTS="-j5 -l6" . Appears to be a parallelization failure, since simply running ebuild install after the failure succeeded; this time the mkdir -p /var/tmp/portage/app-text/ghostscript-gpl-8.63/image//usr/share/ghostscript/8.63/lib got run before the for loop instcopying files in the directory.
Created attachment 175708 [details] Output of ebuild install after emerge failure
Could you please edit the ebuild in src_install() to include -j1 please? -emake DESTDIR="${D}" install-so install || die "emake install failed" +emake -j1 DESTDIR="${D}" install-so install || die "emake install failed" After that do ebuild ghostscript-gpl-8.63.ebuild digest && emerge ghostscript-gpl --oneshot and report back if that fixes it for you. Thanks in advance.
(In reply to comment #9) > Could you please edit the ebuild in src_install() to include -j1 please? > -emake DESTDIR="${D}" install-so install || die "emake install failed" > +emake -j1 DESTDIR="${D}" install-so install || die "emake install failed" > After that do > ebuild ghostscript-gpl-8.63.ebuild digest && emerge ghostscript-gpl --oneshot > and report back if that fixes it for you. Thanks in advance. > I made this change and it installs cleanly. Thanks for this fix: I can leave my MAKEOPTS alone and get parallel building still. I wish I had remembered that parallel builds cause problems like this a week ago.
Thanks for testing guys, workaround in place for ghostscript-gpl-8.63-r1. Still needs to be fixed upstream though.
I canot reproduce with 8.71, is this bug still present for you guys if you remove -j1 from emake install in the ebuild?
Version in question was removed from the tree