pkgsrc-Bugs archive

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

pkg/38071: "xmlrpc-c" package doesn't build under Mac OS X



>Number:         38071
>Category:       pkg
>Synopsis:       "xmlrpc-c" package doesn't build under Mac OS X
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Feb 20 13:55:00 +0000 2008
>Originator:     Matthias Scheler
>Release:        Darwin 8.11.0, pkgsrc HEAD from 2008-02-20
>Organization:
Matthias Scheler                                  http://zhadum.org.uk/
>Environment:
System: Darwin excalibur.zhadum.org.uk 8.11.0 Darwin Kernel Version 8.11.0: Wed 
Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh 
powerpc
Architecture: powerpc
Machine: Power Macintosh
>Description:
Building the "xmlrpc-c" package fails under Mac OS X:

===> Building for xmlrpc-c-1.09.00nb3
[...]
 gcc -c -I/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00 
-I/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/include 
-I/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/util/include
 
-I/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/abyss/src
 
-I/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/curl_transport
 
-I/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/libwww_transport
 
-I/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/expat/xmlparse
 -DNDEBUG -Wall -Wundef -Wimplicit -W -Winline -Wundef -Wmissing-declarations 
-Wstrict-prototypes -Wmissing-prototypes -fno-common -g -O3 system_method.c -o 
system_method.o >/dev/null 2>&1
/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/libtool 
--mode=link gcc -o libxmlrpc_server.la -version-info 12:0:9   -rpath 
/usr/pkg/lib -L.libs 
-L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/libutil/.libs
  \
          registry.lo method.lo system_method.lo -lxmlrpc_util -lxmlrpc
*** [buildlink3] Warning: libtool replaced -lxmlrpc with 
/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/src/libxmlrpc.la
gcc -dynamiclib ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o 
.libs/libxmlrpc_server.3.9.0.dylib  .libs/registry.o .libs/method.o 
.libs/system_method.o  
-L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/libutil/.libs/.libs
 -L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/src/.libs 
-L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/libutil/.libs
 
/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/libutil/.libs/libxmlrpc_util.dylib
 -L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/.buildlink/lib 
/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/src/.libs/libxmlrpc.dylib
 libxmlrpc_util.dylib 
-L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/expat/xmlparse/.libs
 
-L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/expat/xmlparse/.libs/.libs
 libxmlrpc_xmlparse.dylib 
-L/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib!
 /expat/xmltok/.libs 
/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/lib/expat/xmltok/.libs/libxmlrpc_xmltok.dylib
  -install_name  /usr/pkg/lib/libxmlrpc_server.3.dylib -compatibility_version 
