Menu

#67 librfm.la can't be found

rodent
open
nobody
None
5
2014-12-11
2014-12-06
r004
No

Dear EdScott;
I am trying to make a port for your applications for crux linux.
libtubo, librfm, libdbh were a success and installed by their ports.
but for the rodent I get this:

::bash
file=`echo zh_TW | sed 's,.*/,,'`.gmo \
  && rm -f $file && /usr/bin/msgfmt -o $file zh_TW.po
file=`echo zu | sed 's,.*/,,'`.gmo \
  && rm -f $file && /usr/bin/msgfmt -o $file zu.po
make[4]: Leaving directory '/usr/ports/work/src/rodent-5.3.14.5/apps/rodent-diff/po'
Making all in Build
make[4]: Entering directory '/usr/ports/work/src/rodent-5.3.14.5/apps/rodent-diff/Build'
gcc -DHAVE_CONFIG_H -I. -I..  -I./ -I.. -DLIBDIR=\"/usr/lib\"     -DPACKAGE_DATA_DIR=\""/usr/share"\" -DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -pthread -I/usr/include/rfm -I/usr/include/dbh -I/usr/include/libxml2 -I/usr/lib/libzip/include -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include                             -O2 -MT ../src/rodent_diff-rfm-diff.o -MD -MP -MF ../src/.deps/rodent_diff-rfm-diff.Tpo -c -o ../src/rodent_diff-rfm-diff.o `test -f '../src/rfm-diff.c' || echo './'`../src/rfm-diff.c
mv -f ../src/.deps/rodent_diff-rfm-diff.Tpo ../src/.deps/rodent_diff-rfm-diff.Po
/bin/sh ../libtool  --tag=CC   --mode=link gcc -DPACKAGE_DATA_DIR=\""/usr/share"\" -DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -pthread -I/usr/include/rfm -I/usr/include/dbh -I/usr/include/libxml2 -I/usr/lib/libzip/include -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -O2   -o rodent-diff ../src/rodent_diff-rfm-diff.o -lrfm -lrodent -lX11 -lpthread -lrt -ltubo -ldbh -lm -lrt -lxml2 -lgthread-2.0 -pthread -Wl,--export-dynamic -lgmodule-2.0 -pthread -lzip -lz -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0      -lmagic -lpthread -lpthread -lrt 
libtool: link: cannot find the library `/usr/lib/librfm.la' or unhandled argument `/usr/lib/librfm.la'
Makefile:505: recipe for target 'rodent-diff' failed
make[4]: *** [rodent-diff] Error 1
make[4]: Leaving directory '/usr/ports/work/src/rodent-5.3.14.5/apps/rodent-diff/Build'
Makefile:603: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/usr/ports/work/src/rodent-5.3.14.5/apps/rodent-diff'
Makefile:480: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/usr/ports/work/src/rodent-5.3.14.5/apps/rodent-diff'
Makefile:379: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/usr/ports/work/src/rodent-5.3.14.5/apps'
Makefile:438: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
=======> ERROR: Building '/usr/ports/PKGS/rodent#5.3.14.5-1.pkg.tar.gz' failed.

my port for the rodent is

::bash
# Description: ^^ more than a file manager; it could be called gui shell ^^
# URL: http://xffm.org
# Maintainer: r004; r_00_t[at]openmailbox[dot]org
# Depends on: desktop-file-utils librfm5 intltool librsvg pkg-config python27

name=rodent
version=5.3.14.5
release=1
source=(http://downloads.sourceforge.net/project/xffm/$version/$name-$version$

build() {
        cd "$name-$version"
        ./configure --prefix=/usr --mandir=/usr/man
        make
        make DESTDIR=$PKG PREFIX=/usr MANPREFIX=/usr/man install
}

you could find the other ports (i.e librfm and ...) in https://bitbucket.org/r004/crux .

Discussion

  • r004

    r004 - 2014-12-06
    ::bash
    ls -R /usr/lib |grep rfm
    librfm.so
    librfm.so.3
    librfm.so.3.0.0
    rfm
    librfm.pc
    /usr/lib/rfm:
    /usr/lib/rfm/rmodules:
    
     
  • Edscott Wilson Garcia

    I'm not familiar with Crux, but it seems that for some reason it is trying to determine the link parameters for librfm by means of the librfm.la file instead of directly using the actual library, librfm.so.3.0.0.

    Although the build process for librfm creates and installs the .la file, this is removed ater installation, since pkg-config is used instead of .la file.

    I don't know why Crux wants to use .la files, but you can avoid their removal by patching the Makefile.am in librfm/Build/lib as follows (and rerun autogen.sh):

    --- /home/edscott/GIT/xffm/librfm/Build/lib/Makefile.am 2014-08-20 12:38:53.000000000 -0500
    +++ /home/edscott/GIT/xffm/librfm/Build/lib/Makefile.am.with-la 2014-12-08 11:12:46.000000000 -0600
    @@ -119,6 +119,6 @@
    ../../rodent/rodent_population_threads.i

    # Don't install .la files, .pc file is used instead
    -install-data-hook:

    • rm -f $(DESTDIR)$(libdir)/librfm.la
    • rm -f $(DESTDIR)$(libdir)/librodent.la
      +#install-data-hook:
      +# rm -f $(DESTDIR)$(libdir)/librfm.la
      +# rm -f $(DESTDIR)$(libdir)/librodent.la

    If this works i can put in a configure directive to keep .la files so that your build process for librfm does not have to patch the makefile.

    Let me know if it works or not.

     
    • r004

      r004 - 2014-12-08

      hello;
      Crux is a source based linux distro based on port system .much like freebsd
      in that matter. but the ports are not categorized based on their nature.
      but grouped by repositories. the main are core, Xorg, contrib, comapt; and
      some other user made ports.
      they are being updated on svn based environment.
      the Pkgfile of each port in each group is exactly the bash script of what
      you would do in terminal all in one file.
      I will report back with the result shortly.
      Thanks

       
  • r004

    r004 - 2014-12-10

    Hello;
    Yes It was successful in manual build and worked to. So I suggest you go ahead plz and add that to the code.
    please report either here or in changlog for me to change my port (build script) accordingly)
    Thanks

     
  • Edscott Wilson Garcia

    Ok. I have added the option "--with-la-files" to the configure script for librfm and tested that it works as intended. This has been committed to the git repository and will be present in next release tarball.

    regards!

     
  • r004

    r004 - 2014-12-11

    very much thanks;
    I also will post an development request.

     

Log in to post a comment.