Installing Pixie on FreeBSD from source

Help
Natacha
2008-06-24
2013-04-25
  • Natacha

    Natacha - 2008-06-24

    Hi,

    I switched from Linux to FreeBSD a few weeks ago, and now I want to install pixie on it. The compilation went fine, but make install fails:

    /usr/home/nat/src/Pixie/install-sh -c -m 644 'css/headbg.jpg' '/home/nat/pixie/doc/css/headbg.jpg'
    /usr/home/nat/src/Pixie/install-sh -c -m 644 './css/images' '/home/nat/pixie/doc/css/images'
    cp: ./css/images is a directory (not copied).
    *** Error code 1

    I have never seen that error on Linux, though I installed pixie from source quite a few times. I have never used autotools, and although I understand makefiles these are way to complex for me. I have no idea why install-sh would try to cp a directory.

    I guess it could be easily fixed, e.g. removing the call or turning it into a recursive copy or maybe even appending a / to the name, but I'm too lost to find what should be done on my own.

    Thanks in advance for your help,

    Natacha

     
    • Natacha

      Natacha - 2008-06-25

      Hi,

      after having played around a lot with Pixiei/doc/Makefile and Pixie/install-sh, I finally managed to make install, with the following modification of the install target in Pixie/doc/Makefile:

      install-nobase_docDATA: $(nobase_doc_DATA)
              @$(NORMAL_INSTALL)
              test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)"
              @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \         list='$(nobase_doc_DATA)'; for p in $$list; do \           if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \           case $$p in \             $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \             *) f=$$p;; \           esac; \           if test -d "$$p"; then \             echo " $(mkdir_p) '$(DESTDIR)$(docdir)/$$f'"; \             $(mkdir_p) "$(DESTDIR)$(docdir)/$$f"; \           else \             echo " $(nobase_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \             $(nobase_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \           fi; \         done

      Basically, I just added a test to call $(mkdir_p) instead of the regular install when encountering a directory. It seems to work, but it's really twinkering with something I don't understand (The Sorcerer's Apprentice ?), so I would be glad to have a more proper and durable solution, either by modifying my system or by proposing a patch to be added into Pixie trunk to make it FreeBSD-friendly, however these require an understanding I don't have. Any help would be welcome.

      Natacha

       

Log in to post a comment.