13 -current_version 13.0
powerpc-apple-darwin8-gcc-4.0.1: libxmlrpc_util.dylib: No such file or directory
powerpc-apple-darwin8-gcc-4.0.1: libxmlrpc_xmlparse.dylib: No such file or 
directory
gmake[1]: *** [libxmlrpc_server.la] Error 1
gmake[1]: Leaving directory 
`/Users/tron/obj/textproc/xmlrpc-c/work.excalibur/xmlrpc-c-1.09.00/src'
gmake: *** [src/all] Error 2
*** Error code 2

This is rather unfortunate because "cmake" requires "xmlrpc-c". And it
seems that an increasing number of package require "cmake" for building.

>How-To-Repeat:
cd pkgsrc/textproc/xmlrpc-c

>Fix:
Here are some changes which make the build go further. The patch for
"lib/abyss/src/Makefile" is probably correct, the one for "src/Makefile"
isn't necesarily. I don't understand enough about "libtool" and
buildlink3 to figure out what is going wrong here.

Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/textproc/xmlrpc-c/distinfo,v
retrieving revision 1.3
diff -u -r1.3 distinfo
--- distinfo    6 Apr 2007 11:44:33 -0000       1.3
+++ distinfo    20 Feb 2008 13:40:40 -0000
@@ -9,3 +9,4 @@
 SHA1 (patch-ad) = 8b7ad5b7aacb6b13f04792bc157e228deaf2de72
 SHA1 (patch-ae) = 683239483a9bfee5defe2b0c8f3ef9fd0d5735f9
 SHA1 (patch-af) = c679a0cc1b867c093e9f1c1990993f18e1f50b2a
+SHA1 (patch-ag) = f245e946e8abc405d87ca5d2df1dbb290e9c977f
Index: patches/patch-ag
===================================================================
RCS file: patches/patch-ag
diff -N patches/patch-ag
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-ag    20 Feb 2008 13:40:40 -0000
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- src/Makefile.orig  2006-12-23 21:45:21.000000000 +0000
++++ src/Makefile       2008-02-20 13:32:12.000000000 +0000
+@@ -83,15 +83,14 @@
+ LIBXMLRPC_CLIENT_LIBDEP_DEP = $(LIBXMLRPC_UTIL) $(LIBXMLRPC)
+ 
+ LIBXMLRPC_SERVER_OBJS = registry.lo method.lo system_method.lo
+-LIBXMLRPC_SERVER_LIBDEP = -lxmlrpc_util -lxmlrpc
+-LIBXMLRPC_SERVER_LIBDEP_DEP = $(LIBXMLRPC_UTIL) $(LIBXMLRPC)
++LIBXMLRPC_SERVER_LIBDEP = -lxmlrpc_util
++LIBXMLRPC_SERVER_LIBDEP_DEP = $(LIBXMLRPC_UTIL)
+ 
+ LIBXMLRPC_SERVER_ABYSS_OBJS = xmlrpc_server_abyss.lo
+ LIBXMLRPC_SERVER_ABYSS_LIBDEP = \
+-  -lxmlrpc_util -lxmlrpc_server -L$(ABYSS_LIBDIR) -lxmlrpc_abyss -lxmlrpc
++  -lxmlrpc_util
+ LIBXMLRPC_SERVER_ABYSS_LIBDEP_DEP = \
+-  $(LIBXMLRPC_UTIL) $(LIBXMLRPC_SERVER) $(LIBXMLRPC_ABYSS) \
+-  $(LIBXMLRPC)
++  $(LIBXMLRPC_UTIL) $(BLDDIR)/lib/abyss/src/libxmlrpc_abyss.la
+ 
+ LIBXMLRPC_SERVER_CGI_OBJS = xmlrpc_server_cgi.lo
+ LIBXMLRPC_SERVER_CGI_LIBDEP = -lxmlrpc_util -lxmlrpc_server -lxmlrpc
Index: patches/patch-ah
===================================================================
RCS file: patches/patch-ah
diff -N patches/patch-ah
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-ah    20 Feb 2008 13:40:40 -0000
@@ -0,0 +1,173 @@
+$NetBSD$
+
+--- lib/abyss/src/Makefile.orig        2006-09-29 03:40:34.000000000 +0100
++++ lib/abyss/src/Makefile     2008-02-20 13:20:43.000000000 +0000
+@@ -1,3 +1,13 @@
++###############################################################################
++# This directory builds libxmlrpc_abyss, which contains utility
++# functions that are used by the Xmlprc-c # libraries, and also
++# directly by Xmlrpc-c programs.
++#
++# The functions in this library are characterized by being general purpose
++# programming functions, such as one might wish were in the standard C
++# library, which have nothing in particular to do with XML-RPC.
++###############################################################################
++
+ ifeq ($(SRCDIR),)
+   updir = $(shell echo $(dir $(1)) | sed 's/.$$//')
+   ABYSSDIR := $(call updir,$(CURDIR))
+@@ -5,107 +15,72 @@
+   SRCDIR := $(call updir,$(LIBDIR))
+   BLDDIR := $(SRCDIR)
+ endif
+-SUBDIR := lib/abyss/src
++SUBDIR := lib/libutil
+ 
+ include $(BLDDIR)/Makefile.config
+ 
+ default: all
+ 
+-TARGET_LIBRARY_NAMES := libxmlrpc_abyss
+-
+-STATIC_LIBRARIES_TO_INSTALL = libxmlrpc_abyss.a
+-
+-SHARED_LIBS_TO_BUILD := libxmlrpc_abyss
+-SHARED_LIBS_TO_INSTALL := libxmlrpc_abyss
+-
+-ifeq ($(ENABLE_ABYSS_THREADS),yes)
+-  THREAD_MODULE = thread_pthread
+-else
+-  THREAD_MODULE = thread_fork
+-endif
+-
+-TARGET_MODS = \
+-  channel \
+-  chanswitch \
+-  conf \
+-  conn \
+-  data \
+-  date \
+-  file \
+-  http \
+-  init \
+-  response \
+-  server \
+-  session \
+-  socket \
+-  socket_unix \
+-  token \
+-  $(THREAD_MODULE) \
+-  trace \
+-
+-OMIT_ABYSS_LIB_RULE = Y
+-
+-include $(SRCDIR)/Makefile.common
+-
+-CFLAGS = $(CFLAGS_COMMON) -D_UNIX $(CFLAGS_PERSONAL) $(CADD)
+-
+-INCLUDES = -Iblddir -Isrcdir -Isrcdir/include -Isrcdir/lib/util/include
+-
+-ABYSS_SHLIB = $(call shlibfn,libxmlrpc_abyss)
+-#ABYSS_SHLIB is e.g. libxmlrpc_abyss.so.3.1
+-ABYSS_SHLIBLE = $(call shliblefn,libxmlrpc_abyss)
+-#ABYSS_SHLIBLE is e.g. libxmlrpc_abyss.so
+-
+-ifneq ($(SHARED_LIB_TYPE),NONE)
+-  TARGET_SHARED_LIBS := $(ABYSS_SHLIB) $(ABYSS_SHLIBLE)
+-  endif
+-
+-# This 'Makefile.common' dependency makes sure the symlinks get built before
+-# this make file is used for anything.
+-
+-$(SRCDIR)/Makefile.common: srcdir blddir
+-
+-.PHONY: all
+-all: libxmlrpc_abyss.a $(TARGET_SHARED_LIBS) $(TARGET_SHARED_LE_LIBS)
++# LIBDEP is the shared libraries on which libxmlrpc_abyss depends.
++# The runtime loader should load these libraries when it loads 
libxmlrpc_abyss.
+ 
++LIBDEP = $(LIBXMLRPC_UTIL)
+ 
+-# Rule for this is in Makefile.common, courtesy of TARGET_SHARED_LIBRARIES:
+-$(ABYSS_SHLIB): $(TARGET_MODS:%=%.osh)
+-$(ABYSS_SHLIB): LIBOBJECTS = $(TARGET_MODS:%=%.osh)
++all: libxmlrpc_abyss.la
+ 
+-# Rule for this is in Makefile.common, courtesy of TARGET_STATIC_LIBRARIES:
++LIBXMLRPC_ABYSS_OBJS = \
++  channel.lo \
++  chanswitch.lo \
++  conf.lo \
++  conn.lo \
++  data.lo \
++  date.lo \
++  file.lo \
++  http.lo \
++  init.lo \
++  response.lo \
++  server.lo \
++  session.lo \
++  socket.lo \
++  socket_unix.lo \
++  token.lo \
++  thread_pthread.lo \
++  trace.lo \
++
++
++INCLUDES = -I$(BLDDIR) -Isrcdir \
++           -I$(BLDDIR)/include -Isrcdir/include -Isrcdir/lib/util/include
++
++LIBLDFLAGS = $(LDFLAGS_VERSINFO) $(RPATH) $(LADD)
++
++libxmlrpc_abyss.la: $(LIBXMLRPC_ABYSS_OBJS) $(LIBXMLRPC_UTIL)
++      $(LIBTOOL) --mode=link $(CCLD) -o $@ $(LIBLDFLAGS) $^
+ 
+-libxmlrpc_abyss.a: $(TARGET_MODS:%=%.o)
+-libxmlrpc_abyss.a: LIBOBJECTS = $(TARGET_MODS:%=%.o)
++CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+ 
+-#-----------------------------------------------------------------------------
+-#  RULES TO COMPILE OBJECT MODULES FOR LIBRARIES
+-#-----------------------------------------------------------------------------
++$(LIBXMLRPC_ABYSS_OBJS):%.lo:%.c
++      $(LIBTOOL) --mode=compile $(CC) -c $(INCLUDES) $(CFLAGS) $<
+ 
+-# Rules to compile object modules from which to build the static and shared
+-# Abyss library are in Makefile.common, courtesy of TARGET_MODS.
++LTLIBRARIES_TO_INSTALL = libxmlrpc_abyss.la
+ 
++.PHONY: install
++install: install-common
+ 
+-# Need this dependency for those who don't use Makefile.depend.
+-# Without it, version.h doesn't get created.
+-response.o response.osh: version.h
+-
+-.PHONY: clean
++.PHONY: clean distclean
+ clean: clean-common
+ 
+-.PHONY: distclean
+ distclean: clean distclean-common
+ 
+-.PHONY: tags
+-tags: TAGS
++.PHONY: dep
++dep: dep-common
+ 
+-.PHONY: distdir
+-distdir:
++# This 'Makefile.common' dependency makes sure the symlinks get built before
++# this make file is used for anything.
+ 
+-.PHONY: install
+-install: install-common
++$(SRCDIR)/Makefile.common: srcdir
+ 
+-.PHONY: dep
+-dep: dep-common
++OMIT_ABYSS_LIB_RULE=Y
++
++include $(SRCDIR)/Makefile.common
+ 
+ include Makefile.depend



Home | Main Index | Thread Index | Old Index