Tiny Core Extensions > TCE Talk
pcmanfm for TC17 x86_64
(1/1)
aus9:
@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: ---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
--- End code ---
pcmanfm GUI is working as expected now
--- Code: ---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'"
--- End code ---
Originally I just grepped sed but too many lines
Rich:
Hi aus9
A few things are catching my eye.
--- Quote from: aus9 on February 01, 2026, 02:01:54 AM --- ...
--- Code: ---pcmanfm
pcmanfm: error while loading shared libraries: libfm-gtk3.so.4: cannot open shared object file: No such file or directory
----- Snip -----
--- End code ---
...
--- End quote ---
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: ---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 -----
--- End code ---
libfm-extra-dev needs to be split into libfm-extra-dev.tcz and libfm-extra.tcz.
libfm-extra-dev currently contains:
--- Code: ---/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
--- End code ---
libfm-extra-dev should contain:
--- Code: ---/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
--- End code ---
libfm-extra should contain:
--- Code: ---/usr/local/lib/libfm-extra.so.4.1.3
/usr/local/lib/libfm-extra.so.4
/usr/local/lib/libfm-extra.so
--- End code ---
libfm-extra.tcz should be added to libfm-extra-dev.tcz.dep
The following should be removed from libfm.tcz:
--- Code: ---/usr/local/lib/libfm-extra.so.4.1.3
/usr/local/lib/libfm-extra.so.4
/usr/local/lib/libfm-extra.so
--- End code ---
libfm-extra.tcz should be added to libfm.tcz.dep
Continuing with tce.installed/libfm:
--- Code: --- ----- 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
--- End code ---
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.
Navigation
[0] Message Index
Go to full version