Subject: | |
From: | |
Reply To: | |
Date: | Wed, 30 May 2007 20:11:57 -0500 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
Wow. Great detective work.
I'm sure there's a way to put dependency requirements into an RPM....
although I am probably closer to understanding guage theory on principal
fibre bundles than knowing how to properly mangle a spec file. :-p
So who gets to update the rpm? The Free Software Foundation, Sun, Red
Hat, or Troy? :-) :-) :-)
-Dave
David Gore, Ph.D. <HAT> Beam-line
Scientist </HAT>
Research Assist. Professor of Physics <HAT> Beam-line Operations
Manager </HAT>
Illinois Institute of Technology <HAT> Visiting Experimenter
Support </HAT>
V (630) 252 0547 [02:76:00:FC:02:23] <HAT> Computer
Administrator </HAT>
F (630) 252 0545 [02:76:00:FC:02:21] <HAT> Safety
Officer </HAT>
http://www.bio.aps.anl.gov/~dgore "Multi religiosi, pauci leones"
GPG PUBLIC KEY FINGERPRINT: 08D9 003D 3F57 FEEF B9F5 1D2E 657E 88C0 FE83
191C
"If your VCR is still blinking '12:00,' Linux is probably not the right
answer."
Jon Peatfield wrote:
> On Tue, 29 May 2007, Glenn Morris wrote:
>
>> FWIW, I had these links in / after an install as well (but only one on
>> machine out of five so far). Looks like the culprit can only be
>> java-1.4.2-gcj-compat-devel, but I can't see how.
>
>
> How about this as an explanation...
>
> $ mkdir -p /tmp/foo && cd /tmp/foo
> $ ls -al
> total 12
> drwxr-xr-x 2 jp107 other 4096 May 28 13:16 ./
> drwxrwxrwt 29 root root 8192 May 31 01:12 ../
> $ ln -sf `gcj -print-file-name=include/jawt_md.h`
> /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/include/linux/jawt_md.h
> -bash: gcj: command not found
> $ ls -al
> total 12
> drwxr-xr-x 2 jp107 other 4096 May 31 01:24 ./
> drwxrwxrwt 29 root root 8192 May 31 01:12 ../
> lrwxrwxrwx 1 jp107 other 59 May 31 01:24 jawt_md.h ->
> /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/include/linux/jawt_md.h
>
> that ln is from the postinstall scriptlett, if it gets run while gcj
> isn't available it drops the bad link in . which is probably / during
> install.
>
> I wonder if any scriptlet errors (during the install) get logged
> somewhere useful like anaconda.log...
>
> $ rpm -qp java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.112.i386.rpm
> --scripts| grep -A2 ln
> ln -sf \
> `gcj -print-file-name=include/jni.h` \
> /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/include/jni.h
> --
> ln -sf \
> `gcj -print-file-name=include/jni_md.h` \
> /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/include/linux/jni_md.h
> --
> ln -sf \
> `gcj -print-file-name=include/jawt.h` \
> /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/include/jawt.h
> --
> ln -sf \
> `gcj -print-file-name=include/jawt_md.h` \
> /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/include/linux/jawt_md.h
>
> So that explains how/why it can happen, but doesn't really provide a fix.
>
>> This rpm seems to be broken in other ways; eg an install creates the
>> directory /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/include and populates
>> it with links, but they are not registered as belonging to the
>> package, and are not removed by an uninstall.
>
>
> It presumably adds the links in the postinstall 'cos it doesn't know
> what they will point at (depends on gcj). Maybe marking them as
> shadow would do the right thing on an uninstall -- but it could at
> least rm them in the postuninstall since it does know the link-names...
>
> Is there a simple way to require that package to be installed after
> whatever is providing gcj (if anything)?
>
|
|
|