Subject: jack2: Dangling .so references

From: [email-masked] (Taylan Ulrich Bayırlı/Kammer)
Date: Sun, 08 Mar 2015 17:52:25 +0100

While looking into another issue, I happened to notice dangling .so
references in some executables in Guix packages.  This is the first in a
series of bug reports for each such package.  Some might be false
positives; Mark suggested I report them all so we have a list to go
through.  It's also not comprehensive because of course I don't have
every Guix package installed; the script to go through one's /gnu/store
to get output such as the following for each package is attached at the
bottom of this mail.

/gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/

  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_midiseq
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_samplerate
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_showtime
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_wait
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_lsp
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_unload
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_test
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/alsa_out
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_metro
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jackdbus
	libjackserver.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_evmon
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_net_slave
	libjacknet.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_multiple_metro
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_latent_client
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_iodelay
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_zombie
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_freewheel
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_midisine
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_cpu
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_midi_dump
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_server_control
	libjackserver.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_transport
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_net_master
	libjacknet.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/alsa_in
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_simple_session_client
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_thru
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_cpu_load
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_alias
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_netsource
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_connect
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_load
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_session_notify
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_monitor_client
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_rec
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_midi_latency_test
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_simple_client
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/bin/jack_bufsize
	libjack.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/lib/jack/netadapter.so
	libjackserver.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/lib/jack/profiler.so
	libjackserver.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/lib/jack/inprocess.so
	libjackserver.so.0 => not found
  /gnu/store/0d8w37ddadcfnpw5rlhsfgvrha5f3x1f-jack2-1.9.10/lib/jack/netmanager.so
	libjackserver.so.0 => not found

That would be references to libjack, libjacknet, and libjackserver.

The script:

# make sure to use a guix-installed ldd if not running this script on GuixSD

for p in /gnu/store/*/; do
 matches=no
 if [ "$(find "$p" -type f -exec \
           sh -c 'for f; do
              ldd "$f" 2>/dev/null \
              | grep -Evq "/gnu/store/|linux-vdso\.so|not a dynamic exec|statically linked" && exit; 
             done; exit 1' \
           -- {} \; -print -quit)" \
      != "" ]; then
   matches=yes
 fi
 if [ $matches = yes ]; then
   echo "$p"; echo; 
   find "$p" -type f -exec \
      sh -c 'for f; do
           if ldd "$f" 2>/dev/null \
              | grep -Evq "/gnu/store/|linux-vdso\.so|not a dynamic exec|statically linked"; then
             printf "  %s\n" "$f"
             ldd "$f" 2>/dev/null \
             | grep -Ev "/gnu/store/|linux-vdso\.so|not a dynamic exec|statically linked"
           fi
         done' \
      -- {} +
   echo; echo;
 fi
done