Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 242106 - dev-java/sun-jdk-1.4.2.18 fails with error "cannot read j2sdk-1_4_2_18-linux-i586.bin" with amd64 profile
Summary: dev-java/sun-jdk-1.4.2.18 fails with error "cannot read j2sdk-1_4_2_18-linux-...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Java team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-14 20:36 UTC by Jan Van Uytven
Modified: 2008-10-23 22:52 UTC (History)
1 user (show)

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


Attachments
emerge --debug --av1 output (emerge-debug.txt,25.84 KB, text/plain)
2008-10-22 21:07 UTC, Jan Van Uytven
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Van Uytven 2008-10-14 20:36:37 UTC
Saw this when trying to install eclipse-sdk-3.4-r2.  sun-jdk-1.6.0.07-r1 currently installed.


>>> Emerging (5 of 5) dev-java/sun-jdk-1.4.2.18
 * checking ebuild checksums ;-) ...                                     [ ok
 * checking auxfile checksums ;-) ...                                    [ ok
 * checking miscfile checksums ;-) ...                                   [ ok
>>> Unpacking source...
 * 
 * ERROR: dev-java/sun-jdk-1.4.2.18 failed.
 * Call stack:
 * ebuild.sh, line   49:  Called src_unpack
 * environment, line 2444:  Called die
 * The specific snippet of code:
 * die "cannot read ${At}. Please check the permission and try again.";
 * The die message:
 * cannot read j2sdk-1_4_2_18-linux-i586.bin. Please check the permission and
y again.
 * 
 * If you need support, post the topmost build error, and the call stack if r
vant.
 * A complete build log is located at '/var/tmp/portage/dev-java/sun-jdk-1.4.
8/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-java/sun-j
1.4.2.18/temp/environment'.
 * 

>>> Failed to emerge dev-java/sun-jdk-1.4.2.18, Log file:

>>>  '/var/tmp/portage/dev-java/sun-jdk-1.4.2.18/temp/build.log'

 * Messages for package media-libs/alsa-lib-1.0.17a:

 * Starting from alsa 1.0.11_rc3 the configuration for dmix is changed.
 * Leaving around old asound.conf or ~/.asoundrc might make all apps
 * using ALSA output crash.
 * Note that dmix output is enabled by default on the 'default' device
 * since ALSA 1.0.9.
 * 
 * Please try in-kernel ALSA drivers instead of the alsa-drivers ebuild.
 * If alsa-drivers works for you where a recent kernel does not, we want
 * to know about this. Our e-mail address is alsa-bugs@gentoo.org
 * However, if you notice no sound output or instability, please try to
 * upgrade your kernel to a newer version first.

 * Messages for package dev-java/sun-jdk-1.4.2.18:

 * 
 * ERROR: dev-java/sun-jdk-1.4.2.18 failed.
 * Call stack:
 * ebuild.sh, line   49:  Called src_unpack
 * environment, line 2444:  Called die
 * The specific snippet of code:
 * die "cannot read ${At}. Please check the permission and try again.";
 * The die message:
 * cannot read j2sdk-1_4_2_18-linux-i586.bin. Please check the permission and
y again.
 * 
 * If you need support, post the topmost build error, and the call stack if r
vant.
 * A complete build log is located at '/var/tmp/portage/dev-java/sun-jdk-1.4.
8/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-java/sun-j
1.4.2.18/temp/environment'.
 * 

 * GNU info directory index is up-to-date.
tombstone sun-jdk #


Reproducible: Always

Steps to Reproduce:
1.emerge dev-java/sun-jdk-1.4.2.18
2.
3.

Actual Results:  
sun-jdk fails to emerge.

Expected Results:  
sun-jdk successfully installed.

Portage 2.2_rc12 (default-linux/amd64/2007.0, gcc-4.3.2, glibc-2.8_p20080602-r0, 2.6.23-gentoo-r8 x86_64)
=================================================================
System uname: Linux-2.6.23-gentoo-r8-x86_64-Dual_Core_AMD_Opteron-tm-_Processor_165-with-glibc2.2.5
Timestamp of tree: Tue, 14 Oct 2008 19:05:01 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6-r1
dev-lang/python:     2.4.4-r13, 2.5.2-r8
dev-python/pycrypto: 2.0.1-r5
dev-util/cmake:      2.6.1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r3
sys-devel/autoconf:  2.13, 2.62-r1
sys-devel/automake:  1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18.50.0.9
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.4
virtual/os-headers:  2.6.26
ACCEPT_KEYWORDS="** amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=k8"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -pipe -march=k8"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://adelie.polymtl.ca/ http://gentoo.arcticnetwork.ca/source/ http://gentoo.mirrors.tera-byte.com/ "
LDFLAGS=""
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
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="/usr/local/portage/layman/kdesvn-portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl alsa amd64 apache2 berkdb cdr cli cracklib crypt cups dbus dri dvd dvdr firefox flax fortran gdbm gif gpm gtk iconv imap imlib isdnlog jpeg kde mad maildir midi mmx mp3 mudflap mysql ncurses nls nptl nptlonly opengl openmp pam pcre pdf perl png pppd python qt qt3 readline reflection samba session spl sse sse2 ssl tcpd tetex tiff truetype unicode xinerama xorg zlib" ALSA_CARDS="snd-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 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" USERLAND="GNU" VIDEO_CARDS="nvidia vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2008-10-15 18:33:55 UTC
cvs/gentoo-x86/dev-java/sun-jdk $ ebuild sun-jdk-1.4.2.18.ebuild fetch
Appending /keeps/gentoo/cvs/gentoo-x86 to PORTDIR_OVERLAY...

!!! dev-java/sun-jdk-1.4.2.18 has fetch restriction turned on.
!!! This probably means that this ebuild's files must be downloaded
!!! manually.  See the comments in the ebuild for more information.

 * Please download j2sdk-1_4_2_18-linux-i586.bin from:
 * https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=j2sdk-1.4.2_18-oth-JPR@CDS-CDS_Developer
 * and move it to /keeps/gentoo/distfiles

Did you do all that first?
Comment 2 Mike Auty (RETIRED) gentoo-dev 2008-10-18 09:33:58 UTC
Hiya Jan,

If you have copied the file to /usr/portage/distfiles, could you please check the permissions on it by running:

ls -la /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin

If it returns something like:

-r------  youruser youruser  j2sdk-1_4_2_18-linux-i586.bin

then you'll have to reset the permissions so that portage can read it.  To do this, as root, run the following commands:

chown portage:portage /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin
chmod a+r /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin

I'm going to mark the bug as TEST-REQUEST, and once you've carried out the test please reopen the bug and let us know whether that worked or failed.  Thanks...  5:)
Comment 3 Jan Van Uytven 2008-10-20 15:53:12 UTC
I re-downloaded the j2sdk file and and applied the permissions you specified, but it's still failing:

