Dozen pains of compiling Sawfish




Hi Folks,

Sawfish has always been a pain to build from source, and this
doesn't seem to be getting any better.  Here is an outline of
the a dozen problems encountered in recent attempt to build it.

I would be happy to help address some of this, however I haven't
actually written anything autoconf stuff since automake and
libtool came along,  so I really don't get why this is so complex.

Cheers,
Mark

------------------------------------------

Environment:
    FreeBSD 7.1 beta 1
    autoconf 2.62
    automake 1.9.6


- downloading using instructions at:   http://sawfish.wikia.com/wiki/Download
  *** PROBLEM 1
    - this page links to http://librep.sourceforge.net/, which has 
      incorrect instructions on check out librep and rep-gtk.  Had to
      guess the actual location of:
          % svn co http://svn.gnome.org/svn/librep/trunk librep
          % svn co http://svn.gnome.org/svn/rep-gtk/trunk rep-gtk

- since this going to be compile into test directory, set these:
        % export CPPFLAGS='-I/opt/expr/include -I/usr/local/include'
        % export LDFLAGS='-L/opt/expr/lib -L/usr/local/lib'
        % export PATH=/opt/expr/bin:${PATH}

- compiling librep from svn:
    % ./autogen.sh --prefix=/opt/expr >&autogen.out
       *** PROBLEM 2:
        Running autoheader
        autoheader-2.62: warning: missing template: BROKEN_ALPHA_GCC
        autoheader-2.62: Use AC_DEFINE([BROKEN_ALPHA_GCC], [], [Description])
        autoheader-2.62: warning: missing template: BROKEN_RTLD_GLOBAL
        autoheader-2.62: warning: missing template: DB_RESOLVE_SYMBOLS
        autoheader-2.62: warning: missing template: DEBUG_SYS_ALLOC
        autoheader-2.62: warning: missing template: DLSYM_NEED_USCORE
        autoheader-2.62: warning: missing template: DOUG_LEA_MALLOC
        autoheader-2.62: warning: missing template: ENVIRON_UNDECLARED
        autoheader-2.62: warning: missing template: FIRST_PTY_LETTER
        autoheader-2.62: warning: missing template: FULL_NAME_TERMINATOR
        autoheader-2.62: warning: missing template: HAVE_CRYPT
        autoheader-2.62: warning: missing template: HAVE_DEV_PTMX
        autoheader-2.62: warning: missing template: HAVE_DLFCN_H
        autoheader-2.62: warning: missing template: HAVE_DLOPEN
        autoheader-2.62: warning: missing template: HAVE_DL_H
        autoheader-2.62: warning: missing template: HAVE_DYNAMIC_LOADING
        autoheader-2.62: warning: missing template: HAVE_FFI_H
        autoheader-2.62: warning: missing template: HAVE_GMP
        autoheader-2.62: warning: missing template: HAVE_GMP_RANDINIT
        autoheader-2.62: warning: missing template: HAVE_LIBFFI
        autoheader-2.62: warning: missing template: HAVE_LIBREADLINE
        autoheader-2.62: warning: missing template: HAVE_PTYS
        autoheader-2.62: warning: missing template: HAVE_SHL_LOAD
        autoheader-2.62: warning: missing template: HAVE_SYS_DL_H
        autoheader-2.62: warning: missing template: LIBC_GETTEXT
        autoheader-2.62: warning: missing template: LIBC_MALLOC
        autoheader-2.62: warning: missing template: WITH_CONTINUATIONS
        autoheader-2.62: warning: missing template: rep_HAVE_LONG_LONG
        autoheader-2.62: warning: missing template: rep_HAVE_UNIX
        autoheader-2.62: warning: missing template: rep_INTERFACE
        autoheader-2.62: warning: missing template: rep_MALLOC_ALIGNMENT
        autoheader-2.62: warning: missing template: rep_PTR_SIZED_INT
        autoheader-2.62: warning: missing template: rep_PTR_SIZED_INT_CONV
        autoheader-2.62: warning: missing template: rep_PTR_SIZED_INT_SIZEOF
        autoheader-2.62: warning: missing template: rep_PTR_SIZED_INT_SUFFIX
        autoheader-2.62: warning: missing template: rep_VERSION

      - since there is a config.h.in svn, hack autogen.sh to skip autoheader
      
      % ./autogen.hack.sh --prefix=/opt/expr >&autogen.out

    *** PROBLEM 3 autogen.sh uses bash-specific syntax:
          if [[ ${lver} != "" ]]; then

      % bash  ./autogen.sh --prefix=/opt/expr >&autogen.out

    *** PROBLEM 4:
        configure.in:92: the top level
        configure: error: cannot find install-sh or install.sh in "." "./.." "./../.."

      - copied in install-sh from a librep distribution
        
      % bash  ./autogen.hack.sh --prefix=/opt/expr >&autogen.out

      # success!

