pkgsrc-Bugs archive

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

pkg/32275: The program l2tpd from the net/rp-l2tp package does not run on NetBSD-2.0/i386



>Number:         32275
>Category:       pkg
>Synopsis:       The program l2tpd from the net/rp-l2tp package does not run on 
>NetBSD-2.0/i386
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Dec 10 23:25:00 +0000 2005
>Originator:     Charles Zmudzinski
>Release:        NetBSD 2.0.2_STABLE - source code as of May 27, 2005
>Organization:
N/A
>Environment:
System: NetBSD ave 2.0.2_STABLE NetBSD 2.0.2_STABLE (GENERIC.IPSEC) #0: Thu Nov 
24 01:13:26 EST 2005 
chuckz@ave:/home/chuckz/obj/home/chuckz/netbsd-2.0/src/sys/arch/i386/compil
e/GENERIC.IPSEC i386
>Description:
The program builds and installs fine either from pkgsrc or from the 
pre-compiled binary for NetBSD-2.0. I tried the pre-compiled binary from 
pkgsrc-2005Q3 and also building and installing from pkgsrc checked out on 
December 5, 2005 using the tag pkgsrc-2005Q3. In both cases, I got the 
following error when running l2tpd:

Error: Could not dload sync-pppd.so:/usr/pkg/lib/l2tp/plugins/sync-pppd.so: 
Undefined PLT symbol "l2tp_option_set" (symnum = 23)
FATAL: Could not dload sync-pppd.so: /usr/pkg/lib/l2tp/plugins/sync-pppd.so: 
Undefined PLT symbol "l2tp_option_set" (symnum = 23)

>How-To-Repeat:
Assuming the rp-l2tp package is installed: l2tpd
>Fix:
I fixed it by adding the -Wl,-E option to the rule for building l2tpd in the 
Makefile that was generated by pkgsrc in the process of building the package. 
After that, it still did not work (I got another undefined PLT symbol error) 
until I added the -lutil option to the rule for building the sync-pppd.so 
handler in the Makefile of the handlers directory. These changes can be 
integrated into pkgsrc by replacing patch-ab with the patch-ab listed below, 
and by adding patch-ah as listed below to the patches directory:

Replace patch-ab with this to add the -Wl,-E option for building l2tpd on 
NetBSD:

---------------Beginning of File patches/patch-ab---------------------
--- Makefile.in.orig    2002-09-30 16:33:55.000000000 -0400
+++ Makefile.in 2005-12-10 09:16:01.000000000 -0500
@@ -26,11 +26,21 @@
 install_dir=@INSTALL@ -d
 sbindir=@sbindir@
 
+OPSYS= $(shell uname -s)
+
 OBJS=auth.o debug.o dgram.o main.o md5.o network.o options.o peer.o session.o 
tunnel.o utils.o
-EXTRA_LIBS=@LIBEVENT@/*.o -ldl
+
+ifeq (${OPSYS}, Linux)
+EXTRA_LIBS=-ldl
+DYNAMIC_FLAGS= -rdynamic
+endif
+
+ifeq (${OPSYS}, NetBSD)
+DYNAMIC_FLAGS= -Wl,-E
+endif
 
 SRCS=$(OBJS:.o=.c)
-CFLAGS=-g -I.. -I@LIBEVENT@ -Wall -Wstrict-prototypes -ansi -pedantic 
-D_GNU_SOURCE -DVERSION=\"$(VERSION)\" -DPREFIX=\"$(prefix)\"
+CFLAGS=-g -I.. -I@LIBEVENT@ -Wall -Wstrict-prototypes -ansi -pedantic 
-D_GNU_SOURCE -DVERSION=\"$(VERSION)\" -DPREFIX=\"$(prefix)\" 
-DSYSCONFDIR=\""@sysconfdir@"\"
 
 TARGETS=l2tpd libl2tp.a handlers
 
@@ -43,7 +53,7 @@
 
 l2tpd: libl2tp.a libevent/libevent.a
        $(MAKE) -C handlers
-       @CC@ -o l2tpd -rdynamic $(OBJS) $(EXTRA_LIBS)
+       @CC@ -o l2tpd $(DYNAMIC_FLAGS) $(OBJS) @LIBEVENT@/*.o $(EXTRA_LIBS)
 
 libevent/libevent.a:
        test -d libevent || ln -s ../libevent .
@@ -82,8 +92,7 @@
 install: all
        -mkdir -p $(RPM_INSTALL_ROOT)$(sbindir)
        $(install) -m 755 -s l2tpd $(RPM_INSTALL_ROOT)$(sbindir)
-       -mkdir -p $(RPM_INSTALL_ROOT)/etc/l2tp
-       $(install) -m 644 l2tp.conf 
$(RPM_INSTALL_ROOT)/etc/l2tp/l2tp.conf.example
+       $(install) -m 644 l2tp.conf 
$(RPM_INSTALL_ROOT)${PREFIX}/share/examples/l2tp.conf
        -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man8
        -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man5
        $(install) -m 644 man/l2tpd.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
--------------------------End of File----------------------------------

Add this file (patch-ah) to the patches directory to add the -lutil option for 
sync-pppd.so
-------------------Beginning of File patches/patch-ah-----------------
--- handlers/Makefile.in.orig   2002-09-30 15:45:00.000000000 -0400
+++ handlers/Makefile.in        2005-12-10 09:28:31.000000000 -0500
@@ -15,6 +15,7 @@
 OBJS=pty.o sync-pppd.o dstring.o
 SRCS=$(OBJS:.o=.c)
 CFLAGS=-g -O2 -I.. -I../libevent -I../../libevent -Wall
+LDFLAGS=-lutil
 
 all: $(HANDLERS) l2tp-control
 
@@ -28,7 +29,7 @@
        gcc $(CFLAGS) -fPIC -c -o $@ $<
 
 sync-pppd.so: pty.o sync-pppd.o
-       gcc -shared -o $@ $^
+       gcc -shared $(LDFLAGS) -o $@ $^
 
 cmd.so: cmd.o dstring.o
        gcc -shared -o $@ $^
---------------------------End of File--------------------------------




Home | Main Index | Thread Index | Old Index