tombstone ~ # emerge -u eclipse-sdk
Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Starting parallel fetch

>>> Emerging (1 of 34) dev-java/sun-jdk-1.4.2.18
 * checking ebuild checksums ;-) ...                                     [ ok ]
 * checking auxfile checksums ;-) ...                                    [ ok ]
 * checking miscfile checksums ;-) ...                                   [ ok ]
>>> Unpacking source...
 * 
 * ERROR: dev-java/sun-jdk-1.4.2.18 failed.
 * Call stack:
 * ebuild.sh, line   49:  Called src_unpack
 * environment, line 2443:  Called die
 * The specific snippet of code:
 * die "cannot read ${At}. Please check the permission and try again.";
 * The die message:
 * cannot read j2sdk-1_4_2_18-linux-i586.bin. Please check the permission and tr   
y again.
 * 
 * If you need support, post the topmost build error, and the call stack if rele   
vant.
 * A complete build log is located at '/var/tmp/portage/dev-java/sun-jdk-1.4.2.1   
8/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-java/sun-jdk-   
1.4.2.18/temp/environment'.
 * 

>>> Failed to emerge dev-java/sun-jdk-1.4.2.18, Log file:

>>>  '/var/tmp/portage/dev-java/sun-jdk-1.4.2.18/temp/build.log'

 * Messages for package dev-java/sun-jdk-1.4.2.18:

 * 
 * ERROR: dev-java/sun-jdk-1.4.2.18 failed.
 * Call stack:
 * ebuild.sh, line   49:  Called src_unpack
 * environment, line 2443:  Called die
 * The specific snippet of code:
 * die "cannot read ${At}. Please check the permission and try again.";
 * The die message:
 * cannot read j2sdk-1_4_2_18-linux-i586.bin. Please check the permission and tr   
