Ravenports / ravenadm

Administration tool for Ravenports
http://www.ravenports.com
ISC License
17 stars 3 forks source link

fix library check bug (??) #55

Closed jrmarino closed 1 year ago

jrmarino commented 1 year ago

seems bogus:

=> Checking shared library dependencies
### FATAL ERROR ###  libduktape.so.207 is not in located in /lib, /usr/lib or within the RPATH/RUNPATH (/raven/toolchain/ravensys-gcc/lib:/raven/lib:/raven/lib/polkit-1/../polkit)
===> polkit-primary-standard-121 subpackage:
     NEEDED               libpolkit-gobject-1.so.0
     NEEDED               libglib-2.0.so.0
     NEEDED               libintl.so.8
     NEEDED               libgobject-2.0.so.0
     NEEDED               libc.so.8
     NEEDED               libpolkit-agent-1.so.0
     NEEDED               libpam.so.2
     NEEDED               libgio-2.0.so.0
     NEEDED               libexpat.so.1
     NEEDED               libduktape.so.207
     NEEDED               libpthread.so.0
jrmarino commented 1 year ago

objdump output:

RUNPATH              /raven/toolchain/ravensys-gcc/lib:/raven/lib:$ORIGIN/../polkitagent:$ORIGIN/../polkit
jrmarino commented 1 year ago

The was on /construction/polkit/stage/raven/bin, so RUNPATH should be:

/raven/toolchain/ravensys-gcc/lib
/raven/lib
/raven/polkitagent
/raven/polkit

For /construction/polkit/stage/raven/lib/libpolkit-agent-1.so /raven/toolchain/ravensys-gcc/lib:/raven/lib:$ORIGIN/../polkit

/raven/toolchain/ravensys-gcc/lib:/raven/lib:/raven/lib/polkit
jrmarino commented 1 year ago

for /construction/polkit/stage/raven/lib/polkit-1/polkit-agent-helper-1, /raven/toolchain/ravensys-gcc/lib:/raven/lib:$ORIGIN/../polkit

/raven/toolchain/ravensys-gcc/lib
/raven/lib
/raven/lib/polkit
jrmarino commented 1 year ago

/construction/polkit/stage/raven/lib/polkit-1/polkitd is the culprit

  NEEDED               libpolkit-gobject-1.so.0
  NEEDED               libgio-2.0.so.0
  NEEDED               libglib-2.0.so.0
  NEEDED               libgobject-2.0.so.0
  NEEDED               libexpat.so.1
  NEEDED               libduktape.so.207
  NEEDED               libpthread.so.0
  NEEDED               libc.so.8
  INIT                 0x00000000004068a0
  FINI                 0x0000000000413bf4
  RUNPATH              /raven/toolchain/ravensys-gcc/lib:/raven/lib:$ORIGIN/../polkit
# ls -al /raven/lib/libduktape.*
lrwxr-xr-x  1 root  wheel      34 Aug  8 06:23 /raven/lib/libduktape.so -> /raven/lib/libduktape.so.207.20700
lrwxr-xr-x  1 root  wheel      34 Aug  8 06:23 /raven/lib/libduktape.so.207 -> /raven/lib/libduktape.so.207.20700
-r--r--r--  1 root  wheel  290520 Aug  8 06:23 /raven/lib/libduktape.so.207.20700
jrmarino commented 1 year ago

I don't know if this is technically a bug. The issue is with /build/ravenports/builders/SL09/raven/lib/libduktape.so.207 itself. Michael build the symbolic link as an absolute path instead of relative. It's checked from outside the builder, so when using DIR.exists or the unix access(), the symbolic link fails to dereference.

DragonFly's access doesn't support NOFOLLOWSYM flag so it's not straightforward to have the check pass on the existence of any file (meaning do not dereference).

I kind of would like to adopt that behavior though.

jrmarino commented 1 year ago

well, duktape QA caught it:

Warning: symlink '/raven/lib/libduktape.so' points to a non-existent file with absolute stagedir path '/raven/lib/libduktap
Warning: symlink '/raven/lib/libduktape.so.207' points to a non-existent file with absolute stagedir path '/raven/lib/libdu
Warning: symlink '/raven/lib/libduktaped.so' points to a non-existent file with absolute stagedir path '/raven/lib/libdukta
Warning: symlink '/raven/lib/libduktaped.so.207' points to a non-existent file with absolute stagedir path '/raven/lib/libd
jrmarino commented 1 year ago

closing -- without really changing anything. These errors were legit.