tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: devel/cmake patch



> On Jul 7, 2018, at 8:11 AM, Joerg Sonnenberger <joerg%bec.de@localhost> wrote:
> 
> On Sat, Jul 07, 2018 at 08:05:55AM -0600, Brook Milligan wrote:
>> I am not sure what the best means of differentiating systems like this
>> is, which is why I am asking for advice here.  Perhaps putting it in a
>> conditional like this would be better?
> 
> It is difficult to help you if you don't actually tell us what the
> real problem is :) So what exactly is wrong with whatever system
> (n)curses it found?

Sorry, I suppose I skipped that and went straight to the bit about what caused the problem and hence the solution.

The compile error is the following:

[ 71%] Linking CXX executable ../bin/ccmake
/opt/gnu/bin/ld: CMakeFiles/ccmake.dir/CursesDialog/cmCursesMainForm.cxx.o: und\
efined reference to symbol 'keypad'
/lib64/libtinfo.so.5: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [bin/ccmake] Error 1
make[2]: Target `Source/CMakeFiles/ccmake.dir/build' not remade because of erro\
rs.
make[1]: *** [Source/CMakeFiles/ccmake.dir/all] Error 2

The last point on [1], add -ltinfo to Source/CMakeFiles/ccmake.dir/link.txt, and pages suggesting the splitting of curses and tinfo [2], suggested the need for ncurses instead of curses.  Adding the specific INCOMPAT_CURSES+=Linux-2.6.32-x86_64 solved the problem by forcing use of ncurses.  I chose the most specific kernel version at first, because I the default (presumably curses-based) worked fine for me on a CentOS (i.e., OS_VARIANT=redhat) system with a 3.10.0 kernel (but it also works with ncurses).

So here is the compact summary:

- CentOS (Linux-2.6.32-x86_64/redhat): fails as above with default pkgsrc
- CentOS (Linux-2.6.32-x86_64/redhat): builds fine with ncurses instead of curses
- CentOS (Linux-3.10.0-x86_64/redhat): builds fine with default pkgsrc
- CentOS (Linux-3.10.0-x86_64/redhat): builds fine with ncurses instead of curses

I have no way to tell what applies more generally to 2-* kernel systems or even whether other 2-6.32 kernel systems will have the same troubles.  However, given that the CentOS 3.10.0 system builds fine with ncurses, my inclination is the following patch:

RCS file: /cvsroot/pkgsrc/devel/cmake/Makefile,v
retrieving revision 1.136
diff -u -r1.136 Makefile
--- Makefile    20 Dec 2017 16:39:07 -0000      1.136
+++ Makefile    7 Jul 2018 15:04:09 -0000
@@ -63,7 +63,10 @@
            ${WRKSRC}/Modules/Platform/SunOS-Clang-${lang}.cmake
 .endfor

-INCOMPAT_CURSES=       NetBSD-[0-6].*-*
+.if !empty(OS_VARIANT:Mredhat)
+INCOMPAT_CURSES+=      Linux-*-*
+.endif
+INCOMPAT_CURSES+=      NetBSD-[0-6].*-*

 BUILDLINK_API_DEPENDS.libarchive+=     libarchive>=3.0.0
 .include "../../archivers/libarchive/buildlink3.mk"

Please advise.  Thanks a lot.

Cheers,
Brook

[1] https://www.centos.org/forums/viewtopic.php?t=6469
[2] https://forums.opensuse.org/showthread.php/446927-missing-library-libtinfo-so-5





Home | Main Index | Thread Index | Old Index