y again.
 * 
 * If you need support, post the topmost build error, and the call stack if rele   
vant.
 * A complete build log is located at '/var/tmp/portage/dev-java/sun-jdk-1.4.2.1   
8/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-java/sun-jdk-   
1.4.2.18/temp/environment'.
 * 

 * GNU info directory index is up-to-date.

tombstone ~ # ls -al /usr/portage/distfiles/j2sdk* 
-rw-r--r-- 1 portage portage 36380053 Oct 20 08:47 /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin
tombstone ~ #
Comment 4 Jan Van Uytven 2008-10-20 15:55:51 UTC
Huh, I tried testing the file and got this:

tombstone tmp # ./j2sdk-1_4_2_18-linux-i586.bin 
-su: ./j2sdk-1_4_2_18-linux-i586.bin: /bin/sh: bad interpreter: Permission denied
tombstone tmp # which sh
/bin/sh
tombstone tmp # sh
sh-3.2#

Not sure what's going on here.  Is this a problem with the .bin file, or my sh?
Comment 5 Jan Van Uytven 2008-10-20 15:57:01 UTC
Running the file with bash works just fine.  
Comment 6 Jan Van Uytven 2008-10-20 15:59:19 UTC
I tried substituting "!/bin/bash" for "!/bin/sh" in the bin file, but it made no difference, it still failed with a die "cannot read ${At}." message.
Comment 7 Mike Auty (RETIRED) gentoo-dev 2008-10-20 18:57:37 UTC
Hmmm, it looks like it's trying to execute the file, not just read from it.  Could you please try:

chmod a+x /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin

Also, please double check that the partition you're trying to run the program from doesn't have the noexec option set (such as a USB disk, or some temporary file systems).  Since the ebuild probably copies the file to /var/tmp/portage, it's important that this partition can have files run from it.  You can check this by providing the output of running "mount", which shouldn't feature any noexec lines...
Comment 8 Jan Van Uytven 2008-10-20 19:31:10 UTC
That did it!  Thank you for your help. :)

Perhaps the emerge message could be amended to mention that not only must the file be downloaded, it must be given execute permissions as well?

Comment 9 Jan Van Uytven 2008-10-20 19:34:10 UTC
Oops, I replied too hastily.  I was mistaking the upgrade of 1.6 for the install of 1.4.  

I'm still getting the same message, even with the execute flag set.

The filesystem is reiserfs, mounted rw with noatime.

tombstone ~ # mount
/dev/sda5 on / type reiserfs (rw,noatime)
proc on /proc type proc (rw,nosuid,nodev,noexec)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
udev on /dev type tmpfs (rw,nosuid)
devpts on /dev/pts type devpts (rw,nosuid,noexec)
/dev/sda1 on /win type ntfs (rw,noexec,nosuid,nodev,noatime,umask=0222)
/dev/sda6 on /home type reiserfs (rw,noatime)
/dev/sda7 on /tmp type reiserfs (rw,noexec,noatime)
/dev/sda8 on /var type reiserfs (rw,noatime)
shm on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)
usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)

tombstone ~ # ls -al /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin 
-rwxr-xr-x 1 portage portage 36380054 Oct 20 12:29 /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin


Comment 10 Jan Van Uytven 2008-10-20 19:40:18 UTC
I think this explains a lot...

tombstone distfiles # ./j2sdk-1_4_2_18-linux-i586.bin
<snip>
Do you agree to the above license terms? [yes or no] 
yes
Unpacking...
Checksumming...
1
The download file appears to be corrupted.  Please refer
to the Troubleshooting section of the Installation
Instructions on the download page for more information.
Please do not attempt to install this archive file.
Comment 11 Jan Van Uytven 2008-10-20 19:43:43 UTC
Another false hope...

I downloaded the package again and ran it manually, and this time it extracted properly, but the emerge still failed with the same message.  Permissions and the like are the same as before.
Comment 12 Mike Auty (RETIRED) gentoo-dev 2008-10-20 22:24:11 UTC
It probably said it was corrupted if it was the one you changed from /bin/sh to /bin/bash.

