WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: pcmanfm for TC17 x86_64  (Read 145 times)

Offline aus9

  • Full Member
  • ***
  • Posts: 116
pcmanfm for TC17 x86_64
« on: February 01, 2026, 02:01:54 AM »
@Rich
Ok the next a small explanation. As you know I build seatd wrong so copy2fs users had trouble. Here on 17x I have built and am testing a copy2fs build of pcmanfm. It may or may be accepted but I just discovered that libtool needs sed (full  sed not busybox sed) to work correctly as per code box
Code: [Select]
pcmanfm
pcmanfm: error while loading shared libraries: libfm-gtk3.so.4: cannot open shared object file: No such file or directory
tc@box:~$ libtool --finish /usr/local/lib/
/usr/local/bin/libtool: line 971: /usr/local/bin/sed: not found
/usr/local/bin/libtool: line 1384: /usr/local/bin/sed: not found
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib/

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
tc@box:~$ pcmanfm
pcmanfm: error while loading shared libraries: libfm-gtk3.so.4: cannot open shared object file: No such file or directory
tc@box:~$ tce-load -i sed
sed.tcz: OK
tc@box:~$ libtool --finish /usr/local/lib/
libtool: finish: PATH="/home/tc/.local/bin:/home/tc/firefox:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib/
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib/

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
tc@box:~$ pcmanfm

** (pcmanfm:4780): WARNING **: 14:54:39.284: modules directory is not accessible

(pcmanfm:4780): Gtk-WARNING **: 14:54:39.323: Theme parsing error: <data>:2:27: The style property GtkWidget:focus-padding is deprecated and shouldn't be used anymore. It will be removed in a future version

(pcmanfm:4780): Gtk-WARNING **: 14:54:39.323: Theme parsing error: <data>:3:30: The style property GtkWidget:focus-line-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(pcmanfm:4780): Gtk-WARNING **: 14:54:42.378: gtk_menu_detach(): menu is not attached

pcmanfm GUI is working as expected now

Code: [Select]
ls -al /bin/sed
lrwxrwxrwx    1 root     root             7 Jan 25 00:07 /bin/sed -> busybox
cat /usr/local/bin/libtool | grep "/bin/sed"
SED="/usr/local/bin/sed"
global_symbol_pipe="/usr/local/bin/sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p' | /usr/local/bin/sed '/ __gnu_lto/d'"
global_symbol_to_cdecl="/usr/local/bin/sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
global_symbol_to_c_name_address="/usr/local/bin/sed -n -e 's/^: \\(.*\\) .*\$/  {\"\\1\", (void *) 0},/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(.*\\)\$/  {\"\\1\", (void *) \\&\\1},/p'"
global_symbol_to_c_name_address_lib_prefix="/usr/local/bin/sed -n -e 's/^: \\(.*\\) .*\$/  {\"\\1\", (void *) 0},/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(lib.*\\)\$/  {\"\\1\", (void *) \\&\\1},/p' -e 's/^[ABCDGIRSTW][ABCDGIRSTW]* .* \\(.*\\)\$/  {\"lib\\1\", (void *) \\&\\1},/p'"
 
Originally I just grepped sed but too many lines
« Last Edit: February 01, 2026, 02:03:31 AM by aus9 »

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 12570
Re: pcmanfm for TC17 x86_64
« Reply #1 on: February 01, 2026, 11:43:18 AM »
Hi aus9
A few things are catching my eye.
...
Code: [Select]
pcmanfm
pcmanfm: error while loading shared libraries: libfm-gtk3.so.4: cannot open shared object file: No such file or directory
 ----- Snip -----
...
When libfm.tcz gets loaded, ldconfig gets run automatically and that library should be found.

Also, what's going on with this tce.installed/ file?
Code: [Select]
rich@tcbox:~$ cat pkg/usr/local/tce.installed/libfm
#!/bin/sh
# avoid libfm-extra-dev duplication
P=libfm
LOOP1=/tmp/tcloop/$P/usr/local/lib
rm -rf /usr/local/lib/$P*so*
# The linking is what TC would have done if it was simple
ln -s $LOOP1/$P*so*  /usr/local/lib

 ----- Snip -----

libfm-extra-dev needs to be split into  libfm-extra-dev.tcz  and  libfm-extra.tcz.

libfm-extra-dev currently contains:
Code: [Select]
/usr/local/lib/libfm-extra.so.4.1.3
/usr/local/lib/libfm-extra.so.4
/usr/local/lib/libfm-extra.so
/usr/local/lib/pkgconfig/libfm-extra.pc
/usr/local/include/libfm
/usr/local/include/libfm-1.0/fm-extra.h
/usr/local/include/libfm-1.0/fm-version.h
/usr/local/include/libfm-1.0/fm-xml-file.h

libfm-extra-dev should contain:
Code: [Select]
/usr/local/lib/pkgconfig/libfm-extra.pc
/usr/local/include/libfm
/usr/local/include/libfm-1.0/fm-extra.h
/usr/local/include/libfm-1.0/fm-version.h
/usr/local/include/libfm-1.0/fm-xml-file.h

libfm-extra should contain:
Code: [Select]
/usr/local/lib/libfm-extra.so.4.1.3
/usr/local/lib/libfm-extra.so.4
/usr/local/lib/libfm-extra.so

libfm-extra.tcz should be added to libfm-extra-dev.tcz.dep

The following should be removed from libfm.tcz:
Code: [Select]
/usr/local/lib/libfm-extra.so.4.1.3
/usr/local/lib/libfm-extra.so.4
/usr/local/lib/libfm-extra.so

libfm-extra.tcz should be added to libfm.tcz.dep

Continuing with tce.installed/libfm:
Code: [Select]
----- Snip -----

# make modules Dir that is read-write
rm -rf /usr/local/lib/$P/modules
mkdir -p /usr/local/lib/$P/modules
LOOP2=/tmp/tcloop/$P/usr/local/lib/$P/modules
cp $LOOP2/*.so /usr/local/lib/$P/modules

I think the directory should already be writable by root.

Why are you copying the .so files instead of linking them in.
That defeats the whole purpose of mount mode.