Dear Finkers,
I've been lurking on the list for a while because I have been
working on trying to get a number of packages ported over to fink and
am having some difficulties (along with some success), and was hoping
that someone could help.
Basically, I'm trying to make available to fink a group of three
packages that include 1) Regina, a rexx language interpreter for unix.
Rexx might be described as a language that has the string manipulation
features of perl with the syntax of TCL. 2) PDCurses, a
X11 library extension to ncurses which allows for some nifty stuff,
like mouse-click cursor positioning for curses-based programs running
under x11. and 3) THE (The Hessling Editor), which is a unix
clone of what is IHMO the best text-editor ever written, IBM's xedit
for cms/vm systems. The three projects go together, in that THE
uses Regina as its scripting language, and uses (optionally) PDCurses
for its display under X11. I have regina working just fine, and
I have THE working with ncurses, so the program runs in a
standard text window just fine.
The real sticking point is PDCurses, which I suspect would be
very broadly useful for a lot of different things....I believe you can
link (for example) lynx to it and thus be able to navigate with the
mouse under X11 (when available) and well, use the keyboard when not.
PDcurses could also be cool for using things like wcd, a handy
directory navigation tool: http://www.xs4all.nl/~waterlan/
. (Obviously, bringing an 'alternative' curses
library into fink has its own issues, to which I would defer to those
much more knowledgeable than I, but that concern is down the
road)
Right now, however, its a practical compilation issue concerning
PDCurses that I would like to ask for advice about. Basically,
I've got the finkinfo script for pdcurses working to the point where
it downloads the file and compiles up to a point where it chokes on
its demo files.
When I compile it manually, it goes through the configure process
and all, but I ultimately I receive the following error:
gcc ptest.o -o ptest -L../panel -lpanel -L../pdcurses -lXCurses -L/usr/X11R6/lib -lXaw -lXmu -lXt -lX11 -lSM -lICE -lXext
ld: ../pdcurses/libXCurses.a(initscr.o)
illegal reference to symbol: _acs_map defined in indirectly referenced
dynamic library /usr/lib/libncurses.5.dylib
make[1]: *** [ptest] Error 1
make[1]: *** [ptest] Error 1
make: *** [all] Error 2
I've made it far enough my first time around with this that I
have a draft finkinfo file. It looks like this:
Package: PDCurses
Version: 2
Revision: 6
Maintainer: eric
GCC: 3.1
Source: mirror:sourceforge:/pdcurses/%n-%v.%r.tar.gz
Version: 2
Revision: 6
Maintainer: eric
GCC: 3.1
Source: mirror:sourceforge:/pdcurses/%n-%v.%r.tar.gz
Source-MD5: a376c91c7fdfa0215f4c22024ca325f1
SetCPPFLAGS: -no-cpp-precomp
ConfigureFlags: --prefix=/sw
Configurescript: configure %c
ConfigureFlags: --prefix=/sw
Configurescript: configure %c
make pdcurses
InstallScript: make install DESTDIR=%d
InstallScript: make install DESTDIR=%d
DocFiles: README.*
Description: pdcurses, an XCurses library
DescDetail: <<
PDCurses is an implementation of the curses library for X11. It provides
the ability for existing text-mode curses programs to be re-built as
native X11 applications with very little modification.
PDCurses for X11 is also known as XCurses.
Description: pdcurses, an XCurses library
DescDetail: <<
PDCurses is an implementation of the curses library for X11. It provides
the ability for existing text-mode curses programs to be re-built as
native X11 applications with very little modification.
PDCurses for X11 is also known as XCurses.
For more information on PDCurses, visit
http://www.lightlink.com/hessling/
<<
DescPackaging:
License: GPL
<<
DescPackaging:
License: GPL
Homepage: http://www.lightlink.com/hessling/
When I put that in my local directory as 'PDCurses.info' and
type
fink install PDCurses
I receive the following error:
cd pdcurses; make all
gcc -dynamiclib -install_name=libXCurses.dylib -o libXCurses.dylib addch.sho addchstr.sho addstr.sho attr.sho beep.sho bkgd.sho border.sho clear.sho color.sho delch.sho deleteln.sho getch.sho getstr.sho getyx.sho inch.sho inchstr.sho initscr.sho inopts.sho insch.sho insstr.sho instr.sho kernel.sho mouse.sho move.sho outopts.sho overlay.sho pad.sho printw.sho refresh.sho scanw.sho scroll.sho slk.sho termattr.sho terminfo.sho touch.sho util.sho window.sho pdcclip.sho pdcdebug.sho pdcdisp.sho pdcgetsc.sho pdckbd.sho pdcprint.sho pdcscrn.sho pdcsetsc.sho pdcutil.sho pdcwin.sho pdcx11.sho x11curses.sho x11common.sho x11.sho sb.sho ScrollBox.sho
gcc -dynamiclib -install_name=libXCurses.dylib -o libXCurses.dylib addch.sho addchstr.sho addstr.sho attr.sho beep.sho bkgd.sho border.sho clear.sho color.sho delch.sho deleteln.sho getch.sho getstr.sho getyx.sho inch.sho inchstr.sho initscr.sho inopts.sho insch.sho insstr.sho instr.sho kernel.sho mouse.sho move.sho outopts.sho overlay.sho pad.sho printw.sho refresh.sho scanw.sho scroll.sho slk.sho termattr.sho terminfo.sho touch.sho util.sho window.sho pdcclip.sho pdcdebug.sho pdcdisp.sho pdcgetsc.sho pdckbd.sho pdcprint.sho pdcscrn.sho pdcsetsc.sho pdcutil.sho pdcwin.sho pdcx11.sho x11curses.sho x11common.sho x11.sho sb.sho ScrollBox.sho
ld: multiple definitions of symbol
_Mouse_status
initscr.sho definition of _Mouse_status in section (__DATA,__common)
pdcx11.sho definition of _Mouse_status in section (__DATA,__common)
ld: multiple definitions of symbol _app_data
pdcx11.sho definition of _app_data in section (__DATA,__common)
x11curses.sho definition of _app_data in section (__DATA,__common)
x11common.sho definition of _app_data in section (__DATA,__common)
x11.sho definition of _app_data in section (__DATA,__common)
/usr/bin/libtool: internal link edit command failed
make[1]: *** [libXCurses.dylib] Error 1
make: *** [all] Error 2
initscr.sho definition of _Mouse_status in section (__DATA,__common)
pdcx11.sho definition of _Mouse_status in section (__DATA,__common)
ld: multiple definitions of symbol _app_data
pdcx11.sho definition of _app_data in section (__DATA,__common)
x11curses.sho definition of _app_data in section (__DATA,__common)
x11common.sho definition of _app_data in section (__DATA,__common)
x11.sho definition of _app_data in section (__DATA,__common)
/usr/bin/libtool: internal link edit command failed
make[1]: *** [libXCurses.dylib] Error 1
make: *** [all] Error 2
Ok, so I admit that I'm really a newbie
with all of this, and I don't entirely understand why I'm receiving
two different error messages, or where the problem lies. I
thought for a while it was a name-space error, and also thought that
it was an issue with apple's x11 set up.
What is very peculiar is that if you look
up at the first error message (via a manual compile), the error seems
to come in from the compile getting its hands on the ncurses.5.dylib
in /usr/lib/ Further messing around on my part made me
temporarily rename that file and make a symbolic link to the same
named file in /sw/lib. That allowed me to finish the make
manually, but led me to being stumped.....I just don't understand
enough about the fink (and Darwin) build system to craft the right
flags to guide the compile to fink's copy of
ncurses.
Can anyone offer some advice? I
thought the pdcurses library might be sufficiently useful that this
may be worth the effort of some more experienced hand. I
apologize in advance if anything here seems really uninformed....I
looked through the Faq's as best I could, but see nothing that I could
avail myself of.
best,
Eric Oberle
--