As to why it's still not working, I'm not sure.  It seems it's getting stuck in a -r test (which says the file exists and is readable).  I've no idea why it should be getting stuck there.  Can you please try installing sun-jdk-1.4.2.17 and see if that makes any difference?  It uses an almost identical ebuild, so if it works, it's some specific permission problem with the .bin file you download.  If not, then it suggests it's a larger permission problem of somekind.

The only other thing I can think of is that it might be an ownership issue (since you have FEATURES="user-fetch").  You could also try:

chown root:root /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin

Let us know how you get on...
Comment 13 Jan Van Uytven 2008-10-21 16:35:07 UTC
I tried installing j2sdk-1.4.2.17, but it failed with the same error.


Likewise, changing ownership to root:root did not help.

I wondered if maybe there was a general problem with my distfiles area, so I tried emerging another package (twn) but it emerged successfully.

I tried the test directly in the shell, but it reports success, not failure:

tombstone ~ # sudo -u portage sh
sh-3.2$ whoami
portage
sh-3.2$ if [ ! -r /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin ]; then echo "test failed"; fi
sh-3.2$ if [ -r /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin ]; then echo "test succeeded"; fi
test succeeded
sh-3.2$

NURRRR SO CONFUSED NURRRR
Comment 14 Jan Van Uytven 2008-10-21 16:37:58 UTC
I'd like to play around with the ebuild, specifically I'd like to simply comment out that test and see if the ebuild completes successfully without it.  

But how do I generate new hashes for the modified file, and where are they stored?
Comment 15 Jan Van Uytven 2008-10-21 16:53:05 UTC
I figured out how to recompute the digest, so I commented out the test and emerged, and got this:

tombstone sun-jdk # emerge =dev-java/sun-jdk-1.4.2.18 
Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) dev-java/sun-jdk-1.4.2.18
 * checking ebuild checksums ;-) ...                                     [ ok ]
 * checking auxfile checksums ;-) ...                                    [ ok ]
 * checking miscfile checksums ;-) ...                                   [ ok ]
>>> Unpacking source...
grep: /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir/j2sdk-1_4_2_18-linux-i586.bin: No such file or directory
tail: +: invalid number of lines
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/work ...
>>> Source compiled.
>>> Test phase [not enabled]: dev-java/sun-jdk-1.4.2.18

>>> Install sun-jdk-1.4.2.18 into /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/image/ category dev-java
cp: cannot stat `bin': No such file or directory
cp: cannot stat `include': No such file or directory
cp: cannot stat `jre': No such file or directory
cp: cannot stat `lib': No such file or directory
<etc....>

So the test is correct, the file is not readable at the point when the ebuild is run.

I think the next thing I'll do is modify the ebuild further to dump some more information about the file.
Comment 16 Jan Van Uytven 2008-10-21 17:47:39 UTC
So I modified the ebuild to dump some environment variables at emerge time and got this:

<snip>
>>> Unpacking source...
 * DISTDIR is /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir
 * At is j2sdk-1_4_2_18-linux-i586.bin
 * Permissions check...
ls: cannot access /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir/j2sdk-1_4_2                                  
_18-linux-i586.bin: No such file or directory
 * 
 * 
 * ERROR: dev-java/sun-jdk-1.4.2.18 failed.
<snip>

DISTDIR is /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir, not /usr/portage/distfiles?  I checked distdir, but there's nothing there.  I copied the bin file there and set its permissions, and then emerged again, but it failed the same way as before and the .bin file is missing.  

Comment 17 Jan Van Uytven 2008-10-21 20:49:33 UTC
I'm at a loss again.  I'm not sure why the ebuild is checking /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir for the bin file as opposed to /usr/portage/distfiles.  I don't know why the .bin file, when copied to the distdir directory, disappears before the ebuild can even unpack the file. 

Any further suggestions?
Comment 18 Mike Auty (RETIRED) gentoo-dev 2008-10-21 22:27:43 UTC
As far as I'm aware, that's the waya portage is supposed to work.  It makes a symlink to just the distdir files that are referenced in the ebuild.  So something seems to be stopping you making a symlink between the two locations.

Could you please post the output of "emerge --debug -1av =sun-jdk-1.4.2.18".  Hopefully that'll tell us what's going on.