- compiling rep-gtk from svn:
      *** PROBLEM 5: autogen.sh also has bash-specific syntax
       % bash  ./autogen.sh --prefix=/opt/expr >&autogen.out

      *** PROBLEM 6: 
        configure: error: cannot find install-sh or install.sh in "." "./.." "./../.."

       - copy from librep distribution

      *** PROBLEM 7:
        checking for LIBREP... no
        configure: error: can't locate librep

       - need to tell pkg-config where to look:
           % export PKG_CONFIG_PATH=/opt/expr/lib/pkgconfig:/usr/local/libdata/pkgconfig 
      
       - but why not just use rep-config???

- compiling sawfish from svn:
      *** PROBLEM 8: autogen.sh also has bash-specific syntax
         % bash  ./autogen.sh --prefix=/opt/expr >&autogen.out
      
      *** PROBLEM 9: 
        configure: error: cannot find install-sh or install.sh in "." "./.." "./../.."
        - copy from librep distribution

        % gmake

      *** PROBLEM 10
          gcc -o sawfish colors.o cursors.o display.o events.o fonts.o frames.o functions.o images.o keys.o main.o multihead.o pixmap-cache.o property-cache.o server.o session.o stacking-list.o windows.o -I/opt/expr/lib/ -Wl,--export-dynamic  -L/opt/expr/lib -L/usr/local/lib /opt/expr/lib/librep.so -ldl -lcrypt /usr/local/lib/libgmp.so /usr/local/lib/libpango-1.0.so /usr/local/lib/libgdk_pixbuf_xlib-2.0.so /usr/local/lib/libgdk_pixbuf-2.0.so -lm /usr/local/lib/libgobject-2.0.so /usr/local/lib/libgmodule-2.0.so /usr/local/lib/libglib-2.0.so -licui18n /usr/local/lib/libintl.so /usr/local/lib/libpcre.so /usr/local/lib/libiconv.so /usr/local/lib/libXinerama.so /usr/local/lib/libXrandr.so /usr/local/lib/libXft.so /usr/local/lib/libfontconfig.so /usr/local/lib/libexpat.so /usr/local/lib/libfreetype.so -lz /usr/local/lib/libXrender.so /usr/local/lib/libXext.so /usr/local/lib/libX11.so /usr/local/lib/libXdmcp.so -lrpcsvc /usr/local/lib/libXau.so   -Wl,--rpath -Wl,/opt/expr/lib -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/opt/expr/lib -Wl,--rpath -Wl,/usr/local/lib
         /usr/bin/ld: cannot find -ldl
       - freebsd does not have libdl, this is coming from
                % pkg-config --libs librep
          which returns:
             -I/opt/expr/lib/ -lrep -ldl -lcrypt -lgmp -lm
          both -I and -ldl are bogus

      - you hacked this out of make

      *** PROBLEM 11
              /opt/expr/libexec/rep/i386-unknown-freebsd7.0/libtool --tag CC --mode=link gcc -export-dynamic -L/opt/expr/lib -L/usr/local/lib \
                  -o sawfish colors.o cursors.o display.o events.o fonts.o frames.o functions.o images.o keys.o main.o multihead.o pixmap-cache.o property-cache.o server.o session.o stacking-list.o windows.o  -I/opt/expr/lib/ -lrep -lcrypt -lgmp -lm   -L/usr/local/lib -lpango-1.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -liconv   \
                  -L/usr/local/lib -lgdk_pixbuf_xlib-2.0 -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -liconv   -lX11 -L/usr/local/lib -lX11    -lXinerama -lXrandr -lXft -lXext 
            fonts.o(.text+0xcf7): In function `pango_draw':
            /root/work/sawfish/sawfish/src/fonts.c:528: undefined reference to `pango_xft_font_get_type'
            fonts.o(.text+0xd24):/root/work/sawfish/sawfish/src/fonts.c:516: undefined reference to `pango_xft_render'
            fonts.o(.text+0xdc0):/root/work/sawfish/sawfish/src/fonts.c:519: undefined reference to `pango_x_render'
            fonts.o(.text+0xfc7): In function `pango_load':
            /root/work/sawfish/sawfish/src/fonts.c:431: undefined reference to `pango_xft_get_context'

        - need to hack -lpangoxft-1.0 -lpangox-1.0 in Makefdefs PANGO_LIBS=

     *** PROBLEM 12
         - tried to install into a directory without creating it
         % gmake install
               /usr/bin/install -c -m 644 ./sawfish.desktop \
                    /opt/expr/share/applications/
              install: /opt/expr/share/applications/: No such file or directory


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]