Also, if you're editing the ebuild, you could try adding a simple "die" command in, and seeing if there's a symlink present in the distdir directory or not?
Comment 19 Jan Van Uytven 2008-10-22 21:07:05 UTC
Created attachment 169494 [details]
emerge --debug --av1 output

Here's the output of:

emerge --debug -1av =sun-jdk-1.4.2.18
Comment 20 Jan Van Uytven 2008-10-22 21:33:44 UTC
I can't put a die statement in the ebuild, as that prevents me from computing a digest for it:

tombstone sun-jdk # ebuild sun-jdk-1.4.2.18.ebuild digest
 * 
 * ERROR: dev-java/sun-jdk-1.4.2.18 failed.
 * Call stack:
 * ebuild.sh, line 1881:  Called source '/usr/portage/dev-java/sun-jdk/sun-jdk-1.4.2.18.ebuild'
 * sun-jdk-1.4.2.18.ebuild, line    5:  Called die
 * The specific snippet of code:
 * die "Debug die"
 * The die message:
 * Debug die
 * 
 * If you need support, post the topmost build error, and the call stack if relevant.
 * The ebuild environment file is located at '/var/tmp/portage/dev-java/sun-jdk-1.4.2.18/temp/environment'.
 *
Comment 21 Jan Van Uytven 2008-10-22 21:40:01 UTC
Creating the link doesn't seem to be a problem:

tombstone ~ # sudo -u portage ln -s /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir/j2sdk-1_4_2_18-linux-i586.bin
tombstone ~ # ls -al /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir/
total 0
drwxr-xr-x 2 portage root     96 Oct 22 14:39 .
drwxrwxr-x 6 portage portage 176 Oct 22 14:08 ..
lrwxrwxrwx 1 portage portage  52 Oct 22 14:39 j2sdk-1_4_2_18-linux-i586.bin -> /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin
tombstone ~ #
Comment 22 Mike Auty (RETIRED) gentoo-dev 2008-10-22 22:23:33 UTC
Ok, well, I'm out of ideas, but I don't think this relates directly to the java guys, I think it's some the portage guys may be able to help with, so I'm gonna assign to them...
Comment 23 Zac Medico gentoo-dev 2008-10-23 00:16:33 UTC
(In reply to comment #13)
> tombstone ~ # sudo -u portage sh
> sh-3.2$ whoami
> portage
> sh-3.2$ if [ ! -r /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin ]; then
> echo "test failed"; fi
> sh-3.2$ if [ -r /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin ]; then
> echo "test succeeded"; fi
> test succeeded

Your emerge --info output does not show FEATURES=userpriv, sot you should be testing it as the root user. Also, the ebuild tests the path of the symlink, so you should test the path of the symlink. So, could you please repeat this test using the root user and the path of the symlink which is located at '/var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir/j2sdk-1_4_2_18-linux-i586.bin'?
Comment 24 Jan Van Uytven 2008-10-23 15:40:56 UTC
Happy to oblige:

tombstone distdir # pwd
/var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir
tombstone distdir # ln -s /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir/j2sdk-1_4_2_18-linux-i586.bin 
tombstone distdir # ls -al
total 0
drwxr-xr-x 2 portage root     96 Oct 23 08:38 .
drwxrwxr-x 6 portage portage 176 Oct 22 14:08 ..
lrwxrwxrwx 1 root    root     52 Oct 23 08:38 j2sdk-1_4_2_18-linux-i586.bin -> /usr/portage/distfiles/j2sdk-1_4_2_18-linux-i586.bin
tombstone distdir # if [ -r /var/tmp/portage/dev-java/sun-jdk-1.4.2.18/distdir/j2sdk-1_4_2_18-linux-i586.bin ]; then echo "test succeeded"; fi
test succeeded
tombstone distdir #

I tried running the emerge again... still claims it can't read it.

<snip>
 * The specific snippet of code:
 * die "cannot read ${At}. Please check the permission and try again.";
 * The die message:
 * cannot read j2sdk-1_4_2_18-linux-i586.bin. Please check the permission and try again.
<snip>
Comment 25 Zac Medico gentoo-dev 2008-10-23 17:10:45 UTC
Do you get the same result if test the symlink that has been created by portage, just after the ebuild has died? There must be something different that causes the test to fail inside the ebuild environment, and it seems like you should be able to reproduce it outside the ebuild environment if you can duplicate the conditions. By testing the symlink that's been created by portage itself, you can minimize any difference in the conditions.
Comment 26 Jan Van Uytven 2008-10-23 19:35:12 UTC
Portage seems to clean up the symlink automatically after the build dies - how do I prevent that from happening?

Mike suggested I just put a 'die' statement in the ebuild, but if I do that I can't generate the digest and thus can't emerge the modified ebuild.
Comment 27 Zac Medico gentoo-dev 2008-10-23 19:41:34 UTC
(In reply to comment #26)
> Portage seems to clean up the symlink automatically after the build dies - how
> do I prevent that from happening?

It's not supposed to get cleaned up. Now I suspect that it's never created, for some unknown reason.
Comment 28 Zac Medico gentoo-dev 2008-10-23 19:44:32 UTC
Can you reproduce the problem with --debug enabled and attach the log? Also, would you happen to have anything in /etc/portage/bashrc?
Comment 29 Zac Medico gentoo-dev 2008-10-23 20:08:08 UTC
(In reply to comment #0)
> USE="X acl alsa amd64 apache2 berkdb cdr cli cracklib crypt cups dbus dri dvd
> dvdr firefox flax fortran gdbm gif gpm gtk iconv imap imlib isdnlog jpeg kde
> mad maildir midi mmx mp3 mudflap mysql ncurses nls nptl nptlonly opengl openmp
> pam pcre pdf perl png pppd python qt qt3 readline reflection samba session spl
> sse sse2 ssl tcpd tetex tiff truetype unicode xinerama xorg zlib"
> ALSA_CARDS="snd-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"

For some reason, your USE flags don't contain the "x86" flag which is supposed to come from the ARCH setting. This explains why the symlink is not created, since the j2sdk-1_4_2_18-linux-i586.bin file in SRC_URI is conditional upon that x86 flag. Now I see that you are using an amd64 profile, which explains why the x86 flag is not set.

@java team: Do we want to support sun-jdk-1.4.2.18 on amd64? If so, it seems that we need to pull in j2sdk-1_4_2_18-linux-i586.bin for the amd64 flag (it's only pulled in for the x86 flag currently).
Comment 30 Petteri Räty (RETIRED) gentoo-dev 2008-10-23 20:36:19 UTC
(In reply to comment #29)
> 
> @java team: Do we want to support sun-jdk-1.4.2.18 on amd64? If so, it seems
> that we need to pull in j2sdk-1_4_2_18-linux-i586.bin for the amd64 flag (it's
> only pulled in for the x86 flag currently).
> 

It's a 32bit binary so no. dev-java/sun-jdk-1.4.2.18 is not keyworded on amd64 ant not supported there. There are emul-linux-x86 packages for that purpose.
Comment 31 Jan Van Uytven 2008-10-23 20:49:46 UTC
Just as an aside, I downloaded and extracted the 64-bit Linux version of the most recent eclipse package, located here:

http://www.eclipse.org/downloads/

and it works fine.  I was able to load a project, compile and run it without issues.

I find it odd that I can't emerge the eclipse package on amd64 because of a legacy version of java that's not even needed to run the program.  Can't it just be removed from the list of eclipse dependencies?
Comment 32 Jan Van Uytven 2008-10-23 20:55:56 UTC
I've reopened this.  I still have the issue - it's not resolved,  nor is it an invalid issue.  Eclipse works fine on amd64 without Java 1.4.
Comment 33 Petteri Räty (RETIRED) gentoo-dev 2008-10-23 21:49:19 UTC
(In reply to comment #32)
> I've reopened this.  I still have the issue - it's not resolved,  nor is it an
> invalid issue.  Eclipse works fine on amd64 without Java 1.4.
> 

If you don't have a broken setup sun-jdk will never be pulled in. Have you taken a look at what you have in /etc/portage? For amd64 the 1.4 JDK providers are blackdown-jdk and ibm-jdk-bin. If you don't want to pull in 1.4 then upgrade to ~amd64 Eclipse ebuilds. Those don't need 1.4 to build any more.
Comment 34 Jan Van Uytven 2008-10-23 22:52:15 UTC
!!

Thank you - that did the trick!